Ir para o conteúdo principal

Publicar em Múltiplos Catálogos e Esquemas a Partir de um Único Pipeline DLT

Simplifique a sintaxe, otimize custos e reduza a complexidade operacional

Publish to Multiple Catalogs and Schemas from a Single DLT Pipeline

Publicado: 12 de março de 2025

Anúncios7 min de leitura

Summary

  • Suporte a Múltiplos Schemas e Catálogos: Publique em múltiplos schemas e catálogos a partir de um único pipeline DLT.
  • Sintaxe Simplificada e Custos Reduzidos: Elimine a palavra-chave LIVE e reduza os custos de infraestrutura.
  • Melhor Observabilidade: Publique logs de eventos no Unity Catalog e gerencie dados em diferentes locais com SQL e Python.

DLT oferece uma plataforma robusta para criar pipelines de processamento de dados confiáveis, fáceis de manter e testar dentro do Databricks. Ao aproveitar seu framework declarativo e provisionar automaticamente computação serverless otimizada, o DLT simplifica as complexidades de streaming, transformação e gerenciamento de dados, entregando escalabilidade e eficiência para fluxos de trabalho de dados modernos.

Estamos animados em anunciar uma melhoria muito aguardada: a capacidade de publicar tabelas em múltiplos schemas e catálogos dentro de um único pipeline DLT. Essa funcionalidade reduz a complexidade operacional, diminui custos e simplifica o gerenciamento de dados, permitindo que você consolide sua arquitetura medallion (Bronze, Silver, Gold) em um único pipeline, mantendo as melhores práticas de organização e governança.

Com essa melhoria, você pode:

  • Simplificar a sintaxe do pipeline – Não é mais necessário usar a sintaxe LIVE para indicar dependências entre tabelas. Nomes de tabelas totalmente e parcialmente qualificados são suportados, juntamente com os comandos USE SCHEMA e USE CATALOG, assim como no SQL padrão.
  • Reduzir a complexidade operacional – Processe e publique todas as tabelas dentro de um pipeline DLT unificado, eliminando a necessidade de pipelines separados por schema ou catálogo.
  • Diminuir custos – Minimize a sobrecarga de infraestrutura consolidando múltiplas cargas de trabalho em um único pipeline.
  • Melhorar a observabilidade – Publique seu log de eventos como uma tabela padrão no metastore do Unity Catalog para monitoramento e governança aprimorados.
“A capacidade de publicar em múltiplos catálogos e schemas a partir de um único pipeline DLT - e não precisar mais do comando LIVE - nos ajudou a padronizar as melhores práticas de pipeline, otimizar nossos esforços de desenvolvimento e facilitar a transição de equipes de cargas de trabalho não-DLT para DLT como parte da nossa adoção em larga escala da ferramenta pela empresa.” — Ron DeFreitas, Principal Data Engineer, HealthVerity

HealthVerity

Como Começar

Criando um Pipeline

Todos os pipelines criados a partir da UI agora suportam por padrão múltiplos catálogos e schemas. Você pode definir um catálogo e schema padrão no nível do pipeline através da UI, da API ou dos Databricks Asset Bundles (DABs).

Pela UI:

  1. Crie um novo pipeline como de costume.
  2. Defina o catálogo e schema padrão nas configurações do pipeline.

Pela API:

Se você está criando um pipeline programaticamente, pode habilitar essa funcionalidade especificando o campo schema em PipelineSettings. Isso substitui o campo target existente, garantindo que os datasets possam ser publicados em múltiplos catálogos e schemas.

Para criar um pipeline com essa funcionalidade via API, você pode seguir este exemplo de código (Observação: a autenticação por Personal Access Token deve estar habilitada para o workspace):

Ao definir o campo schema, o pipeline suportará automaticamente a publicação de tabelas em múltiplos catálogos e schemas sem a necessidade do comando LIVE.

Pelo DAB

  1. Certifique-se de que sua Databricks CLI tenha a versão v0.230.0 ou superior. Caso contrário, atualize a CLI seguindo a documentação.
  2. Configure o ambiente do Databricks Asset Bundle (DAB) seguindo a documentação. Seguindo estes passos, você terá um diretório DAB gerado pela Databricks CLI que contém todos os arquivos de configuração e código fonte.
  3. Encontre o arquivo YAML que define o pipeline DLT em:
    <your dab folder>/<resource>/<pipeline_name>_pipeline.yml
  4. Defina o campo schema no YAML do pipeline e remova o campo target, se existir.
  5. Execute “databricks bundle validate“ para validar se a configuração do DAB está correta.
  6. Execute “databricks bundle deploy -t <environment>“ para implantar seu primeiro pipeline DPM!
“O recurso funciona exatamente como esperamos! Consegui dividir os diferentes datasets dentro do DLT em nossos schemas de stage, core e UDM (basicamente uma configuração bronze, silver, gold) dentro de um único pipeline.” — Florian Duhme, Expert Data Software Developer, Arvato

Arvato

Publicando Tabelas em Múltiplos Catálogos e Schemas

Após configurar seu pipeline, você pode definir tabelas usando nomes totalmente ou parcialmente qualificados tanto em SQL quanto em Python.

Exemplo SQL

Exemplo Python

Lendo Datasets

Você pode referenciar datasets usando nomes totalmente ou parcialmente qualificados, com o comando LIVE sendo opcional para compatibilidade com versões anteriores.

Exemplo SQL

Exemplo Python

GUIA

Seu guia compacto para analítica moderna

Mudanças no Comportamento da API

Com essa nova funcionalidade, métodos chave da API foram atualizados para suportar múltiplos catálogos e schemas de forma mais integrada:

dlt.read() e dlt.read_stream()

Anteriormente, esses métodos só podiam referenciar conjuntos de dados definidos dentro do pipeline atual. Agora, eles podem referenciar conjuntos de dados em vários catálogos e esquemas, rastreando automaticamente as dependências conforme necessário. Isso facilita a criação de pipelines que integram dados de diferentes locais sem configuração manual adicional.

spark.read() e spark.readStream()

No passado, esses métodos exigiam referências explícitas a conjuntos de dados externos, tornando as consultas entre catálogos mais trabalhosas. Com a nova atualização, as dependências agora são rastreadas automaticamente e o esquema LIVE não é mais necessário. Isso simplifica o processo de leitura de dados de várias fontes dentro de um único pipeline.

Usando USE CATALOG e USE SCHEMA

A sintaxe do Databricks SQL agora suporta a definição de catálogos e esquemas ativos dinamicamente, facilitando o gerenciamento de dados em vários locais.

Exemplo de SQL

Exemplo em Python

Gerenciando Logs de Eventos no Unity Catalog

Este recurso também permite que os proprietários de pipelines publiquem logs de eventos no metastore do Unity Catalog para melhor observabilidade. Para habilitar isso, especifique o campo event_log no JSON das configurações do pipeline. Por exemplo:

Com isso, você agora pode emitir GRANTS na tabela de logs de eventos, assim como em qualquer tabela regular:

Você também pode criar uma view sobre a tabela de logs de eventos:

Além de tudo isso, você também pode fazer streaming da tabela de logs de eventos:

Próximos passos?

Olhando para o futuro, essas melhorias se tornarão o padrão para todos os pipelines recém-criados, seja através da interface do usuário, API ou Databricks Asset Bundles. Além disso, uma ferramenta de migração estará disponível em breve para ajudar a transicionar pipelines existentes para o novo modelo de publicação.

Leia mais na documentação aqui.

(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada