Pipelines e atualidade
Pipelines do Lakeflow e atualidade dos dados
Os Lakeflow Spark Declarative Pipelines (SDP) alimentam as tabelas analíticas que seu app lê. Criar pipelines é uma tarefa de engenharia de dados na qual você, como desenvolvedor AppKit, quase nunca vai mexer. Seu trabalho está no lado da leitura: exibir a saída do pipeline e responder "isso está atualizado o suficiente para ser mostrado?" antes de renderizar.
Sinais em SQL respondem a essa pergunta: metadados de atualização por tabela para visualizações materializadas e tabelas de streaming, além da linha do tempo das atualizações do pipeline. Ambos passam pelo Analytics plugin que você configurou em Leituras analíticas.
O Lakeflow é a suíte de engenharia de dados da Databricks. Como desenvolvedor AppKit, você apenas lê a saída dos pipelines, mas vale conhecer as peças:
- Lakeflow Connect para ingestão, com conectores gerenciados que depositam dados no Unity Catalog.
- Lakeflow Spark Declarative Pipelines para transformação, escritos em SQL ou Python, produzindo visualizações materializadas e tabelas de streaming.
- Lakeflow Jobs para orquestração. Consulte Lakeflow Jobs para o lado do acionamento pelo app.
- Lakeflow Designer para construção visual de pipelines, sem código.
Consulte a documentação do Lakeflow para conhecer toda a família de produtos.
Sinais de atualidade
- Metadados de atualização por tabela:
DESCRIBE TABLE EXTENDED <name> AS JSONretorna um blocorefresh_informationpara visualizações materializadas e tabelas de streaming. O bloco contémlast_refreshed_at,last_refresh_type,latest_refresh_status,latest_refresh_linkerefresh_schedule. Consulte DESCRIBE TABLE para ver o esquema completo da saída. - Linha do tempo de atualizações do pipeline:
system.lakeflow.pipeline_update_timelineregistra cada atualização de pipeline compipeline_id,update_id,period_start_time,period_end_time,result_state(um entreCOMPLETED,FAILED,CANCELED) e detalhes do gatilho. Filtre porpipeline_ideresult_state = 'COMPLETED'para encontrar a atualização bem-sucedida mais recente do pipeline ao qual a tabela pertence. Consulte a referência de tabelas do sistema para ver a lista completa de colunas.
Para diagnósticos mais aprofundados (status por fluxo, resultados de expectativas, eventos de linhagem), use o log de eventos do pipeline por meio da função com valor de tabela event_log(). O log de eventos é o lugar certo para perguntas do tipo "por que esta atualização falhou", e não "estes dados estão atualizados o suficiente para serem exibidos".
Uma consulta de badge "Última atualização"
Coloque isto em config/queries/. Ela roda pelo Analytics plugin como qualquer outro arquivo SQL.
-- @param pipelineId STRING
SELECT period_end_time, result_state
FROM system.lakeflow.pipeline_update_timeline
WHERE pipeline_id = :pipelineId
AND result_state = 'COMPLETED'
ORDER BY period_end_time DESC
LIMIT 1;Chame o hook no React com o ID do pipeline:
import { useMemo } from "react";
import { sql } from "@databricks/appkit-ui/js";
import { useAnalyticsQuery } from "@databricks/appkit-ui/react";
const params = useMemo(
() => ({ pipelineId: sql.string("ec2a0ff4-d2a5-4c8c-bf1d-d9f12f10e749") }),
[],
);
const { data } = useAnalyticsQuery("last_pipeline_update", params);O nome de arquivo .obo.sql executa a consulta como o usuário autenticado. Se o service principal do seu app tiver SELECT em system.lakeflow.pipeline_update_timeline, remova o .obo e a consulta será executada como o app. Consulte Escrever arquivos SQL para ver a regra completa de nomenclatura de arquivos.
Disparar uma atualização a partir do app
Não existe um plugin dedicado de Pipelines no AppKit. Chame o SDK diretamente do seu handler com w.pipelines.startUpdate({ pipelineId }) ou encapsule o pipeline em um Lakeflow Job e use o Jobs plugin.
Próximos passos
Experimente Medallion Architecture from CDC History Tables para conhecer o pipeline SDP canônico que gera essas tabelas, ou Operational Data Analytics para o padrão completo de UC + CDC + medalhão.