Definir configurações de pipeline para Delta Live Tables

Este artigo fornece detalhes sobre como definir configurações de pipeline para Delta Live Tables. Delta Live Tables fornece uma interface de usuário para configurar e editar configurações de pipeline. A IU também fornece uma opção para exibir e editar configurações em JSON.

Observação

Você pode definir a maioria das configurações com a interface do usuário ou uma especificação JSON. Algumas opções avançadas estão disponíveis apenas usando a configuração JSON.

A Databricks recomenda que o senhor se familiarize com as configurações do Delta Live Tables usando a interface do usuário. Se necessário, o senhor pode editar diretamente a configuração JSON no site workspace. Os arquivos de configuração JSON também são úteis ao implantar o pipeline em novos ambientes ou ao usar a CLI ou a API REST.

Para obter uma referência completa às definições de configuração JSON do Delta Live Tables, consulte Configurações de pipeline do Delta Live Tables.

Observação

Como compute recurso é totalmente gerenciado para serverless pipelines, compute configurações como Enhanced autoscale, política de cluster, tipos de instância e Cluster Tag não estão disponíveis quando o senhor seleciona serverless (Public Preview) para um pipeline.

O senhor ainda pode passar parâmetros de configuração para um pipeline serverless, mas qualquer parâmetro definido em um objeto clusters na configuração JSON é ignorado.

Para saber mais sobre como habilitar o pipeline DLT serverless, entre em contato com a equipe da Databricks account.

Escolha uma edição do produto

Selecione a edição do produto Delta Live Tables com os recursos mais adequados para seus requisitos de pipeline. As seguintes edições do produto estão disponíveis:

  • Core para execução de transmissão de ingestão de cargas de trabalho. Selecione a edição Core se seu pipeline não exigir recursos avançados, como captura de dados de alterações (CDC) (CDC) ou expectativas Delta Live Tables .

  • Pro para a ingestão de transmissão de execução e cargas de trabalho de CDC. A edição do produto Pro oferece suporte a todos os recursos Core , além de suporte para cargas de trabalho que exigem atualização de tabelas com base em alterações nos dados de origem.

  • Advanced cargas de trabalho de ingestão de transmissão de execução, cargas de trabalho de CDC e cargas de trabalho que exigem expectativas. A edição do produto Advanced oferece suporte aos recursos das edições Core e Pro e também oferece suporte à aplicação de restrições de qualidade de dados com as expectativas do Delta Live Tables.

Você pode selecionar a edição do produto ao criar ou editar um pipeline. Você pode selecionar uma edição diferente para cada pipeline. Veja a página do produto Delta Live Tables.

Observação

Se seu pipeline incluir recursos não suportados pela edição do produto selecionado, por exemplo, expectativas, você receberá uma mensagem de erro com o motivo do erro. Você pode então editar o pipeline para selecionar a edição apropriada.

Escolha um modo de pipeline

Você pode atualizar seu pipeline continuamente ou com gatilhos manuais com base no modo de pipeline. Consulte Execução de pipeline contínua versus acionada.

Selecione uma política clusters

Os usuários devem ter permissões para implementar compute para configurar e atualizar pipeline Delta Live Tables. os administradores workspace podem configurar políticas de clusters para fornecer aos usuários acesso ao recurso compute para Delta Live Tables. Consulte Definir limites na computede pipeline do Delta Live Tables.

Observação

  • política de cluster são opcionais. Verifique com o administrador workspace se você não tiver os privilégios compute necessários para Delta Live Tables.

  • Para garantir que clusters default os valores da política sejam aplicados corretamente, defina o apply_policy_default_values valor como true nas clusters configuraçõe s na configuração do pipeline:

    {
      "clusters": [
        {
          "label": "default",
          "policy_id": "<policy-id>",
          "apply_policy_default_values": true
        }
      ]
    }
    

Configurar bibliotecas de código-fonte

