O que é DLT?
A DLT é 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 a DLT automatiza key aspectos do gerenciamento do seu pipeline de dados, inclusive a solicitação, o gerenciamento do compute, o monitoramento, a aplicação da qualidade dos dados e o tratamento de erros.
A DLT é baseada em Apache Spark, mas em vez de definir seu pipeline de dados usando uma série de Apache Spark tarefas separadas, o senhor define tabelas de transmissão e visualizações materializadas que o sistema deve criar e as consultas necessárias para preencher e atualizar essas tabelas de transmissão e visualizações materializadas.
Para saber mais sobre os benefícios de criar e executar seu pipeline ETL com a DLT, consulte a página do produto DLT.
Benefícios do DLT em comparação com o Apache Spark
Apache Spark é um mecanismo versátil de código aberto unified analytics, incluindo ETL. A DLT se baseia no site Spark para abordar tarefas específicas e comuns de processamento do site ETL. A DLT 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 DLT não é adequado para implementar alguns tipos de lógica processual. Por exemplo, os requisitos de processamento, como gravar em uma tabela externa ou incluir uma condicional que opere em armazenamento de arquivos externos ou tabelas de banco de dados, não podem ser executados dentro do código que define uma DLT dataset. Para implementar o processamento não compatível com a DLT, o site 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 DLT pipeline tarefa for Job.
A tabela a seguir compara a DLT com o Apache Spark:
Capacidade | DLT | 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. |
Principais conceitos de DLT
A ilustração a seguir mostra os componentes importantes de um pipeline de DLT, seguidos de uma explicação de cada um.
mesa 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 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.
Materializado view
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 pela DLT 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 o incremental refresh. As visualizações materializadas são comumente usadas para transformações.
visualização
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. A DLT não publica a visualização no catálogo, portanto, ela só pode ser referenciada 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 DLT pipeline define o conjunto de dados e as transformações para seu processamento de dados.
Como o conjunto de dados DLT 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. |
Declare seu primeiro conjunto de dados em DLT
A DLT 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.
O DLT separa as definições do dataset do processamento de atualizações, e o DLT Notebook não se destina à execução interativa.
Como o senhor configura o pipeline DLT?
As configurações do pipeline de DLT se enquadram em duas grandes categorias:
- Configurações que definem uma coleção de Notebook ou arquivos (conhecidos como código-fonte ) que usam a sintaxe DLT 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 o uso de Python e SQL para escrever o código-fonte do pipeline, consulte a referência de linguagem DLT SQL e a referência de linguagem DLT Python.
Para obter mais informações sobre definições e configurações de pipeline, consulte Configurar um pipeline DLT.
Implante seu primeiro pipeline e acione atualizações
Antes de processar dados com a DLT, 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 DLT, consulte o tutorial: executando seu primeiro DLT 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.
O pipeline pode ser executado continuamente ou em uma programação, dependendo dos requisitos de custo e latência do seu caso de uso. Veja a execução de uma atualização em um DLT pipeline.
Ingira dados com DLT
A DLT é compatível com todas as fontes de dados disponíveis em Databricks.
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 DLT da maioria dos barramentos de mensagens.
Para obter mais informações sobre como configurar o acesso ao armazenamento em nuvem, consulte Configuração do armazenamento em nuvem.
Para formatos não suportados pelo Auto Loader, o senhor pode usar Python ou SQL para consultar qualquer formato suportado pelo Apache Spark. Consulte Carregar dados com DLT.
Monitore e reforce a qualidade dos dados
O senhor pode usar expectativas para especificar controles de qualidade de dados no conteúdo de um dataset. Diferentemente da restrição CHECK
em um banco de dados tradicional, que impede a adição de registros que não cumpram a restrição, as expectativas oferecem flexibilidade ao processar dados que não cumprem os requisitos de qualidade de dados. Essa flexibilidade permite processar e armazenar dados que você espera que sejam confusos e dados que devem atender a requisitos rigorosos de qualidade. Veja como gerenciar a qualidade dos dados com pipeline expectativas.
Qual é a relação entre a DLT e o Delta Lake?
A DLT amplia a funcionalidade do Delta Lake. Como as tabelas criadas e gerenciadas pela DLT são Delta, elas têm as mesmas garantias e recursos fornecidos por Delta Lake. Consulte O que é o Delta Lake?
O DLT adiciona várias propriedades de tabela, além das muitas propriedades de tabela que podem ser definidas no Delta Lake. Consulte a referência de propriedades DLT e a referência de propriedades da tabela Delta.
Como as tabelas são criadas e gerenciadas pela DLT
Databricks gerenciar automaticamente as tabelas criadas com a DLT, determinando como as atualizações precisam ser processadas para compute corretamente o estado atual de uma tabela e executar várias tarefas de manutenção e otimização.
Para a maioria das operações, o senhor deve permitir que a DLT 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.
Tarefa de manutenção realizada pela DLT
A DLT realiza a tarefa de manutenção dentro de 24 horas após a atualização de uma tabela. A manutenção pode melhorar o desempenho da consulta e reduzir o custo, removendo versões antigas das tabelas. Em default, o sistema executa uma OPTIMIZE operações seguidas de vacuum. O senhor pode desativar o OPTIMIZE para uma tabela definindo pipelines.autoOptimize.managed = false
nas propriedades da tabela. As tarefas de manutenção são realizadas somente se uma atualização do site pipeline tiver sido executada nas 24 horas anteriores à programação da tarefa de manutenção.
Delta Live Tables agora é DLT
O produto anteriormente conhecido como Delta Live Tables agora é DLT.
Limitações
Para obter uma lista de limitações, consulte Limitações de DLT.
Para obter uma lista de requisitos e limitações específicos do uso de DLT com Unity Catalog, consulte Use Unity Catalog with your DLT pipeline
Recurso adicional
- A DLT tem suporte total na API REST da Databricks. Consulte API DLT.
- Para configurações de pipeline e tabela, consulte a referência de propriedades DLT.
- Referência da linguagem SQL DLT.
- Referência da linguagem DLT Python.