Pular para o conteúdo principal

Esquema LIVE (legado)

Este artigo fornece uma visão geral da sintaxe e do comportamento legados do esquema virtual LIVE .

O esquema virtual LIVE é um recurso legado do pipeline declarativo LakeFlow e é considerado obsoleto. Você ainda pode usar o modo de publicação legado e o esquema virtual LIVE para pipeline que foram criados com este modo.

Databricks recomenda migrar todo o pipeline para o novo modo de publicação. Você tem duas opções para migração:

Ambos os métodos são migrações unidirecionais. Não é possível migrar tabelas de volta para o modo legado.

O suporte para o esquema virtual legado LIVE e o modo de publicação legado serão removidos em uma versão futura do Databricks.

nota

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.

Não é possível usar a interface de configuração pipeline para criar um novo pipeline com o modo de publicação legado. Se você precisar implantar um novo pipeline usando a sintaxe legada LIVE , entre em contato com seu representante account Databricks .

O que é o esquema virtual LIVE?

nota

O esquema virtual LIVE não é mais necessário para analisar a dependência dataset no modo de publicação default para o pipeline declarativo LakeFlow .

O esquema LIVE é um conceito de programação no pipeline declarativo LakeFlow que define um limite virtual para todos os conjuntos de dados criados ou atualizados em um pipeline. Por design, o esquema LIVE não está vinculado diretamente ao conjunto de dados em um esquema publicado. Em vez disso, o esquema LIVE permite que a lógica em um pipeline seja planejada e executada mesmo que um usuário não queira publicar um conjunto de dados em um esquema.

No pipeline do modo de publicação legado, você pode usar a palavra-chave LIVE para referenciar outro conjunto de dados no pipeline atual para leituras, por exemplo, SELECT * FROM LIVE.bronze_table. No modo de publicação default para o novo pipeline declarativo LakeFlow , essa sintaxe é silenciosamente ignorada, o que significa que identificadores não qualificados usam o esquema atual. Consulte Definir o catálogo de destino e o esquema.

Modo de publicação legado para pipeline

O esquema virtual LIVE é usado com o modo de publicação legado para o pipeline declarativo LakeFlow . Todas as tabelas criadas antes de 5 de fevereiro de 2025 usam o modo de publicação legado por default.

A tabela a seguir descreve o comportamento de todas as tabelas de exibição materializada e transmissão criadas ou atualizadas em um pipeline no modo de publicação legado:

Opção de armazenamento

Local de armazenamento ou catálogo

Esquema de destino

Comportamento

Hive Metastore

Nenhum especificado

Nenhum especificado

metadados e dados do conjunto de dados são armazenados na DBFS root. Nenhum objeto de banco de dados está registrado no Hive metastore.

Hive Metastore

Um URI ou caminho de arquivo para armazenamento de objetos cloud .

Nenhum especificado

metadados e dados do conjunto de dados são armazenados no local de armazenamento especificado. Nenhum objeto de banco de dados está registrado no Hive metastore.

Hive Metastore

Nenhum especificado

Um esquema existente ou novo no Hive metastore.

metadados e dados do conjunto de dados são armazenados na DBFS root. Todas as tabelas de exibição materializadas e de transmissão no pipeline são publicadas no esquema especificado no Hive metastore.

Hive Metastore

Um URI ou caminho de arquivo para armazenamento de objetos cloud .

Um esquema existente ou novo no Hive metastore.

metadados e dados do conjunto de dados são armazenados no local de armazenamento especificado. Todas as tabelas de exibição materializadas e de transmissão no pipeline são publicadas no esquema especificado no Hive metastore.

Unity Catalog

Um catálogo existente do Unity Catalog.

Nenhum especificado

Os metadados e dados do conjunto de dados são armazenados no local de armazenamento default associado ao catálogo de destino. Nenhum objeto de banco de dados está registrado no Unity Catalog.

