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()