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:
- Observar o progresso e o status das atualizações do pipeline. Consulte Quais detalhes do pipeline estão disponíveis na interface do usuário?
- Alertas sobre eventos do pipeline, como o sucesso ou a falha de atualizações do pipeline. Consulte Adicionar notificações email para eventos pipeline.
- Visualizando métricas para fontes de transmissão como Apache Kafka e Auto Loader (Public Preview). Ver view transmissão métricas.
- Extração de informações detalhadas sobre as atualizações do site pipeline, como linhagem de dados, métricas de qualidade de dados e uso de recursos. Consulte O que é o evento LakeFlow Declarative pipeline log?
- Definir ações personalizadas a serem tomadas quando eventos específicos ocorrerem. Consulte Definir monitoramento personalizado do pipeline declarativo LakeFlow com ganchos de eventos.
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:
- Clique em Adicionar notificação .
- Digite um ou mais endereços email para receber notificações.
- Clique na caixa de seleção de cada tipo de notificação a ser enviada para os endereços email configurados.
- 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 fluxo de trabalho ou
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 e selecione ou desmarque as colunas.
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.
- 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 valorfinance
, o senhor pode pesquisardepartment
oufinance
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
). - 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.
- Proprietário : mostre apenas o trabalho que o senhor possui.
- Favorites : mostra o trabalho que o senhor marcou como favorito.
- 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.
- execução as : Filtrar por até dois valores
run as
.
Para começar um trabalho ou um pipeline, clique no botão play. Para interromper um Job ou um pipeline, clique no botão
stop. Para acessar outras ações, clique no 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
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 ao visualizar o pipeline DAG na UI gráfica view. Para view a transmissão métrica, clique em
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.
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 |
---|---|
| Um identificador exclusivo para o registro do log de eventos. |
| Um documento JSON que contém metadados para identificar e ordenar eventos. |
| Um documento JSON contendo metadados para a origem do evento, por exemplo, o provedor de nuvem, a região do provedor de nuvem, |
| A hora em que o evento foi gravado. |
| Uma mensagem legível por humanos descrevendo o evento. |
| O tipo de evento, por exemplo, |
| A estabilidade do esquema de eventos. Os valores possíveis são: - |
| Se ocorreu um erro, detalhes descrevendo o erro. |
| Um documento JSON que contém detalhes estruturados do evento. Esse é o campo principal usado para analisar eventos. |
| O tipo de evento. |
Consultar o evento log
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.
- Para obter o comportamento do pipeline Unity Catalog que usa o modo de publicação herdado, consulte Trabalhar com o evento log para o pipeline do modo de publicação herdado Unity Catalog.
- Para conhecer o comportamento e a sintaxe do pipeline Hive metastore, consulte Trabalhar com o evento log para o pipeline Hive metastore.
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:
{
"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.
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:
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:
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:
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
|
|
---|---|
|
|
|
|
|
|
|
|
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 |
---|---|
| O número de registros que foram descartados porque falharam em uma ou mais expectativas. |
| O número de registros que atenderam aos critérios de expectativa. |
| 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:
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
|
|
|
|
---|---|---|---|
|
| 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:
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:
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
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:
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:
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:
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:
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.
SELECT timestamp, details:user_action:action, details:user_action:user_name FROM event_log_raw WHERE event_type = 'user_action'
|
|
|
---|---|---|
2021-05-20T 19:36:03.517 +0000 |
|
|
2021-05-20T 19:35:59.913 +0000 |
|
|
2021-05-27T 00:35:51.971 +0000 |
|
|
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:
SELECT details:create_update:runtime_version:dbr_version FROM event_log_raw WHERE event_type = 'create_update'
|
---|
11.0 |