Desenvolver o pipeline Delta Live Tables

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 do desenvolvimento software e das práticas recomendadas DevOps ao pipeline do Delta Live Table.

Observação

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 do Delta Live Tables.

Quais arquivos são válidos para o código-fonte do pipeline?

O código do pipeline do Delta Live Tables 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 o código do pipeline com Python e Desenvolver o código do 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 de espaço de trabalho?

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 as dependências do Python para o pipeline do Delta Live Tables .

Observação

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 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 Delta Live Tables

Delta Live Tables 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 Validate verifica a correção do código-fonte do pipeline sem executar uma atualização em nenhuma tabela. Consulte Verificar se há erros em um pipeline sem esperar a atualização das tabelas.

Notebooks

O notebook configurado como código-fonte para um Delta Live Tables pipeline oferece opções interativas para validar o código e executar atualizações. Consulte Desenvolver e depurar o pipeline Delta Live Tables 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 Delta Live Tables .

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 projeto Delta Live Tables 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 read_files("/production/data", "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 LIVE.input_data dataset, mas está configurado para incluir o Notebook que cria o dataset específico para o ambiente.