Dateiformate a Big Data: e kuerze Bildungsprogramm

Dateiformate a Big Data: e kuerze Bildungsprogramm
Wiedergott vum Remarin

Equipe Mail.ru Cloud Léisunge bitt Artikel Iwwersetzung Ingenieur Rahul Bhatia vu Clairvoyant iwwer wéi eng Dateiformater et a grousse Daten sinn, wat sinn déi heefegst Feature vun Hadoop Formater a wéi ee Format besser ass ze benotzen.

Firwat sinn verschidden Dateiformate gebraucht?

E grousse Performance-Flaschenhals fir HDFS-aktivéiert Uwendungen wéi MapReduce a Spark ass d'Zäit déi et brauch fir Daten ze sichen, ze liesen an ze schreiwen. Dës Probleemer ginn zesummegesat vun der Schwieregkeet fir grouss Datesets ze managen wa mir en evoluéierende Schema hunn anstatt e fixen, oder wann et e puer Späicherbeschränkungen sinn.

D'Veraarbechtung vu groussen Daten erhéicht d'Laascht op de Späichersubsystem - Hadoop späichert Daten redundant fir Feelertoleranz z'erreechen. Zousätzlech zu Disken sinn de Prozessor, Netz, Input / Output System, a sou weider gelueden. Wéi de Volume vun den Donnéeën wiisst, ginn och d'Käschte fir d'Veraarbechtung an d'Späichere erop.

Verschidde Dateiformate an Hadoop erfonnt fir genee dës Problemer ze léisen. Wielt de passenden Dateiformat kann e puer bedeitend Virdeeler ubidden:

  1. Méi séier Lieszäit.
  2. Méi séier Opnamzäit.
  3. Gedeelt Dateien.
  4. Ënnerstëtzung fir Schema Evolutioun.
  5. Erweidert Kompressioun Ënnerstëtzung.

E puer Dateiformate si fir allgemeng Benotzung geduecht, anerer fir méi spezifesch Uwendungen, an e puer sinn entwéckelt fir spezifesch Datencharakteristiken ze treffen. Also de Choix ass wierklech zimlech grouss.

Avro Dateiformat

fir daten serialization Avro ass vill benotzt - et String baséiert, dat ass, e String Datespeicherformat an Hadoop. Et späichert de Schema am JSON Format, sou datt et einfach ass ze liesen an ze interpretéieren vun all Programm. D'Donnéeën selwer sinn am binäre Format, kompakt an effizient.

Dem Avro säi Serialiséierungssystem ass Sproochneutral. Dateien kënnen a verschiddene Sprooche veraarbecht ginn, aktuell C, C++, C#, Java, Python a Ruby.

E Schlëssel Feature vun Avro ass seng robust Ënnerstëtzung fir Dateschemaen déi sech mat der Zäit änneren, dat heescht evoluéieren. Avro versteet Schema Ännerungen - Felder läschen, derbäisetzen oder änneren.

Avro ënnerstëtzt eng Vielfalt vun Datestrukturen. Zum Beispill kënnt Dir e Rekord erstellen deen en Array enthält, e enumeréierten Typ an e Subrecord.

Dateiformate a Big Data: e kuerze Bildungsprogramm
Dëst Format ass ideal fir an d'Landung (Iwwergangs) Zone vun engem Dateséi ze schreiwen (daten Séi, oder Data Lake - eng Sammlung vun Instanzen fir verschidden Zorte vun Daten zousätzlech zu Datenquellen direkt ze späicheren).

Also ass dëst Format am Beschten gëeegent fir an d'Landungszone vun engem Dateséi ze schreiwen aus de folgende Grënn:

  1. Daten aus dëser Zone ginn normalerweis a senger Ganzheet gelies fir weider Veraarbechtung duerch Downstream Systemer - an e Rei-baséiert Format ass méi effizient an dësem Fall.
  2. Downstream Systemer kënnen einfach Schema Dëscher aus Dateien recuperéieren - kee Besoin fir Schemaen separat an externen Metalagerung ze späicheren.
  3. All Ännerung vum urspréngleche Schema gëtt einfach veraarbecht (Schema Evolutioun).

Parquet Dateiformat

Parquet ass en Open Source Dateiformat fir Hadoop dat späichert nestéiert Datestrukturen am flaach Kolumnformat.

Am Verglach mat der traditioneller Zeil Approche ass Parquet méi effizient wat d'Lagerung an d'Leeschtung ugeet.

