Saltar para o conteúdo principal
Versão 3.0.0

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

Terminal input
kubectl -n <namespace> create secret generic s3-credentials \
--from-literal=access-key='<ACCESS_KEY>' \
--from-literal=secret-key='<SECRET_KEY>'
Credenciais

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"
tip

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âmetroDescriçãoExemplo
spark.sql.catalog.icebergClasse do catálogo Iceberg para Sparkorg.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.iceberg.typeTipo do catálogohive
spark.sql.catalog.iceberg.uriURI do Hive Metastorethrift://metastore.<ns>.svc.cluster.local:9083
spark.hadoop.fs.s3a.endpointURL do endpoint S3http://ozone-s3g.<ns>.svc.cluster.local:9000
spark.hadoop.fs.s3a.path.style.accessForç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

Terminal input
helm upgrade --install <release> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-iceberg \
-n <namespace> \
-f meu-values.yaml \
-f values-integracao.yaml