Pular para o conteúdo principal

Monitorar LakeFlow Pipeline declarativo

Este artigo descreve o uso de monitoramento integrado e recurso de observabilidade para o pipeline declarativo LakeFlow. Esses recursos dão suporte a tarefas como as do senhor:

Para inspecionar e diagnosticar o desempenho da consulta, consulte Acessar o histórico de consultas para LakeFlow Declarative pipeline. Esse recurso está em Public Preview.

Adicionar notificações email para eventos pipeline

O senhor pode configurar um ou mais endereços email para receber notificações quando ocorrer o seguinte:

  • A atualização do pipeline foi concluída com êxito.
  • Uma atualização de pipeline falha, seja com um erro que pode ser tentado ou não. Selecione essa opção para receber uma notificação de todas as falhas de pipeline.
  • Uma atualização de pipeline falha com um erro fatal (não recuperável). Selecione essa opção para receber uma notificação somente quando ocorrer um erro que não pode ser repetido.
  • Um único fluxo de dados falha.

Para configurar as notificações do email quando o senhor criar ou editar um pipeline:

  1. Clique em Adicionar notificação .
  2. Digite um ou mais endereços email para receber notificações.
  3. Clique na caixa de seleção de cada tipo de notificação a ser enviada para os endereços email configurados.
  4. Clique em Adicionar notificação .

Visualização do pipeline na interface do usuário

O senhor pode encontrar o pipeline do LakeFlow Declarative nas opções de pipeline ou fluxo de trabalho na barra lateral do workspace. Isso abre a página de fluxo de trabalho para o pipeline de Jobs & tab, onde o senhor pode obter view informações sobre cada Job e pipeline ter acesso a elas. Clique no nome de um pipeline para abrir a página de detalhes do pipeline.

Usando a lista de pipelines do Jobs &

Para view a lista de pipelines aos quais o senhor tem acesso, clique em ícone de fluxo de trabalho. fluxo de trabalho ou Ícone do oleoduto pipeline na barra lateral. Os trabalhos & pipeline tab na interface de usuário LakeFlow Jobs lista informações sobre todos os trabalhos e pipelines disponíveis, como o criador do fluxo de trabalho, o acionador do fluxo de trabalho, se houver, e o resultado das últimas cinco execuções.

Para alterar as colunas exibidas na lista, clique Ícone de configurações de coluna e selecione ou desmarque as colunas.

info

Prévia

A lista de pipeline unificada do Jobs & está em Public Preview. O senhor pode desativar o recurso e retornar à experiência do site default desativando Jobs e pipeline: Gerenciamento unificado, pesquisa, filtragem & . Consulte gerenciar Databricks Previews para obter mais informações.

O senhor pode filtrar o trabalho na lista de pipeline do Jobs & , conforme mostrado na captura de tela a seguir.

Lista de pipelines view com textos explicativos.

  1. Pesquisa de texto : a pesquisa por palavra-chave é suportada nos campos Nome e ID . Para pesquisar uma tag criada com um key e um valor, o senhor pode pesquisar pelo key, pelo valor ou pelo key e pelo valor. Por exemplo, para uma tag com key department e o valor finance, o senhor pode pesquisar department ou finance para encontrar um trabalho correspondente. Para pesquisar pelo endereço key e pelo valor, digite key e o valor separados por dois pontos (por exemplo, department:finance).
  2. Tipo : filtrar por Jobs , pipeline ou All . Se o senhor selecionar pipeline , também poderá filtrar por tipo de pipeline , que inclui ETL e pipeline de ingestão.
  3. Proprietário : mostre apenas o trabalho que o senhor possui.
  4. Favorites : mostra o trabalho que o senhor marcou como favorito.
  5. Etiquetas : Use etiquetas. Para pesquisar por tag, você pode usar o menu suspenso de tags para filtrar até cinco tags ao mesmo tempo ou usar diretamente a pesquisa por palavra-chave.
  6. execução as : Filtrar por até dois valores run as.

Para começar um trabalho ou um pipeline, clique no botão Ícone de reprodução play. Para interromper um Job ou um pipeline, clique no botão Ícone de parada stop. Para acessar outras ações, clique no menu kebab. Ícone do menu Kebab. Por exemplo, o senhor pode excluir o Job ou pipeline, ou acessar as configurações de um pipeline a partir desse menu.

Quais detalhes do pipeline estão disponíveis na interface do usuário?