Você pode usar o seletor de arquivo na IU do Delta Live Tables para configurar o código-fonte que define seu pipeline. O código-fonte do pipeline é definido no Databricks Notebook ou em scripts SQL ou Python armazenados em arquivos workspace . Ao criar ou editar seu pipeline, você pode adicionar um ou mais arquivos Notebook ou workspace ou uma combinação de arquivos Notebook e workspace .

Como o Delta Live Tables analisa automaticamente as dependências dataset para construir o gráfico de processamento para seu pipeline, você pode adicionar bibliotecas de código-fonte em qualquer ordem.

O senhor também pode modificar o arquivo JSON para incluir o código-fonte Delta Live Tables definido em SQL e os scripts Python armazenados nos arquivos workspace. O exemplo a seguir inclui os arquivos Notebook e workspace:

{
  "name": "Example pipeline 3",
  "storage": "dbfs:/pipeline-examples/storage-location/example3",
  "libraries": [
    { "notebook": { "path": "/example-notebook_1" } },
    { "notebook": { "path": "/example-notebook_2" } },
    { "file": { "path": "/Workspace/Users/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.sql" } },
    { "file": { "path": "/Workspace/Users/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.py" } }
  ]
}

Especifique um local de armazenamento

Você pode especificar um local de armazenamento para um pipeline que publica no Hive metastore. A principal motivação para especificar um local é controlar o local de armazenamento de objetos para dados gravados pelo seu pipeline.

Como todas as tabelas, dados, pontos de verificação e metadados para os pipelines do Delta Live Tables são totalmente gerenciados pelo Delta Live Tables, a maior parte da interação com dataset do Delta Live Tables ocorre por meio de tabelas registradas no Hive metastore ou Unity Catalog.

Especifique um esquema de destino para tabelas de saída do pipeline

Embora opcional, você deve especificar um destino para publicar tabelas criadas por seu pipeline sempre que for além do desenvolvimento e teste de um novo pipeline. A publicação de um pipeline em um destino disponibiliza dataset para consulta em outro lugar em seu ambiente Databricks. Consulte Publicar dados de pipelines Delta Live Tables no Hive metastore ou Usar Unity Catalog com seus pipelines Delta Live Tables.

Defina suas configurações de computação

Observação

Como os recursos do compute são totalmente gerenciados para o pipeline do serverless, as configurações do compute não estão disponíveis quando o senhor seleciona serverless (Public Preview) para um pipeline.

Cada pipeline Delta Live Tables tem dois clusters associados:

  • Os clusters updates processam atualizações de pipeline.

  • Os maintenance clusters executam tarefas de manutenção diária.

A configuração usada por esses clusters é determinada pelo atributo clusters especificado nas configurações do pipeline.

Você pode adicionar configurações compute que se aplicam apenas a um tipo específico de clusters usando rótulos clusters . Existem três rótulos que você pode usar ao configurar clusters de pipeline:

Observação

A configuração do rótulo clusters poderá ser omitida se você estiver definindo apenas uma configuração clusters . O rótulo default será aplicado às configurações clusters se nenhuma configuração para o rótulo for fornecida. A configuração do rótulo clusters será necessária somente se você precisar customizar configurações para diferentes tipos clusters .

  • O rótulo default define configurações compute a serem aplicadas aos clusters updates e maintenance. Aplicar as mesmas configurações a ambos os clusters melhora a confiabilidade da execução de manutenção, garantindo que as configurações necessárias, por exemplo, credenciais de acesso a dados para um local de armazenamento, sejam aplicadas ao cluster de manutenção.

  • O rótulo maintenance define configurações compute a serem aplicadas somente aos clusters maintenance . Você também pode usar o rótulo maintenance para substituir as configurações definidas pelo rótulo default .

  • O rótulo updates define configurações a serem aplicadas somente aos clusters updates . Use o rótulo updates para definir configurações que não devem ser aplicadas aos clusters maintenance .

