Iceberg Catalog

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ мСстом, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, являСтся ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Iceberg. ОсновноС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ – ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ измСнСния указатСля Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅.

Π’ своСй ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ это просто ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сопоставлСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с мСстополоТСниСм Ρ„Π°ΠΉΠ»Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

ВСхничСски для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ REST API ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ.

НСкоторыС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

  • Hadoop. НСсмотря Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ HDFS, Π° фактичСски Π»ΡŽΠ±ΡƒΡŽ FS Π²ΠΊΠ»ΡŽΡ‡Π°Ρ S3. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки Spark для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ:
spark-sql --packages
org.apache.iceberg:iceberg-spark-runtime-3.3_2.12:0.14.0\
 --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
 --conf spark.sql.catalog.my_catalog1=org.apache.iceberg.spark.SparkCatalog \
 --conf spark.sql.catalog.my_catalog1.type=hadoop \
 --conf spark.sql.catalog.my_catalog1.warehouse=<ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»>://<ΠΏΡƒΡ‚ΡŒ>
  • Hive Metastore. Π’Π°Π±Π»ΠΈΡ†Ρ‹ Iceberg просто ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² HMS ΠΊΠ°ΠΊ external, с сохранСниСм Π² Π΄ΠΎΠΏ свойствах указатСля Π½Π° Π€Π°ΠΉΠ» ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ HMS: HDFS + HMS on Raspberry
spark-sql --packages
org.apache.iceberg:iceberg-spark-runtime-3.3_2.12:0.14.0 \
 --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
 --conf spark.sql.catalog.my_catalog1=org.apache.iceberg.spark.SparkCatalog \
 --conf spark.sql.catalog.my_catalog1.type=hive \
 --conf
spark.sql.catalog.my_catalog1.uri=thrift://<хост_metastore>:<ΠΏΠΎΡ€Ρ‚>