Pular para o conteúdo principal

Habilitar o modo de publicação default em um pipeline

Este artigo descreve como migrar o pipeline que usa o esquema virtual LIVE (o modo de publicação legado) para o modo de publicação default .

O modo de publicação default permite que um único pipeline grave em vários catálogos e esquemas e inclui uma sintaxe simplificada para trabalhar com tabelas e visualizações dentro do pipeline. O modo de publicação legado é considerado obsoleto, e Databricks recomenda migrar todo o pipeline para o modo de publicação default .

A migração afeta os metadados do pipeline, mas não lê, move ou grava em nenhum conjunto de dados.

Como saber se seu pipeline usa o modo de publicação legado

O pipeline do modo de publicação legado é indicado no campo Resumo da interface do usuário de configurações do pipeline declarativo LakeFlow . Você também pode confirmar se um pipeline usa o modo de publicação legado se o campo target estiver definido na especificação JSON do pipeline.

Considerações para migrar para o modo de publicação default

As seguintes notas são úteis para ter em mente durante a migração:

  • Depois que um pipeline é migrado para o modo de publicação default , ele não pode ser migrado de volta para usar o esquema virtual LIVE .
  • Talvez seja necessário preparar seu pipeline para migração abordando quaisquer alterações de sintaxe entre os modos de publicação legado e default . A maioria dos pipelines não requer alterações. Para obter detalhes, consulte Preparando o pipeline para migração.
  • A migração afeta apenas os metadados. Ele não lê, move ou grava em nenhum conjunto de dados.
  • No modo de publicação default , as tabelas de exibição materializada e transmissão não podem ser movidas entre esquemas depois de serem criadas.
  • O modo de publicação default requer a versão v0.230.0 ou superior Databricks CLI . Consulte Instalar ou atualizar o Databricks CLI.

Migrar para o modo de publicação default

Use os seguintes passos para migrar para o modo de publicação default .

  1. Clique em Trabalhos e pipeline na barra lateral esquerda do seu workspace.

  2. Clique no nome do pipeline que você deseja migrar na lista.

  3. atualizações de pausa e deixar qualquer pipeline em execução parar.

    Pelo menos uma atualização deve ter sido executada nos últimos 60 dias antes da conclusão da migração. Se o pipeline for acionado, ou já estiver pausado, execute manualmente uma única atualização. Se o pipeline for contínuo, certifique-se de que ele chegue (ou já esteja) no estado RUNNING e, em seguida, faça uma pausa.

  4. Opcionalmente, prepare qualquer código que precise ser migrado.

    O modo de publicação default geralmente é compatível com versões anteriores do modo de publicação legado, mas certifique-se de preparar adequadamente seu pipeline para migração para que seu código pipeline seja executado corretamente quando atualizado. A maioria dos pipelines não precisa de alterações.

  5. Adicione uma configuração no pipeline Configurações : pipelines.enableDPMForExistingPipeline, defina como true.

  6. iniciar uma atualização manual e deixar a atualização ser concluída.

  7. Opcionalmente, nas Configurações do pipeline, remova a configuração do pipeline para pipelines.enableDPMForExistingPipeline. Esta configuração é usada para a migração e não é necessária após a conclusão da migração.

  8. Se necessário, atualize o programa e habilite as atualizações pipeline .

O modo de publicação default agora está habilitado no pipeline. Se você encontrar problemas, use a próxima seção para ajudar a solucioná-los. Se os problemas persistirem, entre em contato com seu gerente account Databricks .

Preparando o pipeline para migração

O modo de publicação default geralmente é compatível com versões anteriores do modo de publicação legado, mas alguns pipelines podem precisar ser modificados para execução. As notas a seguir podem ajudar você a preparar seu pipeline para migração.

A palavra-chave LIVE