As configurações definidas usando os rótulos default e updates são merge para criar a configuração final para os clusters updates . Se a mesma configuração for definida usando os rótulos default e updates , a configuração definida com o rótulo updates substituirá a configuração definida com o rótulo default .

O exemplo a seguir define um parâmetro de configuração do Spark que é adicionado apenas à configuração dos clusters updates:

{
  "clusters": [
    {
      "label": "default",
      "autoscale": {
        "min_workers": 1,
        "max_workers": 5,
        "mode": "ENHANCED"
      }
    },
    {
      "label": "updates",
      "spark_conf": {
         "key": "value"
      }
    }
  ]
}

Delta Live Tables fornece opções semelhantes para configurações clusters como outras compute em Databricks. Assim como outras configurações de pipeline, você pode modificar a configuração JSON dos clusters para especificar opções não presentes na IU. Consulte Computação.

Observação

  • Como o tempo de execução Delta Live Tables gerencia o ciclo de vida dos clusters de pipeline e executa uma versão personalizada do Databricks Runtime, você não pode definir manualmente algumas configurações de cluster em uma configuração de pipeline, como a versão Spark ou nomes de cluster. Consulte os atributosclusters que não são configuráveis pelo usuário.

  • Você pode configurar pipeline Delta Live Tables para aproveitar o Photon. Veja O que é Photon?.

Selecione os tipos de instância para executar um pipeline

Por default, o Delta Live Tables seleciona os tipos de instância para os nós de driver e worker que executam seu pipeline, mas você também pode configurar manualmente os tipos de instância. Por exemplo, talvez você queira selecionar tipos de instância para melhorar o desempenho do pipeline ou resolver problemas de memória ao executar o pipeline. Você pode configurar tipos de instância ao criar ou editar um pipeline com a API REST ou na IU do Delta Live Tables.

Para configurar tipos de instância ao criar ou editar um pipeline na IU do Delta Live Tables:

  1. Clique no botão Configurações .

  2. Na seção Advanced das configurações do pipeline, nos menus suspensos worker type e Driver type, selecione os tipos de instância para o pipeline.

Para configurar os tipos de instância nas configurações JSON do pipeline, clique no botão JSON e insira as configurações do tipo de instância na configuração do cluster:

Observação

Para evitar atribuir recursos desnecessários aos clusters maintenance, este exemplo usa o rótulo updates para definir os tipos de instância apenas para os clusters updates. Para atribuir os tipos de instância aos clusters updates e maintenance , use o rótulo default ou omita a configuração do rótulo. O rótulo default será aplicado às configurações clusters de pipeline se nenhuma configuração para o rótulo for fornecida. Consulte Definir suas configurações compute .

{
  "clusters": [
    {
      "label": "updates",
      "node_type_id": "r6i.xlarge",
      "driver_node_type_id": "i3.large",
      "..." : "..."
    }
  ]
}

Use autoscale para aumentar a eficiência e reduzir o uso de recursos

Use o Enhanced autoscale para otimizar a utilização do cluster do seu pipeline. A autoescala aprimorada adiciona recursos adicionais somente se o sistema determinar que esses recursos aumentarão a velocidade de processamento do site pipeline. Os recursos são liberados quando não são mais necessários e o site clusters é encerrado assim que todas as atualizações do pipeline são concluídas.

Para saber mais sobre o Enhanced autoscale, incluindo detalhes de configuração, consulte Otimizar a utilização do cluster do pipeline Delta Live Tables com o Enhanced autoscale.

Atrasar o desligamento da computação

Como os clusters Delta Live Tables são desligados automaticamente quando não estão em uso, fazer referência a uma política clusters que define autotermination_minutes em sua configuração clusters resulta em um erro. Para controlar o comportamento de desligamento clusters , você pode usar o modo de desenvolvimento ou produção ou usar a configuração pipelines.clusterShutdown.delay na configuração do pipeline. O exemplo a seguir define o valor pipelines.clusterShutdown.delay para 60 segundos:

{
    "configuration": {
      "pipelines.clusterShutdown.delay": "60s"
    }
}

