Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como migrar pipelines que usam o LIVE esquema virtual (o modo de publicação herdado) para o modo de publicação padrão.
O modo de publicação padrão permite que um único pipeline escreva em vários catálogos e esquemas e inclui uma sintaxe simplificada para trabalhar com tabelas e visualizações no pipeline. O modo de publicação herdado é considerado preterido e o Databricks recomenda migrar todos os pipelines para o modo de publicação padrão.
A migração afeta os metadados do pipeline, mas não lê, move ou grava em nenhum conjunto de dados.
Como saber se o pipeline usa o modo de publicação herdado
Os pipelines do modo de publicação legado são indicados no campo Resumo na interface de configurações do Lakeflow Spark Declarative Pipelines.
Considerações para migrar para o modo de publicação padrão
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 padrão, ele não pode ser migrado de volta para o uso do
LIVEesquema virtual. - Talvez seja necessário preparar o pipeline para migração, resolvendo quaisquer alterações de sintaxe entre os modos de publicação legado e padrão. A maioria dos pipelines não exige alterações. Para mais detalhes, consulte Preparando pipelines para migração.
- A migração afeta apenas metadados. Ele não lê, move ou grava em nenhum conjunto de dados.
- No modo de publicação padrão, exibições materializadas e tabelas de streaming não podem ser movidas entre esquemas após a criação.
- O modo de publicação padrão requer a versão da CLI do Databricks v0.230.0 ou superior. Consulte Instalar ou atualizar a CLI do Databricks.
Migrar para o modo de publicação padrão
Use as etapas a seguir para migrar para o modo de publicação padrão.
Clique em Trabalhos &pipelines da barra lateral esquerda em seu workspace.
Clique no nome do pipeline que você deseja migrar na lista.
Pause as atualizações e permita que qualquer pipeline em execução pare no momento.
Pelo menos uma atualização deve ter sido executada nos últimos 60 dias antes de concluir a migração. Se o pipeline for disparado ou já estiver em pausa, execute manualmente uma única atualização. Se o pipeline for contínuo, verifique se ele chega ao estado
RUNNING(ou se já está nele) e então pause.Opcionalmente, prepare qualquer código que possa precisar ser migrado.
O modo de publicação padrão geralmente é compatível com versões anteriores do modo de publicação herdado, mas prepare corretamente seu pipeline para migração para que o código do pipeline seja executado corretamente quando atualizado. A maioria dos pipelines não precisa de alterações.
Adicione uma configuração nas Configurações do pipeline:
pipelines.enableDPMForExistingPipeline, defina comotrue.Inicie uma atualização manual e deixe a atualização ser concluída.
Opcionalmente, nas Configurações do pipeline, remova a configuração do pipeline para
pipelines.enableDPMForExistingPipeline. Essa 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 agendamento e habilite as atualizações de pipeline.
O modo de publicação padrão agora está habilitado no fluxo de trabalho. Se você vir problemas, use a próxima seção para ajudar a solucionar problemas. Se os problemas persistirem, entre em contato com o gerenciador de contas do Databricks.
Preparando pipelines para migração
O modo de publicação padrão é geralmente retrocompatível com o modo de publicação herdado, mas alguns pipelines podem precisar ser modificados para funcionarem. As notas a seguir podem ajudar você a preparar seus pipelines 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 os valores padrão do pipeline. O modo de publicação padrão não usa mais a LIVE palavra-chave para qualificar tabelas ou exibições. A LIVE palavra-chave é ignorada e substituída pelo catálogo e esquema padrão para o pipeline. Geralmente, isso usará o mesmo catálogo e esquema padrão que a palavra-chave LIVE no modo de publicação herdado, a menos que você adicione os comandos USE CATALOG ou USE SCHEMA ao pipeline mais tarde.
No modo de publicação legado, as referências de tabela e exibição parcialmente qualificadas sem a palavra-chave LIVE (como table1) usam os valores padrões do Spark. No modo de publicação padrão, referências parcialmente qualificadas usam as configurações padrão do pipeline. Se os padrões do Spark e os pipelines forem diferentes, você deverá especificar completamente o nome de qualquer tabela ou exibição parcialmente qualificada antes de migrar.
Observação
Após a migração, você pode remover a LIVE palavra-chave do código. Opcionalmente, você pode substituir a LIVE palavra-chave por nomes de tabela ou exibição totalmente qualificados.
Referências de coluna com a LIVE palavra-chave
Você não pode usar a LIVE palavra-chave para definir colunas no modo de publicação padrão. 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 pipeline altera o nome do conjunto de dados do evento flow_progress no registro de eventos. Se você tiver consultas no log de eventos desse pipeline, talvez seja necessário atualizar sua consulta.
No modo de publicação legado, o nome do conjunto de dados é table. No modo de publicação padrão, o nome do conjunto de dados é o nome totalmente qualificado catalog.schema.table .
Para obter detalhes sobre como usar o log de eventos, consulte o log de eventos do Pipeline.
Avisos versus erros
Alguns avisos no modo de publicação herdado foram substituídos por erros no modo de publicação padrão.
Auto-referências Uma auto-referência (ou referência circular) não é permitida no modo de publicação padrão (e teve resultados indefinidos no modo de publicação herdado). Por exemplo:
CREATE OR REPLACE MATERIALIZED VIEW table1 AS SELECT * FROM target_catalog.target_schema.table1;
geraria um aviso no modo de publicação herdado (e teria resultados indefinidos). No modo de publicação padrão, ele gera um erro.
Nomes de várias partes Você não pode usar períodos em nomes no modo de publicação padrão (nomes de várias partes). Por exemplo, o seguinte código Python é válido no modo herdado, mas não no modo padrão:
@dlt.view(name=”a.b.c”)
def transform():
return …
Antes de migrar, renomeie a tabela para um nome que não inclua um caractere de ponto.
Observação
Este exemplo também usa sintaxe mais antiga. @dlt.view Databricks recomenda o uso de @dp.temporary_view() para pipelines. Para obter mais informações, consulte a referência da linguagem Python do Lakeflow Spark Declarative Pipelines
Resolução de problemas
A tabela a seguir descreve erros que podem ocorrer ao migrar do modo de publicação herdado.
| Erro | Description |
|---|---|
CANNOT_MIGRATE_HMS_PIPELINE |
A migração não tem suporte para pipelines do metastore do Hive. Como alternativa, você pode clonar o pipeline do metastore do Hive para o Catálogo do Unity antes da migração. Veja Crie um pipeline do Unity Catalog clonando um pipeline do metastore do Hive. |
MISSING_EXPECTED_PROPERTY |
Esse erro indica que você não executou uma atualização recente antes de adicionar a pipelines.enableDPMForExistingPipeline configuração. Remova essa configuração e, se ela estiver ausente, adicione a pipelines.setMigrationHints configuração, defina como true. Execute uma atualização e continue na etapa 3. |
PIPELINE_INCOMPATIBLE_WITH_DPM |
Esse erro indica que o código do pipeline não é totalmente compatível com o modo de publicação padrão. Consulte Preparando pipelines para migração. |