O gráfico pipeline é exibido assim que uma atualização do site pipeline é iniciada com sucesso. As setas representam as dependências entre os conjuntos de dados em seu site pipeline. Em default, a página de detalhes pipeline mostra a atualização mais recente da tabela, mas o senhor pode selecionar atualizações mais antigas em um menu suspenso.

Os detalhes incluem o ID do pipeline, o código-fonte, o custo do compute, a edição do produto e o canal configurado para o pipeline.

Para ver uma tabela view do conjunto de dados, clique em List tab. O List view permite que o senhor veja todos os conjuntos de dados em seu pipeline representados como uma linha em uma tabela e é útil quando seu pipeline DAG é muito grande para ser visualizado no gráfico view. O senhor pode controlar o conjunto de dados exibido na tabela usando vários filtros, como dataset name, type e status. Para voltar à visualização do DAG, clique em gráfico .

O usuário executa como é o proprietário do pipeline e o pipeline atualiza a execução com as permissões desse usuário. Para alterar o usuário do run as, clique em Permissions (Permissões ) e altere o proprietário do pipeline.

Como o senhor pode view dataset detalhes?

Clicar em um dataset no pipeline gráfico ou na lista dataset mostra detalhes sobre o dataset. Os detalhes incluem o esquema dataset, as métricas de qualidade de dados e um link para o código-fonte que define o dataset.

view update história

Para view o histórico e o status das atualizações do pipeline, clique no menu suspenso histórico de atualizações na barra superior.

Selecione a atualização no menu suspenso para view o gráfico, os detalhes e os eventos de uma atualização. Para retornar à atualização mais recente, clique em Mostrar a atualização mais recente .

view transmissão métricas

info

Visualização

A observabilidade da transmissão para o pipeline declarativo LakeFlow está na visualização pública.

O senhor pode view transmitir métricas da fonte de dados suportada pela Spark transmissão estruturada, como as tabelas Apache Kafka, Amazon Kinesis, Auto Loader e Delta, para cada fluxo de transmissão em seu pipeline LakeFlow declarativo. métricas são exibidas como gráficos no painel direito da UI do pipeline declarativo LakeFlow e incluem segundos de backlog, bytes de backlog, registros de backlog e arquivos de backlog. Os gráficos exibem o valor máximo agregado por minuto e uma dica de ferramenta mostra os valores máximos quando você passa o mouse sobre o gráfico. Os dados são limitados às últimas 48 horas a partir da hora atual.

As tabelas em seu pipeline com transmissão métricas disponíveis exibem o ícone Ícone do gráfico DLT ao visualizar o pipeline DAG na UI gráfica view. Para view a transmissão métrica, clique em Ícone do gráfico DLT para exibir o gráfico de transmissão métrica em Flows tab no painel direito. O senhor também pode aplicar um filtro para view apenas tabelas com transmissão métricas clicando em List e, em seguida, em Has transmissão métricas .

Cada fonte de transmissão suporta apenas métricas específicas. As métricas não suportadas por uma fonte de transmissão não estão disponíveis para view na UI. A tabela a seguir mostra as métricas disponíveis para as fontes de transmissão suportadas:

Origem

bytes da lista de pendências

registros de pendências

segundos de atraso

arquivos de lista de pendências

Kafka

Kinesis

Delta

Carregador automático

Google Pub/Sub

O que é o evento LakeFlow Declarative pipeline log?

O evento LakeFlow Declarative pipeline log contém todas as informações relacionadas a um pipeline, incluindo auditoria logs, verificações de qualidade de dados, pipeline progresso e linhagem de dados. O senhor pode usar o evento log para rastrear, entender e monitorar o estado do seu pipeline de dados.

É possível acessar as entradas do evento view log na interface de usuário do pipeline declarativo LakeFlow, no pipeline declarativo LakeFlow APIou consultando diretamente o evento log. Esta seção se concentra na consulta direta ao log de eventos.

O senhor também pode definir ações personalizadas a serem executadas quando os eventos são registrados, por exemplo, enviar alertas, com ganchos de eventos.

important

Não exclua o log de eventos ou o catálogo ou esquema pai onde o log de eventos é publicado. A exclusão do evento log pode fazer com que o site pipeline não seja atualizado durante uma execução futura.

Evento log schema

A tabela a seguir descreve o esquema do evento log. Alguns desses campos contêm dados JSON que exigem análise para realizar algumas consultas, como o campo details. A Databricks suporta o operador : para analisar campos JSON. Consulte o operador: (sinal de dois pontos).