Quando o modo production está ativado, o valor default para pipelines.clusterShutdown.delay é 0 seconds. Quando o modo development está ativado, o valor default é 2 hours.

Criar clustersde um único nó

Se o senhor definir num_workers como 0 nas configurações de clusters, os clusters serão criados como clusters de nó único. A configuração de um cluster de autoescala e a definição de min_workers como 0 e max_workers como 0 também cria um cluster de nó único.

Se você configurar clusters autoscale e definir apenas min_workers como 0, os clusters não serão criados como clusters de nó único. Os clusters têm pelo menos um worker ativo em todos os momentos até serem encerrados.

Um exemplo de configuração clusters para criar clusters de nó único em Delta Live Tables:

{
    "clusters": [
      {
        "num_workers": 0
      }
    ]
}

Configurar Cluster Tag

Você pode usar Cluster Tag para monitorar o uso de seus clusters de pipeline. Adicione Cluster Tag na UI do Delta Live Tables ao criar ou editar um pipeline ou editando as configurações JSON para seus clusters de pipeline.

Configuração de armazenamento em nuvem

O senhor usa o perfil da instância AWS para configurar o acesso ao armazenamentoS3 em AWS. Para adicionar um instance profile na interface do usuário Delta Live Tables quando o senhor criar ou editar um pipeline:

  1. Na página de detalhes dopipeline para seu pipeline, clique no botão Settings (Configurações ).

  2. No menu suspenso instance profile menu suspenso Na seção compute das configurações de pipeline, selecione um instance profile.

Para configurar um AWS instance profile editando as configurações do JSON para o seu pipeline clusters, clique no botão JSON e insira a configuração instance profile no campo aws_attributes.instance_profile_arn da configuração cluster:

{
  "clusters": [
    {
      "aws_attributes": {
        "instance_profile_arn": "arn:aws:..."
      }
    }
  ]
}

Você também pode configurar instance profile ao criar a política de clusters para seus pipelines Delta Live Tables. Para obter um exemplo, consulte a base de conhecimento.

Parametrizar pipelines

O código Python e SQL que define seu dataset pode ser parametrizado pelas configurações do pipeline. A parametrização permite os seguintes casos de uso:

  • Separando caminhos longos e outras variáveis de seu código.

  • Reduzindo a quantidade de dados processados em ambientes de desenvolvimento ou preparação para acelerar os testes.

  • Reutilizando a mesma lógica de transformação para processar a partir de múltiplas fontes de dados.

O exemplo a seguir usa o valor de configuração startDate para limitar o pipeline de desenvolvimento a um subconjunto dos dados de entrada:

CREATE OR REFRESH LIVE TABLE customer_events
AS SELECT * FROM sourceTable WHERE date > '${mypipeline.startDate}';
@dlt.table
def customer_events():
  start_date = spark.conf.get("mypipeline.startDate")
  return read("sourceTable").where(col("date") > start_date)
{
  "name": "Data Ingest - DEV",
  "configuration": {
    "mypipeline.startDate": "2021-01-02"
  }
}
{
  "name": "Data Ingest - PROD",
  "configuration": {
    "mypipeline.startDate": "2010-01-02"
  }
}

Intervalo de acionamento de pipelines

Você pode usar pipelines.trigger.interval para controlar o intervalo de acionamento de um fluxo que atualiza uma tabela ou um pipeline inteiro. Como um pipeline acionado processa cada tabela apenas uma vez, o pipelines.trigger.interval é usado apenas com pipelines contínuos.

Databricks recomenda definir pipelines.trigger.interval em tabelas individuais devido ao default diferente para transmissão versus query de lotes. Defina o valor em um pipeline somente quando o processamento exigir atualizações de controle para todo o gráfico do pipeline.

Você define pipelines.trigger.interval em uma tabela usando spark_conf em Python ou SET em SQL:

