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.