Dëst ass besonnesch nëtzlech fir Ufroen déi spezifesch Kolonnen aus enger breeder (vill Kolonnen) Dësch liesen. Dank dem Dateiformat ginn nëmmen déi néideg Kolonnen gelies, sou datt I/O op e Minimum gehale gëtt.

Eng kleng Digression an Erklärung: Fir de Parquet Dateiformat an Hadoop besser ze verstoen, loosst eis kucken wat e Kolonnbaséiert - also columnar - Format ass. Dëst Format späichert ähnlech Wäerter fir all Kolonn zesummen.

Zum Beispill, de Rekord enthält d'ID, Numm an Departement Felder. An dësem Fall ginn all d'ID Kolonnwäerter zesummen gespäichert, sou wéi d'Name Kolonn Wäerter, a sou weider. Den Dësch wäert esou ausgesinn:

ID
Numm
Pompjeeën

1
emp1
d1

2
emp2
d2

3
emp3
d3

Am Stringformat ginn d'Donnéeën wéi follegt gespäichert:

1
emp1
d1
2
emp2
d2
3
emp3
d3

An engem columnar Dateiformat ginn déiselwecht Donnéeën esou gespäichert:

1
2
3
emp1
emp2
emp3
d1
d2
d3

De Kolumnformat ass méi effizient wann Dir verschidde Spalten aus enger Tabelle muss ufroen. Et liest nëmmen déi erfuerderlech Kolonnen well se niewendrun sinn. Op dës Manéier ginn I/O Operatiounen op e Minimum gehal.

Zum Beispill braucht Dir nëmmen d'Kolonn NAME. IN String Format All Rekord am Dataset muss gelueden ginn, parséiert vum Feld, an dann d'NAME Daten extrahéiert ginn. De Kolonnformat erlaabt Iech direkt an d'Numm Kolonn erofzebauen well all d'Wäerter fir dës Kolonn zesumme gelagert sinn. Dir musst net déi ganz Opnam scannen.

Also verbessert de columnar Format d'Ufroleistung well et manner Lookup Zäit erfuerdert fir op déi erfuerderlech Kolonnen ze kommen a reduzéiert d'Zuel vun den I/O Operatiounen well nëmmen déi gewënschte Kolonnen gelies ginn.

Ee vun de eenzegaarteg Fonctiounen Parkettbuedem ass, datt an dësem Format et kann späicheren Daten mat nestéierte Strukturen. Dëst bedeit datt an enger Parquet-Datei och nestéiert Felder individuell gelies kënne ginn ouni all d'Felder an der nestéierter Struktur ze liesen. Parquet benotzt e Schredder- a Montagealgorithmus fir nestéiert Strukturen ze späicheren.

Dateiformate a Big Data: e kuerze Bildungsprogramm
Fir de Parquet Dateiformat an Hadoop ze verstoen, musst Dir déi folgend Begrëffer wëssen:

  1. Grupp vu Saiten (Rei Grupp): logesch horizontal Divisioun vun Daten an Zeile. Eng Rei Grupp besteet aus engem Fragment vun all Kolonn am Datesaz.
  2. Kolonn Fragment (Kolonn Chunk): E Fragment vun enger spezifescher Kolonn. Dës Kolonnfragmenter liewen an enger spezifescher Grupp vu Reihen a si garantéiert kontinuéierlech an der Datei.
  3. Säit (Säit): Kolonn Fragmenter sinn an Säiten ënnerdeelt schrëftlech eent nom aneren. D'Säiten hunn e gemeinsamen Titel, sou datt Dir onnéideg iwwerspréngt beim Liesen.

Dateiformate a Big Data: e kuerze Bildungsprogramm
Hei enthält den Titel just déi magesch Zuel PAR1 (4 Bytes) déi d'Datei als Parquet Datei identifizéiert.

De Fousszeil seet folgend:

  1. Datei Metadaten déi d'Startkoordinate vun de Metadaten vun all Kolonn enthalen. Wann Dir liest, musst Dir als éischt d'Metadate vun der Datei liesen fir all d'Spaltfragmenter ze fannen déi interesséiert sinn. D'Kolonn Portiounen sollen dann sequenziell gelies ginn. Aner Metadaten enthalen d'Format Versioun, Schema, an all zousätzlech Schlëssel-Wäert Pairen.
  2. Metadatenlängt (4 Bytes).
  3. magesch Zuel PAR1 (4 Bytes).

