Aller au contenu principal
Version: 1.3.1.0

Apache Iceberg dans ODP

ODP fournit une prise en charge de bout en bout d'Apache Iceberg à travers l'ensemble de la data-platform. Apache Iceberg est pleinement intégré à la distribution ODP à partir de la version 1.3.1.0. Les tables Iceberg sont utilisables via Hive et Spark.

Ce qui est intégré aujourd'hui

Stockage & moteurs SQL

  • Hive 4.0.1 : les tables Iceberg sont supportées nativement via le storage handler Iceberg pour Hive.
  • Spark 3.5.6 : Spark SQL peut lire/écrire des tables Iceberg via le catalogue Iceberg de Spark.

Utiliser Iceberg avec Hive (Beeline)

Ci-dessous, un exemple minimal de bout en bout avec Beeline et le storage handler Iceberg pour Hive.

-- Beeline
!connect jdbc:hive2://<hs2-host>:10000/default

create database if not exists iceberg_demo;

create table iceberg_demo.sample_hive (
id bigint,
data string
)
stored by 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler'
tblproperties ('table_type'='ICEBERG');

insert into iceberg_demo.sample_hive values (1, 'a'), (2, 'b');

select * from iceberg_demo.sample_hive;

Utiliser Iceberg avec Spark (spark-shell, Scala)

// spark-shell
spark.sql("CREATE DATABASE IF NOT EXISTS iceberg_demo")

spark.sql(
"""
|CREATE TABLE spark_catalog.iceberg_demo.sample_spark (
| id bigint,
| data string
|) USING iceberg
""".stripMargin)

spark.sql("INSERT INTO spark_catalog.iceberg_demo.sample_spark VALUES (1,'a'),(2,'b')")
spark.sql("SELECT * FROM spark_catalog.iceberg_demo.sample_spark").show()

pyspark

spark.sql("CREATE DATABASE IF NOT EXISTS iceberg_demo")

spark.sql(""" CREATE TABLE spark_catalog.iceberg_demo.sample_pyspark ( id bigint, data string ) USING iceberg """)

spark.sql("INSERT INTO spark_catalog.iceberg_demo.sample_pyspark VALUES (1,'a'),(2,'b')") spark.sql("SELECT * FROM spark_catalog.iceberg_demo.sample_pyspark").show()