Compartilhar via


Esquema LIVE (herdado)

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

O LIVE esquema virtual é um recurso herdado do Lakeflow Declarative Pipelines e é considerado preterido. Você ainda pode usar o modo de publicação herdado e o esquema virtual LIVE para pipelines criados com esse modo.

O Databricks recomenda a migração de todos os pipelines para o novo modo de publicação. Você tem duas opções para migração:

Ambos os métodos são migrações unidirecionais. Você não pode migrar as tabelas de volta para o modo herdado.

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

Observação

Os pipelines do modo de publicação legado são indicados no campo Resumo da interface de configuração de Pipelines Declarativos do Lakeflow. Você também pode confirmar se um pipeline usa o modo de publicação herdado se o target campo estiver definido na especificação JSON do pipeline.

Você não pode usar a interface de configuração do pipeline para criar novos pipelines com o modo de publicação herdado. Se você precisar implantar novos pipelines usando a sintaxe LIVE herdada, entre em contato com o representante da conta do Databricks.

O que é o esquema virtual LIVE?

Observação

O esquema virtual LIVE não é mais necessário para analisar a dependência do conjunto de dados no modo de publicação padrão para Pipelines Declarativos do Lakeflow.

O esquema LIVE é um conceito de programação em Pipelines Declarativos do 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 a conjuntos 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 se um usuário não quiser publicar conjuntos de dados em um esquema.

Em pipelines no modo de publicação, você pode usar a palavra-chave LIVE para referenciar outros conjuntos de dados no pipeline atual para leituras, por exemplo, SELECT * FROM LIVE.bronze_table. No modo de publicação padrão para novos Pipelines Declarativos do Lakeflow, essa sintaxe é silenciosamente ignorada, o que significa que identificadores desqualificados usam o esquema atual. Confira Definir o catálogo e o esquema de destino.

Modo de publicação herdado para pipelines

O esquema virtual LIVE é usado com o modo de publicação legado para Pipelines Declarativos do Lakeflow. Todas as tabelas criadas antes de 5 de fevereiro de 2025 usam o modo de publicação herdado por padrão.

A tabela a seguir descreve o comportamento de todas as exibições materializadas e tabelas de streaming criadas ou atualizadas em um pipeline no modo de publicação herdado:

Opção de armazenamento Local de armazenamento ou catálogo Esquema de destino Comportamento
Metastore do Hive Nenhum especificado Nenhum especificado Os metadados e os dados do conjunto de dados são armazenados na raiz do DBFS. Nenhum objeto de banco de dados é registrado no metastore do Hive.
Metastore do Hive Um URI ou caminho de arquivo para o armazenamento de objetos na nuvem. Nenhum especificado Os metadados e os dados do conjunto de dados são armazenados no local de armazenamento especificado. Nenhum objeto de banco de dados é registrado no metastore do Hive.
Metastore do Hive Nenhum especificado Um esquema existente ou novo no metastore do Hive. Os metadados e os dados do conjunto de dados são armazenados na raiz do DBFS. Todas as exibições materializadas e tabelas de streaming no pipeline são publicadas no esquema especificado no metastore do Hive.
Metastore do Hive Um URI ou caminho de arquivo para o armazenamento de objetos na nuvem. Um esquema existente ou novo no metastore do Hive. Os metadados e os dados do conjunto de dados são armazenados no local de armazenamento especificado. Todas as exibições materializadas e tabelas de streaming no pipeline são publicadas no esquema especificado no metastore do Hive.
Catálogo do Unity Um catálogo existente do Catálogo do Unity. Nenhum especificado Os metadados e os dados do conjunto de dados são armazenados no local de armazenamento padrão associado ao catálogo de destino. Nenhum objeto de banco de dados é registrado no Catálogo do Unity.
Catálogo do Unity Um catálogo existente do Catálogo do Unity. Um esquema existente ou novo no Catálogo do Unity. Os metadados e os dados do conjunto de dados são armazenados no local de armazenamento padrão associado ao esquema ou catálogo de destino. Todas as exibições materializadas e tabelas de streaming no pipeline são publicadas no esquema especificado no Catálogo do Unity.

Atualizar o código-fonte do esquema LIVE

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

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

Importante

Código legado com leituras que utilizam o catálogo padrão e o esquema do espaço de trabalho exige atualizações de código. Considere a seguinte definição de exibição materializada:

CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM raw_data

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

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

Trabalhar com o log de eventos para pipelines do modo herdado de publicação do Catálogo do Unity

Importante

O TVF event_log está disponível para pipelines de modo de publicação herdado que publicam tabelas no Catálogo do Unity. O comportamento padrão para novos pipelines publica o log de eventos no catálogo de destino e no esquema configurado para o pipeline. Consulte Consultar o log de eventos.

As tabelas configuradas com o metastore do Hive também têm suporte e comportamento de log de eventos diferentes. Confira Trabalhar com log de eventos para pipelines do metastore do Hive.

Se o pipeline publicar tabelas no Unity Catalog com o modo de publicação herdado, você precisará usar a event_logfunção valorizada de tabela (TVF) para obter o log de eventos do pipeline. Você recupera o log de eventos de um pipeline passando a ID do pipeline ou um nome de tabela para o TVF. Por exemplo, para recuperar os registros de log de eventos do pipeline com a 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 um notebook anexado a um cluster compartilhado ou usar o editor do SQL conectado a um SQL Warehouse.

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

Observação

  • O TVF event_log só pode ser chamado pelo proprietário do pipeline.
  • Você não pode 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.
  • Não é possível compartilhar uma exibição criada sobre a função com valor de tabela event_log com outros usuários.
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 Detalhes do pipeline na interface de Pipelines Declarativos do Lakeflow.

Cada instância de uma execução de pipeline é chamada de atualização. Você geralmente deseja extrair informações para a atualização mais recente. Execute a consulta a seguir para localizar o identificador para a atualização mais recente e salvá-lo no modo de exibição latest_update_id temporário. Essa exibição é usada nas consultas de log de 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;