Skip to main content
Version 3.0

Integrations — Iceberg

ChartVersion3.0.1TypeapplicationAppVersion1.10.0
CompatibilityKubernetes1.32+OpenShift4.19+Rancher2.10.x+

Integrations overview​

The tdp-iceberg chart requires access to S3-compatible storage (Apache Ozone S3 Gateway, MinIO, or other S3 endpoint) and Hive Metastore as a table catalog.

On this page, the focus is to show what the environment needs to be ready for maintenance jobs to work. The activation of jobs, frequencies and commands is in Iceberg Configuration.

S3 / MinIO​

Maintenance CronJobs require the s3-credentials Secret with S3 access credentials. Create it before deployment as described in Security — Iceberg.

Hive Metastore​

By default, the Iceberg catalog uses a Hive Metastore. Configure the connection URI via maintenance.spark.config:

maintenance:
spark:
config:
"spark.sql.catalog.iceberg.type": "hive"
"spark.sql.catalog.iceberg.uri": "thrift://<HIVE_METASTORE_SERVICE>.<NAMESPACE>.svc.cluster.local:9083"
tip

Typical value is thrift://metastore.hive-metastore.svc.cluster.local:9083; adjust host and namespace to your environment.

Configuring Spark connections​

The complete example with Iceberg catalog + S3 endpoint:

maintenance:
spark:
config:
"spark.sql.catalog.iceberg": "org.apache.iceberg.spark.SparkCatalog"
"spark.sql.catalog.iceberg.type": "hive"
"spark.sql.catalog.iceberg.uri": "thrift://<HIVE_METASTORE_SERVICE>.<NAMESPACE>.svc.cluster.local:9083"
"spark.hadoop.fs.s3a.endpoint": "http://<S3_ENDPOINT>.<NAMESPACE>.svc.cluster.local:9000"
"spark.hadoop.fs.s3a.path.style.access": "true"

Connection parameters​

ParameterDescriptionExample
spark.sql.catalog.icebergIceberg catalog class for Sparkorg.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.iceberg.typeCatalog typehive
spark.sql.catalog.iceberg.uriHive Metastore URIthrift://metastore.<NAMESPACE>.svc.cluster.local:9083
spark.hadoop.fs.s3a.endpointS3 Endpoint URLhttp://ozone-s3g.<NAMESPACE>.svc.cluster.local:9000
spark.hadoop.fs.s3a.path.style.accessForce path-style (required for MinIO/Ozone)"true"

Trino​

Trino can query Iceberg tables via the Iceberg connector. The configuration is carried out on the tdp-trino chart side — see Trino Configuration.

Spark​

Iceberg tables can be processed directly by Spark. Configuration is performed on the tdp-spark chart side — see Spark Configuration.

JupyterLab​

JupyterLab can query Iceberg tables via Spark as long as:

  • Jupyter ↔ Spark integration is functional;
  • the Iceberg catalog is configured in Spark;
  • Hive Metastore and S3/MinIO endpoint are accessible.

See:

Airflow​

Airflow can orchestrate pipelines that operate Iceberg tables. The connection configuration is carried out on the tdp-airflow chart side — see Integrations — Airflow.

Combining value files​

Terminal input
helm upgrade --install <RELEASE_NAME> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-iceberg \
-n <NAMESPACE> \
-f my-values.yaml \
-f values-integration.yaml