Integrações — Iceberg
Visão geral das integrações
O chart tdp-iceberg requer acesso ao armazenamento S3-compatível (Apache Ozone S3 Gateway, MinIO ou outro endpoint S3) e ao Hive Metastore como catálogo de tabelas.
Nesta página, o foco é mostrar o que o ambiente precisa de ter pronto para que os jobs de manutenção funcionem. A activação dos jobs, frequências e comandos fica em Configuração do Iceberg.
S3 / MinIO
Os CronJobs de manutenção requerem um Secret com as credenciais de acesso ao S3.
Criar o Secret
kubectl -n <namespace> create secret generic s3-credentials \
--from-literal=access-key='<ACCESS_KEY>' \
--from-literal=secret-key='<SECRET_KEY>'
Armazene as credenciais em um arquivo de valores separado (fora do Git) ou em um Secret Kubernetes existente. Nunca as inclua diretamente no repositório.
Hive Metastore
Por padrão, o catálogo Iceberg utiliza um Hive Metastore. Configure o URI de conexão via maintenance.spark.config:
maintenance:
spark:
config:
"spark.sql.catalog.iceberg.type": "hive"
"spark.sql.catalog.iceberg.uri": "thrift://<metastore-service>.<namespace>.svc.cluster.local:9083"
O valor típico é thrift://metastore.hive-metastore.svc.cluster.local:9083; ajuste host e namespace ao seu ambiente.
Configuração de conexões Spark
O exemplo completo com catálogo Iceberg + endpoint S3:
maintenance:
spark:
config:
"spark.sql.catalog.iceberg": "org.apache.iceberg.spark.SparkCatalog"
"spark.sql.catalog.iceberg.type": "hive"
"spark.sql.catalog.iceberg.uri": "thrift://<metastore-service>.<namespace>.svc.cluster.local:9083"
"spark.hadoop.fs.s3a.endpoint": "http://<s3-host>.<namespace>.svc.cluster.local:9000"
"spark.hadoop.fs.s3a.path.style.access": "true"
Parâmetros de conexão
| Parâmetro | Descrição | Exemplo |
|---|---|---|
spark.sql.catalog.iceberg | Classe do catálogo Iceberg para Spark | org.apache.iceberg.spark.SparkCatalog |
spark.sql.catalog.iceberg.type | Tipo do catálogo | hive |
spark.sql.catalog.iceberg.uri | URI do Hive Metastore | thrift://metastore.<ns>.svc.cluster.local:9083 |
spark.hadoop.fs.s3a.endpoint | URL do endpoint S3 | http://ozone-s3g.<ns>.svc.cluster.local:9000 |
spark.hadoop.fs.s3a.path.style.access | Forçar path-style (necessário para MinIO/Ozone) | "true" |
Trino
O Trino pode consultar tabelas Iceberg via conector Iceberg. A configuração é realizada do lado do chart tdp-trino — consulte Configuração do Trino.
Spark
As tabelas Iceberg podem ser processadas diretamente pelo Spark. A configuração é realizada do lado do chart tdp-spark — consulte Configuração do Spark.
JupyterLab
O JupyterLab pode consultar tabelas Iceberg via Spark, desde que:
- a integração Jupyter ↔ Spark esteja funcional;
- o catálogo Iceberg esteja configurado no Spark;
- o Hive Metastore e o endpoint S3/MinIO estejam acessíveis.
Consulte:
Airflow
O Airflow pode orquestrar pipelines que operam tabelas Iceberg. A configuração de conexão é realizada do lado do chart tdp-airflow — consulte Integrações — Airflow.
Combinando arquivos de valores
helm upgrade --install <release> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-iceberg \
-n <namespace> \
-f meu-values.yaml \
-f values-integracao.yaml