@dlt.table(
  spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
    return (<query>)
SET pipelines.trigger.interval=10 seconds;

CREATE OR REFRESH LIVE TABLE TABLE_NAME
AS SELECT ...

Para definir pipelines.trigger.interval em um pipeline, adicione-o ao objeto configuration nas configurações do pipeline:

{
  "configuration": {
    "pipelines.trigger.interval": "10 seconds"
  }
}

Permitir que usuários não administradores visualizem os logs do driver de um pipeline habilitado para o Unity Catalog

Por default, somente o proprietário do pipeline e os administradores do workspace têm permissão para view o driver logs do cluster que executa um pipeline habilitado para o Unity Catalog. O senhor pode habilitar o acesso aos logs de driver para qualquer usuário com permissões CAN MANAGE, CAN VIEW ou CAN RUN adicionando o seguinte parâmetro de configuração do Spark ao objeto configuration nas configurações do pipeline:

{
  "configuration": {
    "spark.databricks.acl.needAdminPermissionToViewLogs": "false"
  }
}

Adicionar notificações por email para eventos de pipeline

Você pode configurar um ou mais endereços email para receber notificações quando ocorrer o seguinte:

  • Uma atualização de pipeline é concluída com êxito.

  • Uma atualização de pipeline falha, com um erro repetível ou não repetível. Selecione esta opção para receber uma notificação sobre todas as falhas do pipeline.

  • Uma atualização de pipeline falha com um erro que não pode ser repetido (fatal). Selecione esta opção para receber uma notificação somente quando ocorrer um erro que não pode ser repetido.

  • Um único fluxo de dados falha.

Para configurar notificações por email ao criar ou editar um pipeline:

  1. Clique em Adicionar notificação.

  2. Insira um ou mais endereços email para receber notificações.

  3. Clique na caixa de seleção de cada tipo de notificação para enviar aos endereços email configurados.

  4. Clique em Adicionar notificação.

Controlar o gerenciamento de marca para exclusão para querySCD tipo 1

As configurações a seguir podem ser usadas para controlar o comportamento do gerenciamento de marca para exclusão para eventos DELETE durante o processamento do SCD tipo 1:

  • pipelines.applyChanges.tombstoneGCThresholdInSeconds: defina esse valor para corresponder ao maior intervalo esperado, em segundos, entre dados fora de ordem. O default é 172.800 segundos (2 dias).

  • pipelines.applyChanges.tombstoneGCFrequencyInSeconds: esta configuração controla a frequência, em segundos, com que as marcas para exclusão são verificadas para limpeza. O default é 1.800 segundos (30 minutos).

Consulte Captura simplificada de dados de alterações (CDC) com a API APPLY CHANGES em Delta Live Tables.

Configurar permissões de pipeline

O senhor deve ter a permissão CAN MANAGE ou IS OWNER no pipeline para poder gerenciar as permissões nele.

  1. Na barra lateral, clique em Delta Live Tables.

  2. Selecione o nome de um pipeline.

  3. Clique no menu kebab Reticências verticais e selecione Permissions (Permissões).

  4. Em Permissions Settings (Configurações de permissões), selecione o menu suspenso Select User, Group or entidade de serviço e, em seguida, selecione um usuário, grupo ou entidade de serviço.

    Caixa de diálogo Permissions Settings (Configurações de permissões)
  5. Selecione uma permissão no menu suspenso de permissões.

  6. Clique em Adicionar.

  7. Clique em Salvar.

Habilitar RocksDB armazenamento do estado para Delta Live Tables

O senhor pode ativar o gerenciamento de estado baseado em RocksDBdefinindo a seguinte configuração antes de implantar um pipeline:

{
  "configuration": {
     "spark.sql.streaming.stateStore.providerClass": "com.databricks.sql.streaming.state.RocksDBStateStoreProvider"
  }
}

Para saber mais sobre o RocksDB armazenamento do estado, incluindo recomendações de configuração para RocksDB, consulte Configure RocksDB armazenamento do estado em Databricks.