Desenvolver o pipeline de DLT
O desenvolvimento e o teste do código do pipeline são diferentes de outras cargas de trabalho do Apache Spark. Este artigo fornece uma visão geral da funcionalidade suportada, das práticas recomendadas e das considerações ao desenvolver o código pipeline. Para obter mais recomendações e práticas recomendadas, consulte Aplicação das práticas recomendadas de desenvolvimento software e DevOps ao pipeline de DLT.
O senhor deve adicionar o código-fonte a uma configuração do pipeline para validar o código ou executar uma atualização. Consulte Configurar um pipeline DLT.
Quais arquivos são válidos para o código-fonte do pipeline?
O código do pipeline DLT pode ser Python ou SQL. O senhor pode ter uma mistura de arquivos de código-fonte Python e SQL fazendo o backup de um único pipeline, mas cada arquivo só pode conter uma linguagem. Consulte Desenvolver código de pipeline com Python e Desenvolver código de pipeline com SQL.
O senhor pode usar os arquivos Notebook e workspace ao especificar o código-fonte para um pipeline. Os arquivos do espaço de trabalho representam scripts Python ou SQL criados no IDE de sua preferência ou no editor de arquivos Databricks. Consulte O que são arquivos workspace?
Se o senhor desenvolver o código Python como módulos ou biblioteca, deverá instalar e importar o código e, em seguida, chamar os métodos de um Notebook Python ou de um arquivo workspace configurado como código-fonte. Consulte gerenciar Python dependências para o pipeline DLT.
Se precisar usar um comando SQL arbitrário em um notebook Python, o senhor pode usar o padrão de sintaxe spark.sql("<QUERY>")
para executar SQL como código Python.
Unity Catalog As funções permitem que o senhor registre funções Python arbitrárias definidas pelo usuário para uso em SQL. Consulte Funções definidas pelo usuário (UDFs) no Unity Catalog.
Visão geral do recurso de desenvolvimento de DLT
A DLT amplia e aproveita muitos Databricks recursos e introduz novos recursos e conceitos. A tabela a seguir apresenta uma breve visão geral dos conceitos e recursos que dão suporte ao desenvolvimento do código pipeline:
Recurso | Descrição |
---|---|
Modo de desenvolvimento | Novos pipelines são configurados para execução em modo de desenvolvimento pelo site default. A Databricks recomenda o uso do modo de desenvolvimento para desenvolvimento e testes interativos. Consulte Modos de desenvolvimento e produção. |
Validar | Uma atualização |
cadernos | Notebook configurado como código-fonte para um DLT pipeline oferece opções interativas para validar o código e executar atualizações. Consulte Desenvolver e depurar o pipeline DLT no Notebook. |
Parâmetros | Aproveite os parâmetros no código-fonte e nas configurações do pipeline para simplificar os testes e a extensibilidade. Consulte Usar parâmetros com o pipeline DLT. |
Databricks Asset Bundles | Databricks Os ativo Bundles permitem que o senhor mova as configurações do pipeline e o código-fonte entre os espaços de trabalho. Consulte Converter um DLT pipeline em um projeto Databricks ativo Bundle. |
Criar um conjunto de dados de amostra para desenvolvimento e teste
Databricks recomenda a criação de conjuntos de dados de desenvolvimento e teste para testar a lógica do pipeline com dados esperados e registros potencialmente malformados ou corrompidos. Há várias maneiras de criar conjuntos de dados que podem ser úteis para desenvolvimento e testes, incluindo as seguintes:
- Selecione um subconjunto de dados de uma produção dataset.
- Use dados anônimos ou gerados artificialmente para fontes contendo PII.
- Crie dados de teste com resultados bem definidos com base na lógica de transformações downstream.
- Preveja possíveis corrupções de dados, registros malformados e alterações de dados anteriores criando registros que quebrem as expectativas do esquema de dados.
Por exemplo, se o senhor tiver um Notebook que define um dataset usando o seguinte código:
CREATE OR REFRESH STREAMING TABLE input_data
AS SELECT * FROM STREAM read_files(
"/production/data",
format => "json")
O senhor poderia criar um exemplo em dataset contendo registros específicos usando uma consulta como a seguinte:
CREATE OR REFRESH MATERIALIZED VIEW input_data AS
SELECT "2021/09/04" AS date, 22.4 as sensor_reading UNION ALL
SELECT "2021/09/05" AS date, 21.5 as sensor_reading
O exemplo a seguir demonstra a filtragem de dados publicados para criar um subconjunto dos dados de produção para desenvolvimento ou teste:
CREATE OR REFRESH MATERIALIZED VIEW input_data AS SELECT * FROM prod.input_data WHERE date > current_date() - INTERVAL 1 DAY
Para usar esses diferentes conjuntos de dados, crie vários pipelines com o Notebook implementando a lógica das transformações. Cada pipeline pode ler dados do input_data
dataset, mas está configurado para incluir o Notebook que cria o dataset específico para o ambiente.
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 conhecer os conceitos básicos da sintaxe do pipeline, consulte Desenvolver código de pipeline com Python e Desenvolver código de pipeline com SQL.
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 DLT 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 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 dos sites Python e SQL para escrever o código-fonte do pipeline, consulte DLT SQL language reference e DLT Python language reference.
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: execute 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 DLT pipeline .
Ingerir dados com DLT
DLT suporta 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. O senhor pode ingerir dados diretamente com a DLT a partir 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 sobre o 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 por DLT são tabelas 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 pelo DLT
Databricks gerenciar automaticamente tabelas criadas com DLT, determinar 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 pelo DLT
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 da DLT.
Para obter uma lista dos requisitos e limitações específicos do uso do DLT com o 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.