ΠΠΎΠΌΠ°Π½Π΄Π°
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
Π‘Π΅ΡΡΠ΅Π·Π½ΠΎΠ΅ ΡΠ·ΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ HDFS, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ MapReduce ΠΈ Spark β Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ°, ΡΡΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΡΠ³ΡΠ±Π»ΡΡΡΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π½Π΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ, Π° ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΡΡΡΠ°Ρ ΡΡ Π΅ΠΌΠ°, ΠΈΠ»ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΠΎΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ β Hadoop Ρ ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ. ΠΡΠΎΠΌΠ΅ Π΄ΠΈΡΠΊΠΎΠ², Π½Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΡΠ΅ΡΡ, ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° ΠΎΠ±ΡΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ.
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π²
- ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π½ΠΈΡ.
- ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΠΈΡΠΈ.
- Π Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ ΡΡ Π΅ΠΌ.
- Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΆΠ°ΡΠΈΡ.
ΠΠ΄Π½ΠΈ ΡΠΎΡΠΌΠ°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊ ΡΡΠΎ Π²ΡΠ±ΠΎΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ.
Π€ΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Avro
ΠΠ»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Avro β ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΡΠΎΠΊΠ°Ρ , ΡΠΎ Π΅ΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ, ΡΠΎΡΠΌΠ°Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Hadoop. ΠΠ½ Ρ ΡΠ°Π½ΠΈΡ ΡΡ Π΅ΠΌΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, ΠΎΠ±Π»Π΅Π³ΡΠ°Ρ Π΅Π΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. Π‘Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΠ΅ Π»Π΅ΠΆΠ°Ρ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Avro Π½Π΅ΠΉΡΡΠ°Π»ΡΠ½Π° ΠΊ ΡΠ·ΡΠΊΡ. Π€Π°ΠΉΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ C, C++, C#, Java, Python ΠΈ Ruby.
ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Avro ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡ Π΅ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΎ Π΅ΡΡΡ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΡΡΡ. Avro ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡ Π΅ΠΌΡ β ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ.
Avro ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΠ², ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΠΉ ΡΠΈΠΏ ΠΈ ΠΏΠΎΠ΄Π·Π°ΠΏΠΈΡΡ.
ΠΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΏΠΎΡΠ°Π΄ΠΎΡΠ½ΡΡ (ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π½ΡΡ) Π·ΠΎΠ½Ρ ΠΎΠ·Π΅ΡΠ° Π΄Π°Π½Π½ΡΡ
(
Π’Π°ΠΊ Π²ΠΎΡ, Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΏΠΎΡΠ°Π΄ΠΎΡΠ½ΡΡ Π·ΠΎΠ½Ρ ΠΎΠ·Π΅ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ:
- ΠΠ°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠΎΠΉ Π·ΠΎΠ½Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΠΈΠΆΠ΅ΡΡΠΎΡΡΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ β ΠΈ ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠΎΠΊ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½.
- ΠΠΈΠΆΠ΅ΡΡΠΎΡΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ³ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΡ Π΅ΠΌ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² β Π½Π΅ Π½ΡΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡ Π΅ΠΌΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΌΠ΅ΡΠ°-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
- ΠΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ (ΡΠ²ΠΎΠ»ΡΡΠΈΡ ΡΡ Π΅ΠΌΡ).
Π€ΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Parquet
Parquet β ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ Hadoop, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ»ΠΎΡΠΊΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ°ΡΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ ΡΡΡΠΎΡΠ½ΡΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ, Parquet Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ ΠΈΠ· ΡΠΈΡΠΎΠΊΠΎΠΉ (ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΡΠΎΠ»Π±ΡΠ°ΠΌΠΈ) ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΡΠΌΠ°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ.
ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅-ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅: ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π° Parquet Π² Hadoop, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠΎΠ»Π±ΡΠ°Ρ β ΡΠΎ Π΅ΡΡΡ ΡΡΠΎΠ»Π±ΡΠ°ΡΡΠΉ β ΡΠΎΡΠΌΠ°Ρ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ°.
ID
Name
Department
1
emp1
d1
2
emp2
d2
3
emp3
d3
Π ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
1
emp1
d1
2
emp2
d2
3
emp3
d3
Π ΡΡΠΎΠ»Π±ΡΠ°ΡΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡ ΡΠ°ΠΊ:
1
2
3
emp1
emp2
emp3
d1
d2
d3
Π‘ΡΠΎΠ»Π±ΡΠ°ΡΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ². ΠΠ½ ΠΏΡΠΎΡΠΈΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΏΠΎ ΡΠΎΡΠ΅Π΄ΡΡΠ²Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ»Π±Π΅Ρ NAME. Π
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ»Π±ΡΠ°ΡΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΌ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΡΠΎΠΊΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Π²Π΅Π΄Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΡ ΡΡΠΎΠ»Π±ΡΠΎΠ².
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π° Parquet Π² Hadoop, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ:
- ΠΡΡΠΏΠΏΠ° ΡΡΡΠΎΠΊ (row group): Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΡΡΠΎΠΊΠΈ. ΠΡΡΠΏΠΏΠ° ΡΡΡΠΎΠΊ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° Π² Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ .
- Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΡΠΎΠ»Π±ΡΠ° (column chunk): ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ°. ΠΡΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΆΠΈΠ²ΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΡΡΡΠΎΠΊ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π±ΡΠ΄ΡΡ ΡΠΌΠ΅ΠΆΠ½ΡΠΌΠΈ Π² ΡΠ°ΠΉΠ»Π΅.
- Π‘ΡΡΠ°Π½ΠΈΡΠ° (page): ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π΄Π΅Π»ΡΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ Π·Π° Π΄ΡΡΠ³ΠΎΠΌ. Π£ ΡΡΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅.
ΠΠ΄Π΅ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΠΎΠ»ΡΠ΅Π±Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ PAR1 (4 Π±Π°ΠΉΡΠ°), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ» ΡΠΎΡΠΌΠ°ΡΠ° Parquet.
Π ΡΡΡΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΠ°ΡΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ°. ΠΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π°, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠ»Π±ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ°, ΡΡ Π΅ΠΌΡ ΠΈ Π»ΡΠ±ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
- ΠΠ»ΠΈΠ½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ (4 Π±Π°ΠΉΡΠ°).
- ΠΠΎΠ»ΡΠ΅Π±Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ PAR1 (4 Π±Π°ΠΉΡΠ°).
Π€ΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ORC
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΠΎ-ΡΡΠΎΠ»Π±ΡΠ°ΡΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² (Optimized Row Columnar,
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΎΡΠΌΠ°ΡΠ° ORC:
- ΠΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° NameNode (ΡΠ·Π΅Π» ΠΈΠΌΠ΅Π½).
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Hive, Π²ΠΊΠ»ΡΡΠ°Ρ DateTime, Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ (struct, list, map ΠΈ union).
- ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π° ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ RecordReader.
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π±Π΅Π· ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ².
- ΠΡΠ΅Π½ΠΊΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΡΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Π°.
- ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Protocol Buffers, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΏΠΎΠ»Ρ.
ORC Ρ
ΡΠ°Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΡΡΠΎΠΊ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Π° Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΡΡΠΎΠ»Π±ΡΠ°ΡΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.
Π€Π°ΠΉΠ» ORC Ρ ΡΠ°Π½ΠΈΡ Π³ΡΡΠΏΠΏΡ ΡΡΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΠΎΡΠ°ΠΌΠΈ (stripes) ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΡΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Π°. Postscript Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΆΠ°ΡΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΠ°.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»ΠΎΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 250 ΠΠ. ΠΠ° ΡΡΠ΅Ρ ΠΏΠΎΠ»ΠΎΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· HDFS Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ: Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ.
Π ΡΡΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Π° Π·Π°ΠΏΠΈΡΠ°Π½ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»ΠΎΡ Π² ΡΠ°ΠΉΠ»Π΅, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π½Π° ΠΏΠΎΠ»ΠΎΡΡ ΠΈ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ°. Π’Π°ΠΌ ΠΆΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ count, min, max ΠΈ sum ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΡΠΎΠ»Π±ΡΡ.
Π€ΡΡΠ΅Ρ ΠΏΠΎΠ»ΠΎΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΠΎΠΊΠ°.
Π‘ΡΡΠΎΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ.
ΠΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΡΡΠΎΠΊ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅. ΠΠ½Π΄Π΅ΠΊΡΡ ORC ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎΠ»ΠΎΡ ΠΈ Π³ΡΡΠΏΠΏ ΡΡΡΠΎΠΊ, Π° Π½Π΅ Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° Π½Π° Π·Π°ΠΏΡΠΎΡΡ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ²
Avro ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Parquet
- Avro β ΡΠΎΡΠΌΠ°Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎ ΡΡΡΠΎΠΊΠ°ΠΌ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Parquet Ρ ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ.
- Parquet Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠΎ Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡΠΎΡ Π΄Π°Π½Π½ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅, ΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΡ.
- ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² Avro Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅, ΡΠ΅ΠΌ Π² Parquet.
- Avro Π±ΠΎΠ»Π΅Π΅ Π·ΡΠ΅Π»ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ²ΠΎΠ»ΡΡΠΈΠ΅ΠΉ ΡΡ Π΅ΠΌ. Parquet ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ, Π° Π² Avro ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΠ²ΠΎΠ»ΡΡΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠΎΠ².
- Parquet ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. Avro ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ETL, Π³Π΄Π΅ ΠΌΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ.
ORC ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Parquet
- Parquet Π»ΡΡΡΠ΅ Ρ ΡΠ°Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
- ORC Π»ΡΡΡΠ΅ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½ ΠΊ ΠΏΡΠΎΡΠ°Π»ΠΊΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΎΠ² (predicate pushdown).
- ORC ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ACID.
- ORC Π»ΡΡΡΠ΅ ΡΠΆΠΈΠΌΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅.
Π§ΡΠΎ Π΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅:
ΠΠ½Π°Π»ΠΈΠ· Π±ΠΎΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠ΅: ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΡΠ°ΡΡ Π΄Π°ΡΠ°-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ .Π‘ΠΊΡΠΎΠΌΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΡ Π΅ΠΌΠ°ΠΌ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .ΠΠ°Ρ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π» ΠΎ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ .
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com