Unity Catalog

Um catálogo existente do Unity Catalog.

Um esquema existente ou novo no Unity Catalog.

Os metadados e dados do conjunto de dados são armazenados no local de armazenamento default associado ao esquema ou catálogo de destino. Todas as tabelas de visualização materializada e transmissão no pipeline são publicadas no esquema especificado no Unity Catalog.

Atualizar código-fonte do esquema LIVE

pipeline configurado para execução com o novo modo de publicação default ignora silenciosamente a sintaxe do esquema LIVE . Por default, todas as leituras de tabela usam o catálogo e o esquema especificados na configuração pipeline .

Para a maioria dos pipelines existentes, essa mudança de comportamento não tem impacto, pois o comportamento do esquema virtual LIVE legado também direciona leituras para o catálogo e o esquema especificados na configuração pipeline .

important

Código legado com leituras que aproveitam o catálogo e o esquema default workspace exigem atualizações de código. Considere a seguinte definição view materializada:

SQL
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM raw_data

No modo de publicação legado, uma leitura não qualificada da tabela raw_data usa o catálogo e o esquema default workspace , por exemplo, main.default.raw_data. No novo modo pipeline default , o catálogo e o esquema usados por default são aqueles configurados na configuração pipeline . Para garantir que esse código continue funcionando conforme o esperado, atualize a referência para usar o identificador totalmente qualificado da tabela, como no exemplo a seguir:

SQL
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM main.default.raw_data

Trabalhar com log de eventos para pipeline de modo de publicação legado Unity Catalog

important

O event_log TVF está disponível para pipeline de modo de publicação legado que publica tabelas no Unity Catalog. o comportamento padrão para o novo pipeline publica o log de eventos no catálogo de destino e no esquema configurado para o pipeline. Consulte Consultar o log de eventos.

Tabelas configuradas com o Hive metastore também têm suporte e comportamento de log de eventos diferentes. Consulte Trabalhar com log de eventos para pipeline Hive metastore.

Se o seu pipeline publicar tabelas no Unity Catalog com o modo de publicação legado, você deverá usar a função de valor de tabela event_log (TVF) para buscar o log de eventos do pipeline. Você recupera o log de eventos de um pipeline passando o ID do pipeline ou um nome de tabela para o TVF. Por exemplo, para recuperar os registros de log de eventos do pipeline com ID 04c78631-3dd7-4856-b2a6-7d84e9b2638b:

SQL
SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")

Para recuperar os registros do log de eventos do pipeline que criou ou possui a tabela my_catalog.my_schema.table1:

SQL
SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))

Para chamar o TVF, você deve usar um cluster compartilhado ou um SQL warehouse. Por exemplo, você pode usar o editorSQL conectado a um SQL warehouse.

Para simplificar a consulta de eventos para um pipeline, o proprietário do pipeline pode criar uma view sobre o event_log TVF. O exemplo a seguir cria uma view sobre o log de eventos de um pipeline. Esta view é usada nas consultas log eventos de exemplo incluídas neste artigo.

nota
  • O event_log TVF pode ser chamado somente pelo proprietário do pipeline.
  • Não é possível usar a função com valor de tabela event_log em um pipeline ou consulta para acessar os logs de eventos de vários pipelines.
  • Você não pode compartilhar uma view criada sobre a função com valor de tabela event_log com outros usuários.
SQL
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");

Substitua <pipeline-ID> pelo identificador exclusivo do pipeline. Você pode encontrar o ID no painel de detalhes do pipeline na interface do usuário do pipeline declarativo LakeFlow .

Cada instância de uma execução de pipeline é chamada de atualização . Muitas vezes você deseja extrair informações da atualização mais recente. execute a seguinte consulta para encontrar o identificador da atualização mais recente e salvá-lo na view temporária latest_update_id . Esta view é usada nas consultas log eventos de exemplo incluídas neste artigo:

SQL
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;