ORC Dateiformat

Optimiséiert Zeil-Kolonn Dateiformat (Optimiséierter Zeil Kolonn, CRO) bitt e ganz effiziente Wee fir Daten ze späicheren a gouf entwéckelt fir d'Aschränkungen vun anere Formater ze iwwerwannen. Späichert Daten an enger perfekt kompakter Form, erlaabt Iech onnéideg Detailer ze sprangen - ouni datt Dir grouss, komplex oder manuell erhale Indexen erfuerdert.

Virdeeler vum ORC Format:

  1. Eng Datei ass d'Ausgab vun all Aufgab, wat d'Laascht op den NameNode (Numm Node) reduzéiert.
  2. Ënnerstëtzung fir Hive Datentypen, dorënner DateTime, Dezimal a komplex Datentypen (Struktur, Lëscht, Kaart a Gewerkschaft).
  3. Simultan Liese vun der selwechter Datei duerch verschidde RecordReader Prozesser.
  4. D'Kapazitéit fir Dateien opzedeelen ouni fir Markéierer ze scannen.
  5. Schätzung vun der maximal méiglech Heap Erënnerung Bewëllegung fir liesen / schreiwen Prozesser baséiert op Informatiounen am Fichier Fousszeilen.
  6. Metadaten ginn am Protocol Buffers binäre Serialiséierungsformat gespäichert, wat et erlaabt Felder ze addéieren an ze läschen.

Dateiformate a Big Data: e kuerze Bildungsprogramm
ORC späichert Sammlunge vu Strings an enger eenzeger Datei, a bannent der Sammlung ginn Stringdaten an engem Kolumnformat gespäichert.

Eng ORC Datei späichert Gruppe vu Linnen genannt Sträifen an ënnerstëtzend Informatioun am Fousszeil vun der Datei. De Postscript um Enn vun der Datei enthält Kompressiounsparameter an d'Gréisst vum kompriméierte Fousszeil.

D'Standardstreifgréisst ass 250 MB. Duerch sou grouss Sträifen gëtt d'Liesen vum HDFS méi effizient gemaach: a grousse kontinuéierleche Blöcke.

De Fichier Footer notéiert d'Lëscht vun de Bunnen an der Datei, d'Zuel vun de Reihen pro Spuer, an d'Datentyp vun all Kolonn. De resultéierende Wäert vu Grof, Min, Max an Zomm fir all Kolonn gëtt och do geschriwwen.

De Fousszeil vun der Sträif enthält e Verzeechnes vu Streamplazen.

Zeildaten gi benotzt beim Scannen vun Dëscher.

Indexdaten enthalen de Minimum a Maximum Wäerter fir all Kolonn an d'Positioun vun de Reihen an all Kolonn. ORC Indexe ginn nëmme benotzt fir Sträifen a Reiegruppen ze wielen, net fir Ufroen ze beäntweren.

Verglach vu verschiddene Dateiformate

Avro am Verglach zu Parquet

  1. Avro ass e Zeillagerformat, während Parquet Daten a Kolonnen späichert.
  2. Parquet ass besser gëeegent fir analytesch Ufroen, dat heescht d'Liesoperatioune an d'Ufroen vun Daten si vill méi effizient wéi Schreiwen.
  3. Schreifoperatiounen an Avro gi méi effizient gemaach wéi am Parquet.
  4. Avro beschäftegt sech mat Circuit Evolutioun méi reift. Parquet ënnerstëtzt nëmmen Schema Zousatz, während Avro multifunktionell Evolutioun ënnerstëtzt, dat heescht Spalten addéieren oder änneren.
  5. Parquet ass ideal fir eng Ënnersetze vu Spalten an enger Multi-Kolonn Tabell ze froen. Avro ass gëeegent fir ETL Operatiounen wou mir all Kolonnen ufroen.

ORC vs Parquet

  1. Parquet Geschäfter nested Daten besser.
  2. ORC ass besser gëeegent fir Pushdown ze predikéieren.
  3. ORC ënnerstëtzt ACID Eegeschaften.
  4. ORC kompriméiert Daten besser.

Wat soss iwwer dëst Thema ze liesen:

  1. Big Data Analyse an der Wollek: wéi eng Firma dataorientéiert ka ginn.
  2. E bescheidenen Guide zu Datebank Schemaen.
  3. Eisen Telegramkanal iwwer digital Transformatioun.

Source: will.com

Setzt e Commentaire