O que é Delta Live Tables?
Nota
Delta Live Tables requer o plano Premium. Entre em contato com sua equipe de conta Databricks para obter mais informações.
Delta Live Tables é uma estrutura declarativa projetada para simplificar a criação de pipelines de extração, transformação e carga (ETL) confiáveis e fáceis de manter. Você especifica quais dados ingerir e como transformá-los, e o Delta Live Tables automatiza os principais aspetos do gerenciamento de seu pipeline de dados, incluindo orquestração, gerenciamento de computação, monitoramento, imposição de qualidade de dados e tratamento de erros.
O Delta Live Tables é construído no Apache Spark, mas em vez de definir seus pipelines de dados usando uma série de tarefas separadas do Apache Spark, você define tabelas de streaming e visualizações materializadas que o sistema deve criar e as consultas necessárias para preencher e atualizar essas tabelas de streaming e visualizações materializadas.
Para saber mais sobre os benefícios de criar e executar seus pipelines de ETL com o Delta Live Tables, consulte a página do produto Delta Live Tables.
benefícios do Delta Live Tables em comparação com o Apache Spark
O Apache Spark é um mecanismo de análise unificado de código aberto versátil, incluindo ETL. O Delta Live Tables baseia-se no Spark para lidar com tarefas específicas e comuns de processamento de ETL. O Delta Live Tables pode acelerar significativamente seu caminho para a produção quando seus requisitos incluem essas tarefas de processamento, incluindo:
- Ingerir dados de fontes típicas.
- Transformação incremental de dados.
- Realização de captura de dados de alteração (CDC).
No entanto, Delta Live Tables é inadequado para implementar alguns tipos de lógica processual. Por exemplo, requisitos de processamento como gravar em uma tabela externa ou incluir uma condicional que opera em tabelas de banco de dados ou armazenamento de arquivos externos não podem ser executados dentro do código que define um conjunto de dados Delta Live Tables. Para implementar o processamento não suportado pelo Delta Live Tables, o Databricks recomenda usar o Apache Spark ou incluir o pipeline em um trabalho Databricks que executa o processamento em uma tarefa de trabalho separada. Consulte a tarefa do pipeline Delta Live Tables para trabalhos.
A tabela a seguir compara o Delta Live Tables com o Apache Spark:
Capacidade | Tabelas Delta Live | Apache Spark |
---|---|---|
Transformações de dados | Você pode transformar dados usando SQL ou Python. | Você pode transformar dados usando SQL, Python, Scala ou R. |
Processamento incremental de dados | Muitas transformações de dados são processadas automaticamente de forma incremental. | Você deve determinar quais dados são novos para que possa processá-los incrementalmente. |
Orquestração | As transformações são orquestradas automaticamente na ordem correta. | Você deve certificar-se de que as diferentes transformações sejam executadas na ordem correta. |
Paralelismo | Todas as transformações são executadas com o nível correto de paralelismo. | Você deve usar threads ou um orquestrador externo para executar transformações não relacionadas em paralelo. |
Tratamento de erros | As falhas são repetidas automaticamente. | Você deve decidir como lidar com erros e tentativas. |
Monitorização | As métricas e eventos são registrados automaticamente. | Você deve escrever código para coletar métricas sobre execução ou qualidade de dados. |
Conceitos-chave de Delta Live Tables
A ilustração a seguir mostra os componentes importantes de um pipeline Delta Live Tables, seguido por uma explicação de cada um.
Tabela de streaming
Uma tabela de streaming é uma tabela Delta que tem um ou mais fluxos gravando nela. As tabelas de streaming são comumente usadas para ingestão porque processam dados de entrada exatamente uma vez e podem processar grandes volumes de dados somente de acréscimo. As tabelas de streaming também são úteis para a transformação de baixa latência de fluxos de dados de alto volume.
Vista materializada
Uma vista materializada é uma vista que contém registos pré-calculados com base na consulta que define a vista materializada. Os registos na visualização materializada são automaticamente atualizados pelo Delta Live Tables com base na agenda de atualização ou nos disparadores do pipeline. Cada vez que uma vista materializada é atualizada, é garantido que terá os mesmos resultados que executar a consulta definidora sobre os dados mais recentes disponíveis. No entanto, isso geralmente é feito sem recalcular o resultado completo do zero, usando atualização incremental. Visões materializadas são comumente usadas para transformações.
Visualizações
Todas as visualizações no Azure Databricks computam os resultados dos conjuntos de dados de origem conforme são consultados, tirando proveito das otimizações de cache disponíveis. O Delta Live Tables não publica exibições no catálogo, portanto, as exibições podem ser referenciadas somente no pipeline em que são definidas. As visualizações são úteis como consultas intermediárias que não devem ser expostas a usuários finais ou sistemas. O Databricks recomenda o uso de modos de exibição para impor restrições de qualidade de dados ou transformar e enriquecer conjuntos de dados que geram várias consultas downstream.
Gasoduto
Um pipeline é uma coleção de tabelas de streaming e vistas materializadas que são atualizadas juntas. Essas tabelas de streaming e exibições materializadas são declaradas em arquivos de origem Python ou SQL. Um pipeline também inclui uma configuração que define a computação usada para atualizar as tabelas de streaming e as exibições materializadas quando o pipeline é executado. Semelhante a como um modelo Terraform define a infraestrutura em sua conta de nuvem, um pipeline Delta Live Tables define os conjuntos de dados e transformações para seu processamento de dados.
Como os conjuntos de dados Delta Live Tables processam dados?
A tabela a seguir descreve como visões materializadas, tabelas de streaming e visões processam dados.
Tipo de conjunto de dados | Como os registros são processados por meio de consultas definidas? |
---|---|
Tabela de transmissão | Cada registo é processado exatamente uma vez. Isso pressupõe uma fonte somente de acréscimo. |
Vista materializada | Os registros são processados conforme necessário para retornar resultados precisos para o estado atual dos dados. As visualizações materializadas devem ser usadas para tarefas de processamento de dados, como transformações, agregações ou consultas lentas de pré-computação e cálculos usados com frequência. |
Vista | Os registros são processados sempre que a exibição é consultada. Use exibições para transformações intermediárias e verificações de qualidade de dados que não devem ser publicadas em conjuntos de dados públicos. |
Declare os seus primeiros conjuntos de dados no Delta Live Tables
Delta Live Tables introduz nova sintaxe para Python e SQL. Para aprender as noções básicas da sintaxe de pipeline, consulte Desenvolver código de pipeline com Python e Desenvolver código de pipeline com SQL.
Nota
O Delta Live Tables separa as definições do conjunto de dados do processamento de atualizações, e os blocos de anotações Delta Live Tables não se destinam à execução interativa.
Como configurar os pipelines do Delta Live Tables?
As configurações para os pipelines do Delta Live Tables enquadram-se em duas grandes categorias:
- Configurações que definem uma coleção de blocos de anotações ou arquivos (conhecidos como código-fonte) que usam a sintaxe Delta Live Tables para declarar conjuntos de dados.
- Configurações que controlam a infraestrutura do pipeline, o gerenciamento de dependências, como as atualizações são processadas e como as tabelas são salvas no espaço de trabalho.
A maioria das configurações é opcional, mas algumas exigem atenção cuidadosa, especialmente ao configurar pipelines de produção. Estas incluem o seguinte:
- Para disponibilizar dados fora do pipeline, deve declarar um esquema de destino para publicar no metastore do Hive ou um catálogo de destino e um esquema de destino para publicar no Unity Catalog.
- As permissões de acesso a dados são configuradas através do cluster usado para execução. Verifique se o cluster tem as permissões apropriadas configuradas para as fontes de dados e para o local de armazenamento de destino , caso especificado.
Para obter detalhes sobre como usar Python e SQL para escrever código-fonte para pipelines, consulte as referências da linguagem SQL Delta Live Tables em e as referências da linguagem Python Delta Live Tables em .
Para obter mais informações sobre definições e configurações de pipeline, consulte Configurar um pipeline Delta Live Tables.
Implante seu primeiro pipeline e acione atualizações
Antes de processar dados com Delta Live Tables, você deve configurar um pipeline. Depois que um pipeline é configurado, você pode disparar uma atualização para calcular os resultados de cada conjunto de dados em seu pipeline. Para começar a usar os pipelines do Delta Live Tables, consulte Tutorial: Executar seu primeiro pipeline do Delta Live Tables.
O que é uma atualização de pipeline?
Os pipelines implantam a infraestrutura e recalculam o estado dos dados quando você inicia uma atualização . Uma atualização faz o seguinte:
- Inicia um cluster com a configuração correta.
- Descobre todas as tabelas e exibições definidas e verifica se há erros de análise, como nomes de colunas inválidos, dependências ausentes e erros de sintaxe.
- Cria ou atualiza tabelas e exibições com os dados mais recentes disponíveis.
Os pipelines podem ser executados continuamente ou em um cronograma, dependendo dos requisitos de custo e latência do seu caso de uso. Consulte para executar uma atualização num pipeline Delta Live Tables.
Ingerir dados com Delta Live Tables
O Delta Live Tables dá suporte a todas as fontes de dados disponíveis no Azure Databricks.
O Databricks recomenda o uso de tabelas de streaming para a maioria dos casos de uso no processo de ingestão. Para arquivos que chegam no armazenamento de objetos na nuvem, a Databricks recomenda o Auto Loader. Você pode importar dados diretamente através do Delta Live Tables da maioria dos sistemas de mensagens.
Para obter mais informações sobre como configurar o acesso ao armazenamento em nuvem, consulte Configuração de armazenamento em nuvem.
Para formatos não suportados pelo Auto Loader, você pode usar Python ou SQL para consultar qualquer formato suportado pelo Apache Spark. Consulte Carregar dados com o Delta Live Tables.
Monitorar e impor a qualidade dos dados
Você pode usar expectativas para especificar controles de qualidade de dados no conteúdo de um conjunto de dados. Ao contrário de uma restrição de CHECK
em um banco de dados tradicional, que impede a adição de registros que falham na restrição, as expectativas fornecem flexibilidade ao processar dados que falham nos requisitos de qualidade de dados. Essa flexibilidade permite que você processe e armazene dados que você espera que sejam confusos e dados que devem atender a rigorosos requisitos de qualidade. Consulte Gerenciar a qualidade dos dados com as expectativas do pipeline.
Como o Delta Live Tables e o Delta Lake estão relacionados?
Delta Live Tables estende a funcionalidade do Delta Lake. Como as tabelas criadas e gerenciadas pela Delta Live Tables são tabelas Delta, elas têm as mesmas garantias e recursos fornecidos pela Delta Lake. Veja O que é Delta Lake?.
Delta Live Tables adiciona várias propriedades de tabela, além das muitas propriedades de tabela que podem ser definidas no Delta Lake. Consulte de referência de propriedades do Delta Live Tables e de referência de propriedades da tabela Delta.
Como as tabelas são criadas e gerenciadas pelo Delta Live Tables
O Azure Databricks gerencia automaticamente tabelas criadas com Delta Live Tables, determinando como as atualizações precisam ser processadas para calcular corretamente o estado atual de uma tabela e executando várias tarefas de manutenção e otimização.
Para a maioria das operações, você deve permitir que o Delta Live Tables processe todas as atualizações, inserções e exclusões em uma tabela de destino. Para obter detalhes e limitações, consulte Reter exclusões ou atualizações manuais.
Tarefas de manutenção executadas pela Delta Live Tables
Delta Live Tables executa tarefas de manutenção dentro de 24 horas após uma tabela ser atualizada. A manutenção pode melhorar o desempenho da consulta e reduzir os custos removendo versões antigas das tabelas. Por padrão, o sistema executa uma operação de OPTIMIZE completa seguida por VACUUM. Você pode desabilitar OPTIMIZE para uma tabela definindo pipelines.autoOptimize.managed = false
nas propriedades da tabela para a tabela. As tarefas de manutenção são executadas somente se uma atualização de pipeline tiver sido executada nas 24 horas anteriores ao agendamento das tarefas de manutenção.
Limitações
Para obter uma lista de limitações, consulte Delta Live Tables Limitations.
Para obter uma lista de requisitos e limitações específicos para o uso do Delta Live Tables com o Unity Catalog, consulte Usar o Unity Catalog com seus pipelines do Delta Live Tables
Recursos adicionais
- Delta Live Tables tem suporte total na API REST do Databricks. Consulte API DLT.
- Para as configurações de pipeline e tabela, consulte a referência de propriedades do Delta Live Tables .
- Referência da linguagem SQL Delta Live Tables.
- Referência da linguagem Python de Delta Live Tables.