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 .
-
Clique em Trabalhos e pipeline na barra lateral esquerda do seu workspace.
-
Clique no nome do pipeline que você deseja migrar na lista.
-
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. -
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.
-
Adicione uma configuração no pipeline Configurações :
pipelines.enableDPMForExistingPipeline
, defina comotrue
. -
iniciar uma atualização manual e deixar a atualização ser concluída.
-
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. -
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.
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:
CREATE OR REPLACE MATERIALIZED VIEW target AS SELECT LIVE.source.id FROM LIVE.source;
precisaria ser substituído pelo seguinte, antes da migração:
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:
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 :
@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.
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 |
---|---|
| 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. |
| Este erro indica que você não executou uma atualização recente antes de adicionar a configuração |
| 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. |