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 Spark 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:
- Mover tabelas (incluindo tabelas de visualização materializada e tabelas de transmissão) de um pipeline legado para um pipeline que usa o modo de publicação default . Para aprender como mover tabelas entre pipelines, consulte Mover tabelas entre pipelines.
- Habilite o modo de publicação default em um pipeline que atualmente usa o modo de publicação legado. Consulte Habilitar o modo de publicação default em um pipeline.
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.
Os pipelines do modo de publicação legado são indicados no campo Resumo da interface do usuário de configurações do pipeline declarativo LakeFlow Spark . 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?
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 Spark .
O esquema LIVE é um conceito de programação no pipeline declarativo LakeFlow Spark que define um limite virtual para todos os conjuntos de dados criados ou atualizados em um pipeline. Por definição, o esquema LIVE não está diretamente vinculado 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 o conjunto de dados em um esquema.
No pipeline de 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 Spark , essa sintaxe é ignorada silenciosamente, o que significa que identificadores não qualificados usam o esquema atual. Consulte Definir o catálogo e o esquema de destino.
Modo de publicação legado para pipeline
O esquema virtual LIVE é usado com o modo de publicação legado para o pipeline declarativo LakeFlow Spark . 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 .
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:
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:
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
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:
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:
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.
- O
event_logTVF pode ser chamado somente pelo proprietário do pipeline. - Não é possível usar a função com valor de tabela
event_logem 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_logcom outros usuários.
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");
Substitua <pipeline-ID> pelo identificador único do pipeline. Você pode encontrar o ID no painel de detalhes do pipeline na interface do usuário do pipeline declarativo do LakeFlow Spark .
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:
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;