campo

Descrição

id

Um identificador exclusivo para o registro do log de eventos.

sequence

Um documento JSON que contém metadados para identificar e ordenar eventos.

origin

Um documento JSON contendo metadados para a origem do evento, por exemplo, o provedor de nuvem, a região do provedor de nuvem, user_id, pipeline_id ou pipeline_type para mostrar onde o pipeline foi criado, DBSQL ou WORKSPACE.

timestamp

A hora em que o evento foi gravado.

message

Uma mensagem legível por humanos descrevendo o evento.

level

O tipo de evento, por exemplo, INFO, WARN, ERROR ou METRICS.

maturity_level

A estabilidade do esquema de eventos. Os valores possíveis são: - STABLE: O esquema é estável e não mudará. - NULL: O esquema é estável e não mudará. O valor pode ser NULL se o registro tiver sido criado antes da adição do campo maturity_level (versão 2022.37). - EVOLVING: O esquema não é estável e pode mudar. - DEPRECATED: O esquema está obsoleto e o tempo de execução do pipeline declarativo LakeFlow pode parar de produzir esse evento a qualquer momento.

error

Se ocorreu um erro, detalhes descrevendo o erro.

details

Um documento JSON que contém detalhes estruturados do evento. Esse é o campo principal usado para analisar eventos.

event_type

O tipo de evento.

Consultar o evento log

nota

Esta seção descreve o comportamento e a sintaxe do default para trabalhar com o evento logs para o pipeline configurado com o Unity Catalog e o modo de publicação default.

Em default, o pipeline declarativo LakeFlow grava o evento log em uma tabela oculta Delta no catálogo default e no esquema configurado para pipeline. Embora oculta, a tabela ainda pode ser consultada por todos os usuários suficientemente privilegiados. Por default, somente o proprietário do pipeline pode consultar a tabela de eventos log.

Por default, o nome do evento oculto log é formatado como event_log_{pipeline_id}, em que o ID pipeline é o UUID atribuído pelo sistema com tracejado substituído por sublinhado.

O senhor pode interagir com a configuração do JSON para publicar o evento log. Ao publicar um log de eventos, o senhor especifica o nome do log de eventos e, opcionalmente, pode especificar um catálogo e um esquema, como no exemplo a seguir:

JSON
{
"id": "ec2a0ff4-d2a5-4c8c-bf1d-d9f12f10e749",
"name": "billing_pipeline",
"event_log": {
"catalog": "catalog_name",
"schema": "schema_name",
"name": "event_log_table_name"
}
}

O local do log de eventos também serve como local do esquema para qualquer consulta do Auto Loader no pipeline. Databricks recomenda criar um view sobre a tabela log de eventos antes de modificar os privilégios, pois algumas configurações do compute podem permitir que os usuários obtenham acesso aos metadados do esquema se a tabela log de eventos for compartilhada diretamente. A sintaxe de exemplo a seguir cria um view em uma tabela de eventos log e é usada nas consultas de exemplo de eventos log incluídas neste artigo.

SQL
CREATE VIEW event_log_raw
AS SELECT * FROM catalog_name.schema_name.event_log_table_name;

Cada instância de uma execução de pipeline é chamada de atualização . O senhor geralmente deseja extrair informações para a atualização mais recente. Execute a consulta a seguir para encontrar o identificador da atualização mais recente e salve-o na pasta temporária latest_update view. Esse view é usado no exemplo de consultas do evento log 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;

Em Unity Catalog, o senhor pode visualizar as consultas de transmissão de suporte. O exemplo a seguir usa a transmissão estruturada para consultar um view definido em cima de uma tabela de eventos log:

Python
df = spark.readStream.table("event_log_raw")

O proprietário do pipeline pode publicar o log de eventos como uma tabela Delta pública, alternando a opção Publish event log to metastore na seção Advanced (Avançado ) da configuração do pipeline. Opcionalmente, o senhor pode especificar um novo nome de tabela, catálogo e esquema para o log de eventos.

Consultar informações de linhagem do evento log

Os eventos que contêm informações sobre a linhagem têm o tipo de evento flow_definition. O objeto details:flow_definition contém os output_dataset e input_datasets que definem cada relacionamento no gráfico.

O senhor pode usar a seguinte consulta para extrair o conjunto de dados de entrada e saída para ver as informações de linhagem:

SQL
SELECT
details:flow_definition.output_dataset as output_dataset,
details:flow_definition.input_datasets as input_dataset
FROM
event_log_raw,
latest_update
WHERE
event_type = 'flow_definition'
AND
origin.update_id = latest_update.id

output_dataset

input_datasets

customers

null

sales_orders_raw

null

sales_orders_cleaned

["customers", "sales_orders_raw"]

sales_order_in_la

["sales_orders_cleaned"]

Consultar a qualidade dos dados do evento log

Se o senhor definir expectativas no conjunto de dados em pipeline, as métricas para o número de registros que passaram e falharam em uma expectativa serão armazenadas no objeto details:flow_progress.data_quality.expectations. As métricas para o número de registros descartados são armazenadas no objeto details:flow_progress.data_quality. Os eventos que contêm informações sobre a qualidade dos dados têm o tipo de evento flow_progress.

As métricas de qualidade dos dados podem não estar disponíveis para alguns conjuntos de dados. Veja as limitações das expectativas.

As seguintes métricas de qualidade de dados estão disponíveis:

Métrica

Descrição

dropped_records

O número de registros que foram descartados porque falharam em uma ou mais expectativas.

passed_records

O número de registros que atenderam aos critérios de expectativa.

failed_records

O número de registros que falharam nos critérios de expectativa.

O exemplo a seguir consulta as métricas de qualidade de dados para a última atualização do pipeline:

SQL
SELECT
row_expectations.dataset as dataset,
row_expectations.name as expectation,
SUM(row_expectations.passed_records) as passing_records,
SUM(row_expectations.failed_records) as failing_records
FROM
(
SELECT
explode(
from_json(
details :flow_progress :data_quality :expectations,
"array<struct<name: string, dataset: string, passed_records: int, failed_records: int>>"
)
) row_expectations
FROM
event_log_raw,
latest_update
WHERE
event_type = 'flow_progress'
AND origin.update_id = latest_update.id
)
GROUP BY
row_expectations.dataset,
row_expectations.name

dataset

expectation

passing_records

failing_records

sales_orders_cleaned

valid_order_number

4083

0

Consultar eventos Auto Loader a partir do evento log

LakeFlow O pipeline declarativo gera eventos quando o site Auto Loader processa arquivos. Para eventos do Auto Loader, o event_type é operation_progress e o details:operation_progress:type é AUTO_LOADER_LISTING ou AUTO_LOADER_BACKFILL. O objeto details:operation_progress também inclui os campos status, duration_ms, auto_loader_details:source_path e auto_loader_details:num_files_listed.

O exemplo a seguir consulta os eventos do Auto Loader para a última atualização:

SQL
SELECT
timestamp,
details:operation_progress.status,
details:operation_progress.type,
details:operation_progress:auto_loader_details
FROM
event_log_raw,
latest_update
WHERE
event_type like 'operation_progress'
AND
origin.update_id = latest.update_id
AND
details:operation_progress.type in ('AUTO_LOADER_LISTING', 'AUTO_LOADER_BACKFILL')

Monitorar o backlog de dados consultando o log de eventos

LakeFlow O pipeline declarativo rastreia a quantidade de dados presentes na lista de pendências no objeto details:flow_progress.metrics.backlog_bytes. Os eventos que contêm métricas de backlog têm o tipo de evento flow_progress. O exemplo a seguir consulta as métricas do backlog para a última atualização do pipeline:

SQL
SELECT
timestamp,
Double(details :flow_progress.metrics.backlog_bytes) as backlog
FROM
event_log_raw,
latest_update
WHERE
event_type ='flow_progress'
AND
origin.update_id = latest_update.id
nota

As métricas de backlog podem não estar disponíveis dependendo do tipo de fonte de dados do pipeline e da versão do Databricks Runtime.

Monitorar eventos de autoescala aprimorados do evento log para pipeline sem serverless ativado

Para o pipeline declarativo LakeFlow que não usa serverless compute, o evento log captura o redimensionamento do clustering quando a escala automática aprimorada está ativada no pipeline. Os eventos que contêm informações sobre a escala automática aprimorada têm o tipo de evento autoscale. As informações da solicitação de redimensionamento do clustering são armazenadas no objeto details:autoscale. O exemplo a seguir consulta as solicitações de redimensionamento do clustering de autoescala aprimorado para a última atualização do site pipeline:

SQL
SELECT
timestamp,
Double(
case
when details :autoscale.status = 'RESIZING' then details :autoscale.requested_num_executors
else null
end
) as starting_num_executors,
Double(
case
when details :autoscale.status = 'SUCCEEDED' then details :autoscale.requested_num_executors
else null
end
) as succeeded_num_executors,
Double(
case
when details :autoscale.status = 'PARTIALLY_SUCCEEDED' then details :autoscale.requested_num_executors
else null
end
) as partially_succeeded_num_executors,
Double(
case
when details :autoscale.status = 'FAILED' then details :autoscale.requested_num_executors
else null
end
) as failed_num_executors
FROM
event_log_raw,
latest_update
WHERE
event_type = 'autoscale'
AND
origin.update_id = latest_update.id

Monitorar a utilização do recurso compute

cluster_resources Os eventos fornecem métricas sobre o número de slots de tarefa no clustering, o quanto esses slots de tarefa são utilizados e quantas tarefas estão esperando para serem agendadas.

Quando a escala automática aprimorada está ativada, os eventos cluster_resources também contêm métricas para o algoritmo de escala automática, incluindo latest_requested_num_executors e optimal_num_executors. Os eventos também mostram o status do algoritmo em diferentes estados, como CLUSTER_AT_DESIRED_SIZE, SCALE_UP_IN_PROGRESS_WAITING_FOR_EXECUTORS e BLOCKED_FROM_SCALING_DOWN_BY_CONFIGURATION. Essas informações podem ser visualizadas em conjunto com os eventos de autoescala para fornecer uma visão geral da autoescala aprimorada.

O exemplo a seguir consulta o histórico do tamanho da fila da tarefa para a última atualização do site pipeline:

SQL
SELECT
timestamp,
Double(details :cluster_resources.avg_num_queued_tasks) as queue_size
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id

O exemplo a seguir consulta o histórico de utilização da última atualização do site pipeline:

SQL
SELECT
timestamp,
Double(details :cluster_resources.avg_task_slot_utilization) as utilization
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id

O exemplo a seguir consulta o histórico de contagem do executor, acompanhado de métricas disponíveis apenas para o pipeline de autoescala aprimorado, incluindo o número de executores solicitados pelo algoritmo na última solicitação, o número ideal de executores recomendados pelo algoritmo com base nas métricas mais recentes e o estado do algoritmo de autoescala:

SQL
SELECT
timestamp,
Double(details :cluster_resources.num_executors) as current_executors,
Double(details :cluster_resources.latest_requested_num_executors) as latest_requested_num_executors,
Double(details :cluster_resources.optimal_num_executors) as optimal_num_executors,
details :cluster_resources.state as autoscaling_state
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id

Auditoria LakeFlow Pipeline declarativo

É possível usar os registros de eventos do pipeline LakeFlow Declarative log e outros registros de auditoria Databricks logs para obter uma visão completa de como os dados estão sendo atualizados no pipeline LakeFlow Declarative.

LakeFlow O pipeline declarativo usa as credenciais do proprietário do pipeline para executar atualizações. O senhor pode alterar as credenciais usadas atualizando o proprietário do pipeline. LakeFlow O pipeline declarativo registra o usuário para ações no pipeline, incluindo a criação do pipeline, edições na configuração e acionamento de atualizações.

Consulte Eventos do Unity Catalog para obter uma referência dos eventos de auditoria do Unity Catalog.

Consultar as ações do usuário no evento log

O senhor pode usar o log de eventos para auditar eventos, por exemplo, ações de usuários. Os eventos que contêm informações sobre ações do usuário têm o tipo de evento user_action.

As informações sobre a ação são armazenadas no objeto user_action no campo details. Use a consulta a seguir para criar um log de auditoria de eventos de usuários. Para criar o event_log_raw view usado nesta consulta, consulte Consultar o evento log.

SQL
SELECT timestamp, details:user_action:action, details:user_action:user_name FROM event_log_raw WHERE event_type = 'user_action'

timestamp

action

user_name

2021-05-20T 19:36:03.517 +0000

START

user@company.com

2021-05-20T 19:35:59.913 +0000

CREATE

user@company.com

2021-05-27T 00:35:51.971 +0000

START

user@company.com

Runtime informações

O senhor pode view informações de tempo de execução para uma atualização pipeline, por exemplo, a versão Databricks Runtime da atualização:

SQL
SELECT details:create_update:runtime_version:dbr_version FROM event_log_raw WHERE event_type = 'create_update'

dbr_version

11.0