Mover LakeFlow Tabelas de pipeline declarativas entre pipelines
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.
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.
-
Interrompa o pipeline de origem se ele estiver em execução. Espere que ele pare completamente.
-
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.
-
Em um Notebook ou em um editor SQL, execute o seguinte comando SQL para reatribuir a tabela da origem pipeline para o destino pipeline:
SQLALTER [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 IDabcd1234-ef56-ab78-cd90-1234efab5678
, o senhor executaria o seguinte comando:SQLALTER STREAMING TABLE sales
SET TBLPROPERTIES("pipelines.pipelineId"="abcd1234-ef56-ab78-cd90-1234efab5678"); -
Adicione a definição da tabela ao Notebook/file do site pipelinede destino.
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
etarget
nas configurações.