Grave em tabelas Delta gerenciadas pelo Unity Catalog usando Spark externo
Agora em GA: crie e grave dados diretamente em tabelas Delta gerenciadas no Unity Catalog a partir de clusters Apache Spark externos, usando catalog commits.
O que mudou
O suporte para criar e gravar dados em tabelas Delta gerenciadas (managed) no Unity Catalog a partir de clientes Apache Spark externos chegou à disponibilidade geral (GA). A operação é viabilizada pela Unity REST API em tabelas que possuem commits coordenados pelo catálogo.
Para que serve
Imagine que você tem uma infraestrutura própria de Apache Spark rodando fora da Databricks (por exemplo, em Kubernetes ou EMR) e precisa carregar dados diretamente nas tabelas gerenciadas do seu lakehouse corporativo sem transformá-las em tabelas externas.
Com essa novidade, você pode:
- Inserir e anexar dados em tabelas gerenciadas diretamente do Spark externo.
- Criar novas tabelas gerenciadas registradas no Unity Catalog a partir de jobs externos.
- Centralizar governança e permissões no Unity Catalog mesmo processando fora da nuvem Databricks.
Como usar
Para habilitar a gravação externa, a tabela gerenciada precisa do recurso de commits de catálogo (delta.feature.catalogManaged).
Crie a tabela gerenciada via SQL no Databricks Runtime:
CREATE TABLE meu_catalogo.meu_schema.minha_tabela (id INT, desc STRING)
USING delta
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
O que acontece nesse código:
- Uma tabela Delta gerenciada é criada dentro do catálogo e schema especificados.
- A propriedade
delta.feature.catalogManagedé definida comosupported, permitindo que o catálogo coordene as gravações externas.
No seu cluster Apache Spark externo, configure a sessão com os pacotes e parâmetros necessários (usando autenticação OAuth M2M):
# Exemplo de configuração do SparkSession no Spark externo
spark_conf = {
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "org.apache.spark.sql.delta.catalog.DeltaCatalog",
"spark.sql.catalog.meu_catalogo": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.meu_catalogo.uri": "https://meu-workspace.cloud.databricks.com",
"spark.sql.catalog.meu_catalogo.auth.type": "oauth",
"spark.sql.catalog.meu_catalogo.auth.oauth.uri": "https://meu-workspace.cloud.databricks.com/oidc/v1/token",
"spark.sql.catalog.meu_catalogo.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.meu_catalogo.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.defaultCatalog": "meu_catalogo",
"spark.hadoop.fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.3.0,io.unitycatalog:unitycatalog-spark_4.1_2.13:0.5.0,org.apache.hadoop:hadoop-aws:3.4.2"
}
O que acontece nesse código:
- Habilita extensões do Delta Lake e define o catálogo do Unity Catalog como o catálogo Spark.
- Aponta a URL da Unity REST API para a URL do seu workspace Databricks.
- Configura a autenticação de máquina para máquina (OAuth M2M) para renovar credenciais automaticamente em jobs longos.
Limitações e requisitos
- Estágio: Geralmente disponível (GA) para Apache Spark. Flink, DuckDB, StreamNative e Starburst continuam em Beta.
- Versões mínimas: Apache Spark 4.0 ou 4.1, Delta Spark 4.3.0 ou superior e cliente Unity Catalog Spark 0.5.0 ou superior.
- Databricks Runtime: DBR 16.4+ para criar ou gravar em tabelas com catalog commits; DBR 18.0+ para habilitar o recurso em tabelas já existentes.
- Permissões: O acesso externo precisa estar habilitado no metastore. A entidade que roda o job precisa de
EXTERNAL USE SCHEMAno schema,SELECTeMODIFYna tabela (ouCREATEpara novas tabelas). - Restrições: Clientes externos não podem executar comandos de manutenção (
OPTIMIZE,VACUUM,ANALYZE), renomear colunas, alterar propriedades internas (delta.*oudatabricks.*), adicionar constraints nem usar tabelas com compatibilidade Iceberg (IcebergCompatV3). - Concorrência: Evite modificar a mesma tabela armazenada no S3 a partir de múltiplos clientes de escrita distintos simultaneamente para evitar inconsistências.
Como aplicar num pipeline
Em pipelines híbridos, você pode usar um cluster Spark externo para ingerir e limpar dados em uma camada Bronze ou Silver gerenciada pelo Unity Catalog, deixando o Databricks SQL ou workflows nativos encarregados apenas das agregações finais na camada Gold e da governança.
- delta lake
- unity catalog
- apache spark
- rest api
External writes to managed Delta tables are now generally available
Resumo e explicação gerados por IA a partir da release note oficial. Em caso de dúvida, a documentação oficial da plataforma prevalece.
Relacionadas
- DatabricksBeta
Conector do SurveyMonkey chega ao Lakeflow Connect no Databricks
O Lakeflow Connect agora conta com conector nativo para o SurveyMonkey em Beta, permitindo ingestão incremental de pesquisas, respostas e contatos com governança no Unity Catalog.
lakeflow connect · surveymonkey - DatabricksBeta
Lakeflow Connect adiciona conector do Oracle Eloqua em Beta
O Lakeflow Connect agora oferece um conector gerenciado em Beta para o Oracle Eloqua, permitindo ingestão incremental de dados de marketing governados pelo Unity Catalog.
lakeflow connect · oracle eloqua - DatabricksBeta
Ingira métricas do GA4 com o novo conector do Lakeflow Connect
O Lakeflow Connect ganha conector gerenciado em Beta para o Google Analytics 4, permitindo ingestão incremental de relatórios agregados via API com governança no Unity Catalog.
lakeflow connect · google analytics