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

Migre pipelines que usam o esquema virtual LIVE (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.

Verifique se o pipeline usa o modo de publicação herdado

Os pipelines no modo de publicação herdado são indicados pelas seguintes maneiras:

  • Campo Resumo da interface do usuário das configurações de pipeline do Lakeflow.
  • O log de eventos mais recente do pipeline Lakeflow create_update contém effective_publishing_mode.
  • A resposta da API GET /api/2.0/pipelines/{pipeline_id} de pipelines contém effectivePublishingMode

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:

  • Não há suporte para a migração para o modo de publicação padrão usando Pacotes de Automação Declarativa.
  • 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 LIVE esquema 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 obter detalhes, consulte Preparar 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.

  1. Clique em Trabalhos & Pipelines na barra lateral esquerda na sua área de trabalho.

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

  3. 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.

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

    O modo de publicação padrão geralmente é retrocompatível com o modo de publicação legado, mas certifique-se de preparar seu pipeline para a migração para que o código do pipeline seja executado corretamente após a atualização. A maioria dos pipelines não precisa de alterações.

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

  6. Inicie uma atualização manual e deixe a atualização ser concluída.

  7. 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.

  8. Se necessário, atualize o cronograma e habilite as atualizações do 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.

Preparar 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 utiliza o mesmo catálogo e esquema padrão da palavra-chave LIVE no modo de publicação legado, a menos que você adicione posteriormente os comandos USE CATALOG ou USE SCHEMA ao pipeline.

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 log 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 referência da linguagem Python para pipelines do Lakeflow

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 Preparar pipelines para migração.