Definir configurações de pipeline para Delta Live Tables

Este artigo contém detalhes sobre a configuração das definições de pipeline para Delta Live Tables. O Delta Live Tables tem uma interface de usuário para configurar e editar as definições do pipeline. A interface do usuário também tem 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 do JSON no site workspace. JSON Os arquivos de configuração também são úteis ao implantar o pipeline em novos ambientes ou ao usar o CLI ou o REST API.

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

Escolha uma edição do produto

Selecione a edição do produto Delta Live Tables com o melhor recurso para suas necessidades 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.

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

Observação: Se o site pipeline incluir recursos não compatíveis com a edição do produto selecionada, como expectativas, o senhor receberá uma mensagem de erro explicando o motivo do erro. O senhor 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ão para implantar o compute para configurar e atualizar o pipeline Delta Live Tables. workspace Os administradores podem configurar a política de cluster para fornecer aos usuários acesso a compute recurso para Delta Live Tables. Consulte Definir limites em Delta Live Tables pipeline compute .

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

O senhor pode usar o seletor de arquivos na UI do Delta Live Tables para configurar o código-fonte que define seu pipeline. pipeline O código-fonte é definido no Databricks Notebook ou nos scripts SQL ou Python armazenados nos arquivos workspace. Ao criar ou editar o site pipeline, o senhor 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 seja opcional, o senhor deve especificar um destino para publicar tabelas criadas pelo seu pipeline sempre que for além do desenvolvimento e do teste de um novo pipeline. Publicar um pipeline em um destino torna o conjunto de dados disponível para consulta em qualquer lugar do seu ambiente Databricks. Consulte Publicar dados de Delta Live Tables para Hive metastore ou Usar Unity Catalog com seu pipeline Delta Live Tables .

Defina suas configurações de computação

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.

O senhor pode adicionar compute configurações que se aplicam somente a um tipo cluster específico usando cluster rótulo. Há três rótulos que o senhor pode usar ao configurar o site pipeline clusters:

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 compute configurações a serem aplicadas a updates e maintenance clusters. A aplicação das mesmas configurações em ambos os sites clusters aumenta a confiabilidade da execução da manutenção, garantindo que as configurações necessárias, como as credenciais de acesso aos dados de um local de armazenamento, sejam aplicadas à manutenção cluster.

  • O rótulo maintenance define as configurações do compute que se aplicam somente ao maintenance cluster. O senhor 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 que se aplicam apenas ao cluster updates. Use o rótulo updates para definir configurações que não devem ser aplicadas ao cluster 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 O senhor tem opções semelhantes para as configurações do cluster como outros compute no Databricks. Como outras configurações de pipeline, o senhor pode modificar a configuração JSON dos clusters para especificar opções não presentes na interface do usuário. 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": "n1-highmem-16",
      "driver_node_type_id": "n1-standard-4",
      "..." : "..."
    }
  ]
}

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

Para acessar um bucket no Google Cloud Storage (GCS), você deve criar uma account de serviço com acesso a esse bucket do GCS e adicionar essa account de serviço às configurações clusters . Para obter mais informações sobre como criar uma do clouds serviço Google account,consulte Conectar-se ao Google Storage clouds . Você pode adicionar a configuração account de serviço ao criar ou editar um pipeline com a API Delta Live Tables ou na IU do Delta Live Tables:

  1. Na página de detalhes do pipeline do seu pipeline, clique no botão Configurações . A página de configurações do pipeline é exibida.

  2. Clique no botão JSON .

  3. Insira a configuração account serviço no campo gcp_attributes.google_service_account na configuração clusters :

{
  "clusters": [
    {
      "gcp_attributes": {
        "google_service_account": "test-gcs-doc@databricks-dev.iam.gserviceaccount.com"
      }
    }
  ]
}

Parametrizar declarações de conjuntos de dados em Python ou SQL

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 MATERIALIZED VIEW 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 MATERIALIZED VIEW 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 do 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 APLICAR ALTERAÇÕES em API: Simplificar a captura de dados de alterações (CDC) 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 Menu Kebab 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.