Pular para o conteúdo principal

Mover LakeFlow Tabelas de pipeline declarativas entre pipelines

nota

Esse recurso está em Public Preview e, no momento, só está disponível para os clientes participantes. Se o senhor quiser participar da visualização desse recurso, entre em contato com o gerente do Databricks account para habilitá-lo para o seu workspace.

Este artigo descreve como mover tabelas de transmissão e visualizações materializadas entre pipelines. O novo pipeline atualizará a tabela, e não a tabela de origem. Isso é útil em muitos cenários, incluindo:

  • Dividir um pipeline grande em pipelines menores.
  • mesclar vários pipelines em um único pipeline maior.
  • Altere a frequência do refresh para algumas tabelas em um pipeline.
  • Mover tabelas do esquema LIVE legado para o novo modo de publicação default. Consulte esquema LIVE (legado).

Requisitos

Os pré-requisitos a seguir são para mover uma tabela entre pipelines.

  • O senhor deve usar o Databricks Runtime 16.3 ou o acima ao executar o comando ALTER TABLE necessário.

  • Tanto o pipeline de origem quanto o de destino devem ser:

    • Unity Catalog pipeline (não há suporte para o pipelineHive metastore )
    • No mesmo workspace
    • De propriedade do usuário Databricks account ou da entidade de serviço que executa as operações
  • O senhor deve executar o endereço de destino pipeline pelo menos uma vez antes de mover a tabela.

  • O senhor deve ter configurado o destino pipeline para usar o modo de publicação default. Isso permite que você publique tabelas em vários catálogos e esquemas. Caso contrário, ambos os pipelines devem estar usando o modo de publicação herdado e ambos devem ter o mesmo catálogo e valor de destino nas configurações.

nota

Este recurso não suporta a movimentação de um pipeline usando o modo de publicação default para um pipeline usando o modo de publicação legado.

Mover uma tabela entre pipelines

As instruções a seguir descrevem como mover uma tabela de transmissão ou materializada view de um pipeline para outro.

  1. Interrompa o pipeline de origem se ele estiver em execução. Espere que ele pare completamente.

  2. Remova a definição da tabela do Notebook ou arquivo de origem pipelinee armazene-a em algum lugar para referência futura.

    Inclua qualquer consulta ou código de suporte necessário para que o site pipeline seja executado corretamente.

  3. Em um Notebook ou em um editor SQL, execute o seguinte comando SQL para reatribuir a tabela da origem pipeline para o destino pipeline:

    SQL
    ALTER [MATERIALIZED VIEW | STREAMING TABLE] <table-name>
    SET TBLPROPERTIES("pipelines.pipelineId"="<destination-pipeline-id>");

    Por exemplo, se quiser mover uma tabela de transmissão chamada sales para uma pipeline com o ID abcd1234-ef56-ab78-cd90-1234efab5678, o senhor executaria o seguinte comando:

    SQL
    ALTER STREAMING TABLE sales
    SET TBLPROPERTIES("pipelines.pipelineId"="abcd1234-ef56-ab78-cd90-1234efab5678");
  4. Adicione a definição da tabela ao Notebook/file do site pipelinede destino.

nota

Se o catálogo ou o esquema de destino diferirem entre a origem e o destino, copiar a consulta com exatidão pode não funcionar. Tabelas parcialmente qualificadas na definição podem ser resolvidas de forma diferente. Talvez seja necessário atualizar a definição durante a movimentação.

A mudança está completa. Agora o senhor pode executar o pipeline de origem e de destino. O pipeline de destino envia a tabela por udp.

Solução de problemas

A tabela a seguir descreve os erros que podem ocorrer ao mover uma tabela entre pipelines.

Erro

Descrição

DESTINATION_PIPELINE_NOT_IN_DIRECT_PUBLISHING_MODE

A origem pipeline está no modo de publicação default e o destino usa o modo de esquema LIVE (legado). Isso não é suportado. Se a origem usar o modo de publicação default, o destino também deverá usar.

CHANGE_PIPELINE_ID_OF_TABLE_NOT_SUPPORTED

Este recurso está em uma visualização pública e pode não estar habilitado para o seu workspace. Entre em contato com o gerente do Databricks account para habilitá-lo para o seu workspace.

TYPE_PIPELINE_NOT_WORKSPACE_PIPELINE_TYPE

Somente a movimentação de tabelas entre o pipeline ETL é suportada. não há suporte para o pipeline de tabelas de transmissão e visualizações materializadas criadas com Databricks SQL.

A tabela não é atualizada no destino após a mudança.

Para atenuar rapidamente esse caso, mova a tabela de volta para o pipeline de origem seguindo as mesmas instruções. Em seguida, o senhor pode solucionar o problema ou levá-lo ao gerente do site account.

Limitações

A seguir, as limitações para mover tabelas entre pipelines.

  • Não há suporte para tabelas de visualização materializada e transmissão criadas com Databricks SQL.
  • Não há suporte para tabelas ou visualizações privadas.
  • Os pipelines de origem e destino devem ser Unity Catalog gerenciar pipeline. Hive metastore não são suportados.
  • Tanto o pipeline de origem quanto o de destino devem estar no mesmo site workspace.
  • Tanto o pipeline de origem quanto o de destino devem ser de propriedade do usuário que está executando as operações de movimentação.
  • Se a fonte pipeline usar o modo de publicação default, o destino pipeline também deverá estar usando o modo de publicação default. O senhor não pode mover uma tabela de um pipeline usando o modo de publicação default para um pipeline que usa o esquema LIVE (legado). Consulte esquema LIVE (legado).
  • Se o pipeline de origem e o de destino estiverem usando o esquema LIVE (legado), eles deverão ter os mesmos valores catalog e target nas configurações.