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 definir e editar configurações de pipeline. A interface do usuário também fornece uma opção para exibir e editar configurações em JSON.
Nota
Você pode definir a maioria das configurações com a interface do usuário ou uma especificação JSON. Algumas opções avançadas só estão disponíveis usando a configuração JSON.
O Databricks recomenda familiarizar-se com as configurações do Delta Live Tables usando a interface do usuário. Se necessário, você pode editar diretamente a configuração JSON no espaço de trabalho. Os arquivos de configuração JSON também são úteis ao implantar pipelines 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 do pipeline do Delta Live Tables.
Nota
Como os recursos de computação são totalmente gerenciados para pipelines sem servidor, as configurações de computação, como Enhanced Autoscaling, políticas de cluster, tipos de instância e tags de cluster, não estão disponíveis quando você seleciona Serverless (Public Preview) para um pipeline.
Você ainda pode passar parâmetros de configuração para um pipeline sem servidor, mas qualquer parâmetro definido em um clusters
objeto na configuração JSON é ignorado.
Para saber mais sobre como habilitar pipelines de DLT sem servidor, entre em contato com sua equipe de conta do Azure Databricks.
Escolha uma edição do produto
Selecione a edição do produto Delta Live Tables com os recursos mais adequados aos seus requisitos de pipeline. Estão disponíveis as seguintes edições do produto:
Core
para executar cargas de trabalho de ingestão de streaming. Selecione aCore
edição se o pipeline não exigir recursos avançados, como captura de dados de alteração (CDC) ou expectativas do Delta Live Tables.Pro
para executar cargas de trabalho de streaming e CDC. APro
edição do produto suporta todos osCore
recursos, além de suporte para cargas de trabalho que exigem a atualização de tabelas com base em alterações nos dados de origem.Advanced
para executar cargas de trabalho de ingestão de streaming, cargas de trabalho CDC e cargas de trabalho que exigem expectativas. AAdvanced
edição do produto suporta os recursos das edições ePro
também suporta a imposição de restrições de qualidade de dados com asCore
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. Consulte a página do produto Delta Live Tables.
Nota
Se o pipeline incluir recursos não suportados pela edição do produto selecionada, por exemplo, expectativas, você receberá uma mensagem de erro com o motivo do erro. Em seguida, você pode 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 contínua vs. acionada de pipeline.
Selecionar uma política de cluster
Os usuários devem ter permissões para implantar a computação para configurar e atualizar os pipelines do Delta Live Tables. Os administradores de espaço de trabalho podem configurar políticas de cluster para fornecer aos usuários acesso a recursos de computação para Delta Live Tables. Consulte Definir limites na computação do pipeline Delta Live Tables.
Nota
As políticas de cluster são opcionais. Verifique com o administrador do espaço de trabalho se você não tem os privilégios de computação necessários para o Delta Live Tables.
Para garantir que os valores padrão da diretiva de cluster sejam aplicados corretamente, defina o
apply_policy_default_values
valor comotrue
nas configurações de cluster em sua configuração de 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 arquivos na interface do usuário do Delta Live Tables para configurar o código-fonte que define seu pipeline. O código-fonte do pipeline é definido em notebooks Databricks ou em scripts SQL ou Python armazenados em arquivos de espaço de trabalho. Ao criar ou editar seu pipeline, você pode adicionar um ou mais blocos de anotações ou arquivos de espaço de trabalho ou uma combinação de blocos de anotações e arquivos de espaço de trabalho.
Como o Delta Live Tables analisa automaticamente as dependências do conjunto de dados para construir o gráfico de processamento para seu pipeline, você pode adicionar bibliotecas de código-fonte em qualquer ordem.
Você também pode modificar o arquivo JSON para incluir o código-fonte Delta Live Tables definido em scripts SQL e Python armazenados em arquivos de espaço de trabalho. O exemplo a seguir inclui blocos de anotações e arquivos de espaço de trabalho:
{
"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" } }
]
}
Especificar um local de armazenamento
Você pode especificar um local de armazenamento para um pipeline que publica no metastore do Hive. 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 pipelines do Delta Live Tables são totalmente gerenciados pelo Delta Live Tables, a maior parte da interação com os conjuntos de dados do Delta Live Tables acontece por meio de tabelas registradas no metastore do Hive ou no Unity Catalog.
Especificar um esquema de destino para tabelas de saída de pipeline
Embora opcional, você deve especificar um destino para publicar tabelas criadas pelo seu pipeline sempre que for além do desenvolvimento e teste de um novo pipeline. A publicação de um pipeline em um destino torna os conjuntos de dados disponíveis para consulta em outro lugar em seu ambiente do Azure Databricks. Consulte Publicar dados do Delta Live Tables no metastore do Hive ou Usar o Unity Catalog com seus pipelines do Delta Live Tables.
Definir suas configurações de computação
Nota
Como os recursos de computação são totalmente gerenciados para pipelines sem servidor, as configurações de computação não estão disponíveis quando você seleciona Serverless (Public Preview) para um pipeline.
Cada pipeline Delta Live Tables tem dois clusters associados:
- O
updates
cluster processa atualizações de pipeline. - O
maintenance
cluster executa tarefas de manutenção diárias.
A configuração usada por esses clusters é determinada pelo atributo especificado nas configurações do clusters
pipeline.
Você pode adicionar configurações de computação que se aplicam apenas a um tipo específico de cluster usando rótulos de cluster. Há três rótulos que você pode usar ao configurar clusters de pipeline:
Nota
A configuração do rótulo do cluster pode ser omitida se você estiver definindo apenas uma configuração de cluster. O default
rótulo é aplicado às configurações de cluster se nenhuma configuração para o rótulo for fornecida. A configuração do rótulo do cluster é necessária somente se você precisar personalizar as configurações para diferentes tipos de cluster.
- O
default
rótulo define as configurações de computação a serem aplicadas aosupdates
clusters emaintenance
ao . A aplicação das mesmas configurações a ambos os clusters melhora a confiabilidade das execuções 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
maintenance
rótulo define as configurações de computação para aplicar somente aomaintenance
cluster. Você também pode usar omaintenance
rótulo para substituir as configurações definidas pelodefault
rótulo. - O
updates
rótulo define as configurações a serem aplicadas somente aoupdates
cluster. Use oupdates
rótulo para definir configurações que não devem ser aplicadas aomaintenance
cluster.
As configurações definidas usando os default
rótulos e updates
são mescladas para criar a configuração final para o updates
cluster. Se a mesma configuração for definida usando ambos os default
rótulos e updates
, a configuração definida com o updates
rótulo substituirá a configuração definida com o default
rótulo.
O exemplo a seguir define um parâmetro de configuração do Spark que é adicionado somente à configuração do updates
cluster:
{
"clusters": [
{
"label": "default",
"autoscale": {
"min_workers": 1,
"max_workers": 5,
"mode": "ENHANCED"
}
},
{
"label": "updates",
"spark_conf": {
"key": "value"
}
}
]
}
O Delta Live Tables fornece opções semelhantes para configurações de cluster como outras computações no Azure Databricks. Como outras configurações de pipeline, você pode modificar a configuração JSON para clusters para especificar opções não presentes na interface do usuário. Consulte Computação.
Nota
- Como o tempo de execução do Delta Live Tables gerencia o ciclo de vida dos clusters de pipeline e executa uma versão personalizada do Databricks Runtime, não é possível definir manualmente algumas configurações de cluster em uma configuração de pipeline, como a versão do Spark ou nomes de cluster. Consulte Atributos de cluster que não são configuráveis pelo usuário.
- Você pode configurar pipelines Delta Live Tables para aproveitar o Photon. Veja O que é Photon?.
Selecionar tipos de instância para executar um pipeline
Por padrão, o Delta Live Tables seleciona os tipos de instância para os nós de driver e de trabalho 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 interface do usuário Delta Live Tables.
Para configurar tipos de instância ao criar ou editar um pipeline na interface do usuário do Delta Live Tables:
- Clique no botão Configurações .
- Na seção Avançado das configurações do pipeline, nos menus suspensos Tipo de trabalhador e Tipo de driver, selecione os tipos de instância para o pipeline.
Para configurar tipos de instância nas configurações JSON do pipeline, clique no botão JSON e insira as configurações de tipo de instância na configuração do cluster:
Nota
Para evitar atribuir recursos desnecessários ao maintenance
cluster, este exemplo usa o updates
rótulo para definir os tipos de instância apenas para o updates
cluster. Para atribuir os tipos de instância a ambos e updates
maintenance
clusters, use o default
rótulo ou omita a configuração do rótulo. O default
rótulo é aplicado às configurações de cluster de pipeline se nenhuma configuração para o rótulo for fornecida. Consulte Definir suas configurações de computação.
{
"clusters": [
{
"label": "updates",
"node_type_id": "Standard_D12_v2",
"driver_node_type_id": "Standard_D3_v2",
"..." : "..."
}
]
}
Use o dimensionamento automático para aumentar a eficiência e reduzir o uso de recursos
Use o Autoscaling Avançado para otimizar a utilização de cluster de seus pipelines. O Autoscaling aprimorado adiciona recursos adicionais somente se o sistema determinar que esses recursos aumentarão a velocidade de processamento do pipeline. Os recursos são liberados quando não são mais necessários, e os clusters são desligados assim que todas as atualizações de pipeline são concluídas.
Para saber mais sobre o Enhanced Autoscaling, incluindo detalhes de configuração, consulte Otimizar a utilização de cluster de pipelines Delta Live Tables com Enhanced Autoscaling.
Atrasar o desligamento da computação
Como um cluster do Delta Live Tables é desligado automaticamente quando não está em uso, a referência a uma política de cluster definida autotermination_minutes
na sua configuração de cluster resulta num erro. Para controlar o comportamento de desligamento do cluster, você pode usar o modo de desenvolvimento ou produção ou usar a pipelines.clusterShutdown.delay
configuração na configuração do pipeline. O exemplo seguinte define o valor pipelines.clusterShutdown.delay
como 60 segundos:
{
"configuration": {
"pipelines.clusterShutdown.delay": "60s"
}
}
Quando o modo production
está ativado, o valor predefinido de pipelines.clusterShutdown.delay
é 0 seconds
. Quando o modo development
está ativado, o valor predefinido é 2 hours
.
Criar um cluster de nó único
Se você definir num_workers
como 0 nas configurações de cluster, o cluster será criado como um cluster de nó único. Configurar um cluster de dimensionamento automático e definir min_workers
como 0 e max_workers
como 0 também criará um cluster de Nó Único.
Se você configurar um cluster de dimensionamento automático e definir apenas min_workers
como 0, o cluster não será criado como um cluster de nó único. O cluster tem pelo menos um trabalhador ativo em todos os momentos até ser terminado.
Uma configuração de cluster de exemplo para criar um cluster de Nó Único em Tabelas Dinâmicas Delta:
{
"clusters": [
{
"num_workers": 0
}
]
}
Configurar tags de cluster
Pode utilizar« etiquetas de cluster para monitorizar a utilização dos clusters de pipeline. Adicione etiquetas de cluster na interface do utilizador do Delta Live Tables quando criar ou editar um pipeline ou editar as definições de JSON dos clusters de pipeline.
Configuração de armazenamento na nuvem
Para acessar o armazenamento do Azure, você deve configurar os parâmetros necessários, incluindo tokens de acesso, usando spark.conf
as configurações em suas configurações de cluster. Para obter um exemplo de configuração de acesso a uma conta de armazenamento do Azure Data Lake Storage Gen2 (ADLS Gen2), consulte Acessar credenciais de armazenamento com segurança com segredos em um pipeline.
Parametrizar pipelines
O código Python e SQL que define seus conjuntos de dados pode ser parametrizado pelas configurações do pipeline. A parametrização permite os seguintes casos de uso:
- Separar caminhos longos e outras variáveis do seu código.
- Reduzir a quantidade de dados processados em ambientes de desenvolvimento ou preparação para acelerar os testes.
- Reutilizar a mesma lógica de transformação para processar a partir de várias fontes de dados.
O exemplo a seguir usa o startDate
valor de configuração 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 gatilho de pipelines
Você pode usar pipelines.trigger.interval
para controlar o intervalo de gatilho para um fluxo atualizando 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.
O Databricks recomenda a configuração pipelines.trigger.interval
em tabelas individuais devido a diferentes padrões para streaming versus consultas em lote. Defina o valor em um pipeline somente quando o processamento exigir o controle de atualizações para todo o gráfico de 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 configuration
ao objeto nas configurações do pipeline:
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}
Permitir que usuários não administradores visualizem os logs de driver de um pipeline habilitado para Catálogo Unity
Por padrão, apenas o proprietário do pipeline e os administradores do espaço de trabalho têm permissão para exibir os logs de driver do cluster que executa um pipeline habilitado para Catálogo Unity. Você 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 configuration
objeto nas configurações de pipeline:
{
"configuration": {
"spark.databricks.acl.needAdminPermissionToViewLogs": "false"
}
}
Adicionar notificações por e-mail para eventos de pipeline
Você pode configurar um ou mais endereços de e-mail para receber notificações quando ocorrer o seguinte:
- Uma atualização de pipeline é concluída com êxito.
- Uma atualização de pipeline falha, seja com um erro retryable ou não retryable. Selecione esta opção para receber uma notificação para todas as falhas de pipeline.
- Uma atualização de pipeline falha com um erro não recorrível (fatal). Selecione esta opção para receber uma notificação somente quando ocorrer um erro não recorrível.
- Um único fluxo de dados falha.
Para configurar notificações por e-mail ao criar ou editar um pipeline:
- Clique em Adicionar notificação.
- Insira um ou mais endereços de e-mail para receber notificações.
- Clique na caixa de seleção para cada tipo de notificação a ser enviada para os endereços de e-mail configurados.
- Clique em Adicionar notificação.
Controlar o gerenciamento de lápides para consultas SCD tipo 1
As seguintes configurações podem ser usadas para controlar o comportamento do gerenciamento de marca de exclusão para DELETE
eventos 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 padrão é 172800 segundos (2 dias).pipelines.applyChanges.tombstoneGCFrequencyInSeconds
: Esta definição controla a frequência, em segundos, com que as lápides são verificadas para limpeza. O padrão é 1800 segundos (30 minutos).
Consulte APPLY CHANGES API: Simplifique a captura de dados de alteração no Delta Live Tables.
Configurar permissões de pipeline
Você deve ter a CAN MANAGE
permissão ou IS OWNER
no pipeline para gerenciar permissões nele.
Na barra lateral, clique em Delta Live Tables.
Selecione o nome de um pipeline.
Clique no menu kebab e selecione Permissões.
Em Configurações de Permissões, selecione o menu suspenso Selecionar Usuário, Grupo ou Entidade de Serviço... e selecione um usuário, grupo ou entidade de serviço.
Selecione uma permissão no menu suspenso de permissão.
Clique em Adicionar.
Clique em Guardar.
Ativar armazenamento de estado RocksDB para Delta Live Tables
Você pode habilitar o gerenciamento de estado baseado em RocksDB definindo 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 armazenamento de estado RocksDB, incluindo recomendações de configuração para RocksDB, consulte Configurar armazenamento de estado RocksDB no Azure Databricks.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários