Apache Iceberg

Apache Iceberg β€” это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ† для хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ACID-Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ схСмы ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ аналитичСскими Π΄Π²ΠΈΠΆΠΊΠ°ΠΌΠΈ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ† это слой абстракции ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² распрСдСлСнной систСмС. Π’ случаС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Hive Π² Hive Metastore хранится ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΏΠΊΠΈ Π² HDFS содСрТащиС Ρ„Π°ΠΉΠ»Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Iceberg 🧊 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру ΠΈΠ· Avro ΠΈ JSON Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° всС Ρ„Π°ΠΉΠ»Ρ‹ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

Β«Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ† – это ΠΌΠ΅Ρ‚ΠΎΠ΄ структурирования Ρ„Π°ΠΈΜ†Π»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… для прСдставлСния ΠΈΡ… Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠΈΜ† Β«Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹Β». Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ это ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° вопрос Β«ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ находятся Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅?Β».Β» (Π¨ΠΈΡ€Π°Π½ ΠΈ Π΄Ρ€., 2024, p. 40)

Для использования фактичСски любого Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° iceberg трСбуСтся ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ. НапримСр Trino ΠΈΠ»ΠΈ Spark.

NOTE

НаиболСС полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° возмоТностСй Iceberg Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° для Spark!

АрхитСктура Apache Iceberg

Π‘Π»ΠΎΠΉ содСрТащий avro ΠΈ json Ρ„Π°ΠΉΠ»Ρ‹ с ΠΌΠ΅Ρ‚ΠΎΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ называСтся Π‘Π»ΠΎΠΉ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. ВсСго ΠΆΠ΅ слоя Ρ‚Ρ€ΠΈ:

ВозмоТности