A palavra-chave LIVE no modo de publicação legado qualifica o catálogo e o esquema do objeto com o pipeline padrão. O modo de publicação default não usa mais a palavra-chave LIVE para qualificar tabelas ou visualizações. A palavra-chave LIVE é ignorada e substituída pelo catálogo e esquema default do pipeline. Geralmente, isso usará o mesmo catálogo e esquema default que a palavra-chave LIVE no modo de publicação legado, a menos que você adicione posteriormente o comando USE CATALOG ou USE SCHEMA ao seu pipeline.

No modo de publicação legado, referências de tabela e view parcialmente qualificadas sem a palavra-chave LIVE (como table1) usam o padrão Spark . No modo de publicação default , referências parcialmente qualificadas usam o pipeline padrão. Se o padrão e o pipeline Spark forem diferentes, você deverá qualificar completamente o nome de qualquer tabela ou view parcialmente qualificada antes de migrar.

nota

Após a migração, você pode remover a palavra-chave LIVE do seu código. Opcionalmente, você pode substituir a palavra-chave LIVE por nomes de tabela ou view totalmente qualificados.

Referências de coluna com a palavra-chave LIVE

Você não pode usar a palavra-chave LIVE para definir colunas no modo de publicação default . Por exemplo, este código:

SQL
CREATE OR REPLACE MATERIALIZED VIEW target AS SELECT LIVE.source.id FROM LIVE.source;

precisaria ser substituído pelo seguinte, antes da migração:

SQL
CREATE OR REPLACE MATERIALIZED VIEW target AS SELECT source.id FROM LIVE.source;

Esta versão funciona em qualquer modo de publicação.

Alterações no evento flow_progress

A migração do seu pipeline altera o nome dataset para o evento flow_progress no log de eventos. Se você tiver dúvidas sobre o log de eventos deste pipeline, talvez seja necessário atualizar sua consulta.

No modo de publicação legado, o nome dataset é o nome table . No modo de publicação default , o nome dataset é o nome totalmente qualificado catalog.schema.table .

Para obter detalhes sobre como usar o log de eventos, consulte logde eventos do pipeline declarativoLakeFlow.

Avisos vs erros

Alguns avisos no modo de publicação legado foram substituídos por erros no modo de publicação default .

Auto-referências Uma auto-referência (ou referência circular) não é permitida no modo de publicação default (e tinha resultados indefinidos no modo de publicação legado). Por exemplo:

SQL
CREATE OR REPLACE MATERIALIZED VIEW table1 AS SELECT * FROM target_catalog.target_schema.table1;

geraria um aviso no modo de publicação legado (e teria resultados indefinidos). No modo de publicação default , ele gera um erro.

Nomes multipartes Não é possível usar pontos em nomes no modo de publicação default (nomes multipartes). Por exemplo, o seguinte código Python é válido no modo legado, mas não no modo default :

Python
@dlt.view(name=”a.b.c”)
def transform():
return

Antes de migrar, renomeie a tabela para um nome que não inclua o caractere ponto.

nota

Este exemplo também usa uma sintaxe mais antiga, @dlt.view. Databricks recomenda usar @dp.temporary_view() para pipeline. Para obter mais informações, consulte Referência da linguagem Python do pipeline declarativoLakeFlow

Solução de problemas

A tabela a seguir descreve erros que podem ocorrer ao migrar do modo de publicação legado.

Erro

Descrição

CANNOT_MIGRATE_HMS_PIPELINE

A migração não é suportada para o pipeline Hive metastore . Como alternativa, você pode clonar o pipeline do Hive metastore para o Unity Catalog antes da migração. Consulte Criar um pipeline Unity Catalog clonando um pipelinedo Hive metastore.

MISSING_EXPECTED_PROPERTY

Este erro indica que você não executou uma atualização recente antes de adicionar a configuração pipelines.enableDPMForExistingPipeline . Remova essa configuração e, se estiver faltando, adicione a configuração pipelines.setMigrationHints , definida como true. executar uma atualização e continuar a partir da etapa 3.

PIPELINE_INCOMPATIBLE_WITH_DPM

Este erro indica que o código do seu pipeline não é totalmente compatível com o modo de publicação default . Consulte Preparando o pipeline para migração.