Pular para o conteúdo principal

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.

nota

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.

nota

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 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.

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:

SQL
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:

SQL
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:

SQL
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.