O que é o Delta Live Tables?
Delta Live Tables é uma estrutura declarativa projetada para simplificar a criação de um pipeline confiável e de fácil manutenção para extrair, transformar e carregar (ETL). O senhor especifica quais dados devem ser ingeridos e como transformá-los, e o Delta Live Tables automatiza key aspectos do gerenciamento de seus pipeline dados, inclusive a solicitação, o gerenciamento compute, o monitoramento, a aplicação da qualidade dos dados e o tratamento de erros.
Delta Live Tables é baseado no site Apache Spark, mas, em vez de definir o pipeline de dados usando uma série de Apache Spark tarefas separadas, o senhor define as tabelas de transmissão e a visualização materializada que o sistema deve criar e as consultas necessárias para preencher e atualizar essas tabelas de transmissão e visualização materializada.
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
Apache Spark é um mecanismo versátil de código aberto unified analytics, incluindo ETL. Delta Live Tables baseia-se no site Spark para abordar tarefas específicas e comuns de processamento do site ETL. Delta Live Tables pode acelerar significativamente seu caminho para a produção quando seus requisitos incluem essas tarefas de processamento, inclusive:
Ingestão de dados de fontes típicas.
Transformando dados de forma incremental.
Realização de captura de dados de alterações (CDC) (CDC).
No entanto, o Delta Live Tables não é adequado para a implementação de alguns tipos de lógica processual. Por exemplo, os requisitos de processamento, como gravar em uma tabela externa ou incluir uma condicional que opere no armazenamento de arquivos externos ou em tabelas de banco de dados, não podem ser executados dentro do código que define um Delta Live Tables dataset. Para implementar o processamento não suportado pelo Delta Live Tables, o Databricks recomenda o uso do Apache Spark ou a inclusão do pipeline em um Databricks Job que executa o processamento em uma tarefa de trabalho separada. Consulte Delta Live Tables pipeline tarefa for Job.
A tabela a seguir compara o Delta Live Tables com o Apache Spark:
Capacidade |
Delta Live Tables |
Apache Spark |
---|---|---|
Transformações de dados |
O senhor pode transformar dados usando SQL ou Python. |
O senhor pode fazer a transformação de 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 poder processá-los de forma incremental. |
Orquestração |
As transformações são orquestradas automaticamente na ordem correta. |
O senhor 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. |
O senhor deve usar threads ou um orquestrador externo para executar transformações não relacionadas em paralelo. |
Tratamento de erros |
As falhas são automaticamente repetidas. |
Você deve decidir como lidar com erros e novas tentativas. |
Monitoramento |
As métricas e os eventos são registrados automaticamente. |
O senhor deve escrever código para coletar métricas sobre a execução ou a qualidade dos dados. |
Conceitos-chave de Delta Live Tables
A ilustração a seguir mostra os componentes importantes de um pipeline do Delta Live Tables, seguidos de uma explicação de cada um.
Tabela de transmissão
Uma tabela de transmissão é uma tabela Delta que tem uma ou mais transmissões gravadas nela. As tabelas de transmissão são comumente usadas para ingestão porque processam os dados de entrada exatamente uma vez e podem processar grandes volumes de dados somente de anexos. As tabelas de transmissão também são úteis para transformações de baixa latência de transmissão de dados de alto volume.
Visualização materializada
Um view materializado é um view que contém registros pré-computados com base na consulta que define o view materializado. Os registros no site materializado view são automaticamente atualizados pelo site Delta Live Tables com base no programa de atualização ou nos acionadores do site pipeline. Toda vez que um view materializado é atualizado, é garantido que ele terá os mesmos resultados que a execução da consulta de definição sobre os dados mais recentes disponíveis. No entanto, isso geralmente é feito sem recomputar o resultado completo do zero, usando a atualização incremental. As visualizações materializadas são comumente usadas para transformações.
Visualizações
Todas as visualizações em Databricks compute resultam do conjunto de dados de origem à medida que são consultadas, aproveitando as otimizações de cache quando disponíveis. Delta Live Tables não publica a visualização no catálogo, portanto, a visualização pode ser referenciada apenas no site pipeline no qual está definida. são úteis como consultas intermediárias que não devem ser expostas a usuários ou sistemas finais. Databricks recomenda o uso da visualização para impor restrições de qualidade de dados ou transformar e enriquecer o conjunto de dados que conduz a várias consultas downstream.
Tubulação
O site pipeline é uma coleção de tabelas de transmissão e visualizações materializadas que são atualizadas em conjunto. Essas tabelas de transmissão e a visualização materializada são declaradas nos arquivos de origem Python ou SQL. Um pipeline também inclui uma configuração que define o compute usado para atualizar as tabelas de transmissão e a visualização materializada quando a pipeline execução. Da mesma forma que um Terraform padrão define a infraestrutura em sua nuvem account, um Delta Live Tables pipeline define o conjunto de dados e as transformações para seu processamento de dados.
Como o conjunto de dados Delta Live Tables processa os dados?
A tabela a seguir descreve como a visualização materializada, as tabelas de transmissão e os dados do processo de visualização:
Tipo de dataset |
Como os registros são processados por meio de consultas definidas? |
---|---|
Tabela de transmissão |
Cada registro é processado exatamente uma vez. Isso pressupõe uma origem somente de acréscimo. |
Visualização materializada |
Os registros são processados conforme necessário para retornar resultados precisos para o estado atual dos dados. A visualização materializada deve ser usada para tarefas de processamento de dados, como transformações, agregações ou pré-computação de consultas lentas e cálculos usados com frequência. |
View |
Os registros são processados sempre que a exibição é consultada. Use modos de exibição para transformações intermediárias e verificações de qualidade de dados que não devem ser publicadas em conjuntos de dados públicos. |
Declarar seus primeiros conjuntos de dados no Delta Live Tables
O Delta Live Tables apresenta uma nova sintaxe para Python e SQL. Para saber os conceitos básicos da sintaxe do pipeline, consulte Desenvolver código de pipeline com Python e Desenvolver código de pipeline com SQL.
Observação
O Delta Live Tables separa as definições do conjunto de dados do processamento de atualizações, e os cadernos Delta Live Tables não se destinam à execução interativa.
Como o senhor configura o pipeline Delta Live Tables?
As configurações do pipeline Delta Live Tables se enquadram em duas categorias amplas:
Configurações que definem uma coleção de Notebook ou arquivos (conhecidos como código-fonte) que usam a sintaxe Delta Live Tables para declarar o conjunto 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 workspace.
A maioria das configurações é opcional, mas algumas exigem atenção cuidadosa, especialmente ao configurar pipelines de produção. Isso inclui o seguinte:
Para disponibilizar dados fora do pipeline, você deve declarar um esquema de destino para publicar no Hive metastore ou um catálogo de destino e um esquema de destino para publicar no Unity Catalog.
As permissões de acesso aos dados são configuradas por meio do clustering usado para a execução. Certifique-se de que seu clustering tenha as permissões apropriadas configuradas para a fonte de dados e o local de armazenamento de destino, se especificado.
Para obter detalhes sobre como usar Python e SQL para escrever código-fonte para pipelines, consulte Referência de linguagem SQL Delta Live Tables e Referência de linguagem Python Delta Live Tables.
Para obter mais informações sobre definições e configurações de pipeline, consulte Configurar um pipeline do Delta Live Tables.
Implemente seu primeiro pipeline e acione atualizações
Antes de processar dados com o Delta Live Tables, o senhor deve configurar um pipeline. Depois que um pipeline for configurado, o senhor pode acionar uma atualização para calcular os resultados de cada dataset em seu pipeline. Para começar a usar o pipeline Delta Live Tables, consulte o tutorial: execute seu primeiro Delta Live Tables pipeline .
O que é uma atualização de pipeline?
Os pipelines implementam a infraestrutura e recalculam o estado dos dados quando você inicia uma atualização. Uma atualização executa as seguintes ações:
Inicia um cluster com a configuração correta.
Descobre todas as tabelas e visualizaçõ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 visualizaçõ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 Executar uma atualização em um pipeline do Delta Live Tables.
Ingerir dados com o Delta Live Tables
O Delta Live Tables é compatível com todas as fontes de dados disponíveis no Databricks.
O Databricks recomenda o uso de tabelas de transmissão para a maioria dos casos de uso de ingestão. Para arquivos que chegam ao armazenamento de objetos na nuvem, a Databricks recomenda o Auto Loader. Você pode ingerir dados diretamente com o Delta Live Tables da maioria dos barramentos de mensagens.
Para obter mais informações sobre como configurar o acesso ao armazenamento cloud, consulte Configuração do armazenamento em nuvem.
Para formatos não compatíveis 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.
Monitora e reforça a qualidade dos dados
Você pode utilizar expectativas para especificar controles de qualidade de dados no conteúdo de um conjunto de dados. Diferentemente de uma restrição CHECK
em um banco de dados tradicional, que impede a adição de registros que não atendam à restrição, as expectativas oferecem flexibilidade ao processar dados que não atendem aos requisitos de qualidade de dados. Essa flexibilidade permite processar e armazenar dados que você espera que sejam confusos e dados que precisam atender a requisitos rigorosos de qualidade. Consulte Gerenciar a qualidade dos dados com o Delta Live Tables.
Como as tabelas são criadas e gerenciadas pelo Delta Live Tables
O Databricks gerencia automaticamente as tabelas criadas com o Delta Live Tables, determinando como as atualizações precisam ser processadas para calcular corretamente o estado atual de uma tabela e realizando uma série de tarefas de manutenção e otimização.
Para a maioria das operações, você deve permitir que 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 Manter exclusões ou atualizações manuais.
Tarefas de manutenção executadas pelo Delta Live Tables
Delta Live Tables executa tarefas de manutenção dentro de 24 horas após a atualização de uma tabela. A manutenção pode melhorar o desempenho query e reduzir custos removendo versões antigas de tabelas. Por default, o sistema executa uma operação OPTIMIZE completa seguida de 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 execução nas 24 horas antes das tarefas de manutenção serem agendadas.
Limitações
Para obter uma lista de limitações, consulte Limitações do Delta Live Tables.
Para obter uma lista dos requisitos e limitações específicos do uso do Delta Live Tables com o Unity Catalog, consulte Use Unity Catalog with your Delta Live Tables pipeline
Recursos adicionais
O Delta Live Tables tem suporte total na API REST da Databricks. Consulte API DLT.
Para configurações de pipeline e tabela, consulte Referência de propriedades do Delta Live Tables.