Compartilhar via


Esquema de log de eventos de pipeline

O log de eventos do pipeline contém todas as informações relacionadas a um pipeline, incluindo logs de auditoria, verificações de qualidade de dados, progresso do pipeline e rastreabilidade de dados.

As tabelas a seguir descrevem o esquema de log de eventos. Alguns desses campos contêm dados JSON que exigem análise para executar algumas consultas, como o details campo. O Azure Databricks dá suporte ao : operador para analisar campos JSON. Confira operador : (sinal de dois pontos).

Observação

Alguns campos no log de eventos são para uso interno pelo Azure Databricks. A documentação a seguir descreve os campos destinados ao consumo do cliente.

Para obter detalhes sobre como usar o log de eventos do pipeline, consulte o log de eventos do Pipeline.

Objeto PipelineEvent

Representa um único evento de pipeline no log de eventos.

Campo Description
id Um identificador exclusivo para o registro de log de eventos.
sequence Uma cadeia de caracteres JSON que contém metadados para identificar e ordenar eventos.
origin Uma cadeia de caracteres JSON que contém metadados para a origem do evento, por exemplo, o provedor de nuvem, a região do provedor de nuvem, o usuário e as informações de pipeline. Consulte Objeto de origem.
timestamp A hora em que o evento foi gravado, em UTC.
message Uma mensagem legível por humanos que descreve o evento.
level O nível de aviso. Os valores possíveis são:
  • INFO: eventos informativos
  • WARN: problemas inesperados, mas não críticos
  • ERROR: falha de evento que pode precisar de atenção do usuário
  • METRICS: usado para eventos de alto volume armazenados apenas na tabela Delta e não exibidos na UI de pipelines.
maturity_level A estabilidade do esquema de eventos. Os valores possíveis são:
  • STABLE: o esquema é estável e não será alterado.
  • NULL: o esquema é estável e não será alterado. O valor poderá ser NULL se o registro tiver sido criado antes do maturity_level campo ser adicionado (versão 2022.37).
  • EVOLVING: o esquema não é estável e pode ser alterado.
  • DEPRECATED: o esquema foi preterido e o runtime do Lakeflow Spark Declarative Pipelines pode parar de produzir esse evento a qualquer momento.

Não é recomendável criar monitoramento e alertas com base nos campos EVOLVING ou DEPRECATED.
error Se ocorreu um erro, os detalhes que descrevem o erro.
details Uma cadeia de caracteres JSON que contém detalhes estruturados do evento. Esse é o campo principal usado para analisar eventos. O formato de cadeia de caracteres JSON depende do event_type. Consulte o objeto details para obter mais informações.
event_type O tipo de evento. Para obter uma lista de tipos de evento e o tipo de objeto de detalhes que eles criam, consulte o objeto Details.

O objeto de detalhes

Cada evento tem propriedades diferentes details no objeto JSON, baseado no event_type do evento. Esta tabela lista o event_type e o associado details. As details propriedades são descritas na seção Tipos de Detalhes.

Detalhes categorizados por event_type Description
create_update Captura a configuração completa que é usada para iniciar uma atualização de um pipeline. Inclui qualquer configuração definida pelo Databricks. Para obter detalhes, consulte Detalhes de create_update.
user_action Fornece detalhes sobre qualquer ação do usuário no pipeline (incluindo a criação de um pipeline, bem como iniciar ou cancelar uma atualização). Para obter detalhes, consulte Detalhes do evento de user_action.
flow_progress Descreve o ciclo de vida de um fluxo desde o início, a execução, até a conclusão ou falha. Para obter detalhes, consulte detalhes do evento flow_progress.
update_progress Descreve o ciclo de vida de uma atualização de pipeline desde a inicialização, passando pela execução, até a conclusão ou falha. Para obter detalhes, consulte Detalhes do evento update_progress.
flow_definition Define o esquema e o plano de consulta para todas as transformações que ocorrem em um determinado fluxo. Pode ser considerado como as bordas do DAG de Fluxo de dados. Ele pode ser usado para calcular a linhagem de cada fluxo, bem como para ver o plano de consulta explicado. Para obter detalhes, consulte Detalhes do evento flow_definition.
dataset_definition Define um conjunto de dados, que é a origem ou o destino de um determinado fluxo. Para mais detalhes, consulte detalhes do evento dataset_definition.
sink_definition Define um coletor determinado. Para obter detalhes, consulte Detalhes do evento sink_definition.
deprecation Lista os recursos que serão descontinuados em breve ou que estão obsoletos no momento e que são usados por esse pipeline. Para obter exemplos dos valores, consulte Detalhes de enumeração para o evento de preterimento.
cluster_resources Inclui informações sobre recursos de cluster para pipelines que estão em execução no ambiente de computação clássica. Essas métricas são preenchidas apenas para pipelines de computação clássicos. Para obter detalhes, consulte Detalhes do evento cluster_resources.
autoscale Inclui informações sobre dimensionamento automático para pipelines que estão sendo executados na computação clássica. Essas métricas são preenchidas apenas para pipelines de computação clássicos. Para obter detalhes, consulte Detalhes do evento de dimensionamento automático.
planning_information Representa informações de planejamento relacionadas à atualização incremental versus completa da exibição materializada. Pode ser usado para obter mais detalhes sobre o motivo pelo qual uma exibição materializada é totalmente recomputada. Para obter detalhes, consulte detalhes do evento planning_information.
hook_progress Um evento para indicar o status atual de um user hook durante a execução do pipeline. Usado para monitorar o status de ganchos de eventos, por exemplo, para enviar a produtos de observabilidade externa. Para obter detalhes, consulte detalhes do evento hook_progress.
operation_progress Inclui informações sobre o progresso de uma operação. Para obter detalhes, consulte Detalhes para o evento operation_progress.
stream_progress Inclui informações sobre o progresso de um pipeline. Para obter detalhes, consulte Detalhes do evento stream_progress.

Tipos de detalhes

Os objetos a seguir representam o details de um tipo de evento diferente no objeto PipelineEvent.

Detalhes de criar_atualização

Os detalhes do evento create_update.

Campo Description
dbr_version A versão do Databricks Runtime.
run_as A ID do usuário da qual a atualização será executada em nome. Normalmente, esse é o proprietário do pipeline ou um principal de serviço.
cause O motivo da atualização. Normalmente, JOB_TASK quando é executado a partir de um trabalho, ou USER_ACTION quando é executado interativamente por um usuário.

Detalhes do evento user_action

Os detalhes do evento user_action. Inclui os seguintes campos:

Campo Description
user_name O nome do usuário que acionou uma atualização do pipeline.
user_id O ID do usuário que acionou uma atualização do pipeline. Isso nem sempre é o mesmo que o usuário run_as, que pode ser uma entidade de serviço ou outro usuário.
action A ação que o usuário tomou, incluindo START e CREATE.

Detalhes do evento flow_progress

Os detalhes para um evento flow_progress.

Campo Description
status O novo status do fluxo. Pode ser uma das ações a seguir:
  • QUEUED
  • STARTING
  • RUNNING
  • COMPLETED
  • FAILED
  • SKIPPED
  • STOPPED
  • IDLE
  • EXCLUDED
metrics Métricas sobre o fluxo. Para obter detalhes, consulte FlowMetrics.
data_quality Métricas de qualidade de dados sobre o fluxo e as expectativas associadas. Para obter detalhes, consulte DataQualityMetrics.

Detalhes do evento update_progress

Os detalhes para um evento update_progress.

Campo Description
state O novo estado da atualização. Pode ser uma das ações a seguir:
  • QUEUED
  • CREATED
  • WAITING_FOR_RESOURCES
  • INITIALIZING
  • RESETTING
  • SETTING_UP_TABLES
  • RUNNING
  • STOPPING
  • COMPLETED
  • FAILED
  • CANCELED

Útil para calcular a duração de vários estágios de uma atualização de pipeline, desde a duração total até o tempo de espera por recursos, por exemplo.
cancellation_cause O motivo pelo qual uma atualização entrou no estado CANCELED. Inclui motivos como USER_ACTION ou WORKFLOW_CANCELLATION (o fluxo de trabalho que disparou a atualização foi cancelado).

Detalhes do evento flow_definition

Os detalhes para um evento flow_definition.

Campo Description
input_datasets As entradas lidas por esse fluxo.
output_dataset O conjunto de dados de saída no qual esse fluxo grava.
output_sink O coletor de saída no qual esse fluxo grava.
explain_text O plano detalhado da consulta.
schema_json Cadeia de caracteres de esquema JSON do Spark SQL.
schema Esquema desse fluxo.
flow_type O tipo de fluxo. Pode ser uma das ações a seguir:
  • COMPLETE: a tabela de streaming grava em seu destino no modo completo de streaming.
  • CHANGE: tabela de streaming que usa APPLY_CHANGES_INTO.
  • SNAPSHOT_CHANGE: tabela de streaming que usa APPLY CHANGES INTO ... FROM SNAPSHOT ....
  • APPEND: a tabela de streaming grava em seu destino no modo de acréscimo (streaming).
  • MATERIALIZED_VIEW: saídas para uma exibição materializada.
  • VIEW: saídas para uma exibição.
comment Comentário do usuário ou descrição sobre o conjunto de dados.
spark_conf Configurações do Spark definidas nesse fluxo.
language O idioma usado para criar esse fluxo. Pode ser SCALA, PYTHON ou SQL.
once Se esse fluxo foi declarado para ser executado uma vez.

Detalhes do evento dataset_definition

Os detalhes para um evento dataset_definition. Inclui os seguintes campos:

Campo Description
dataset_type Diferencia entre exibições materializadas e tabelas de streaming.
num_flows O número de fluxos gravados no conjunto de dados.
expectations As expectativas associadas ao conjunto de dados.

Detalhes do evento sink_definition

Os detalhes para um evento sink_definition.

Campo Description
format O formato do dissipador de calor.
options As opções de valor-chave associadas ao coletor.

Enumeração de detalhes para evento de preterimento

O deprecation evento tem um message campo. Os possíveis valores para o message incluem o seguinte. Essa é uma lista parcial que cresce ao longo do tempo.

Campo Description
TABLE_MANAGED_BY_MULTIPLE_PIPELINES Uma tabela é gerenciada por vários pipelines.
INVALID_CLUSTER_LABELS Uso de rótulos de cluster não suportados.
PINNED_DBR_VERSION Usando dbr_version em vez de channel nas configurações do pipeline.
PREVIOUS_CHANNEL_USED Uso do canal de lançamento PREVIOUS, que pode não estar mais disponível em uma versão futura.
LONG_DATASET_NAME Usando um nome de conjunto de dados maior que o comprimento suportado.
LONG_SINK_NAME Uso de um nome de coletor maior do que o comprimento suportado.
LONG_FLOW_NAME Uso de um nome de fluxo maior do que o comprimento suportado.
ENHANCED_AUTOSCALING_POLICY_COMPLIANCE A política de cluster só está em conformidade quando o Dimensionamento Automático Avançado usa o tamanho fixo do cluster.
DATA_SAMPLE_CONFIGURATION_KEY O uso da chave de configuração para configurar a amostragem de dados foi preterido.
INCOMPATIBLE_CLUSTER_SETTINGS As configurações atuais do cluster ou a política de cluster não são mais compatíveis com os Pipelines Declarativos do Lakeflow Spark.
STREAMING_READER_OPTIONS_DROPPED Uso de opções de leitura em streaming que foram descartadas.
DISALLOWED_SERVERLESS_STATIC_SPARK_CONFIG Não é permitida a definição de configurações estáticas do Spark através da configuração de pipeline para pipelines sem servidor.
INVALID_SERVERLESS_PIPELINE_CONFIG O cliente sem servidor fornece uma configuração de pipeline inválida.
UNUSED_EXPLICIT_PATH_ON_UC_MANAGED_TABLE Especificando caminhos de tabela explícitos não utilizados em tabelas gerenciadas por UC.
FOREACH_BATCH_FUNCTION_NOT_SERIALIZABLE A função foreachBatch fornecida não é serializável.
DROP_PARTITION_COLS_NO_PARTITIONING A remoção do atributo partition_cols não resulta em nenhum particionamento.
PYTHON_CREATE_TABLE Usando @dlt.create\_table em vez de @dp.table ou @dp.materialized\_view.
PYTHON_CREATE_VIEW Usando @dlt.create\_view em vez de @dp.temporary\_view.
PYTHON_CREATE_STREAMING_LIVE_TABLE Usando create_streaming_live_table em vez de create_streaming_table.
PYTHON_CREATE_TARGET_TABLE Usando create_target_table em vez de create_streaming_table.
FOREIGN_KEY_TABLE_CONSTRAINT_CYCLE O conjunto de tabelas gerenciadas pelo pipeline tem um ciclo no conjunto de restrições de chave estrangeira.
PARTIALLY_QUALIFIED_TABLE_REFERENCE_INCOMPATIBLE_WITH_DEFAULT_PUBLISHING_MODE Uma referência de tabela parcialmente qualificada que tem significados diferentes no modo de publicação padrão e no modo de publicação herdado.

Detalhes do evento cluster_resources

Os detalhes para um evento cluster_resources. Aplicável somente a pipelines em execução na computação clássica.

Campo Description
task_slot_metrics A métrica de slot de tarefa do cluster. Para obter detalhes, consulte o objeto TaskSlotMetrics
autoscale_info O estado dos dimensionadores automáticos. Para obter detalhes, consulte o objeto AutoscaleInfo

Detalhes do evento de autoescalonamento

Os detalhes para um evento autoscale. Os eventos de dimensionamento automático só são aplicáveis quando o pipeline usa computação clássica.

Campo Description
status Status desse evento. Pode ser uma das ações a seguir:
  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED
optimal_num_executors O número ideal de executores sugerido pelo algoritmo antes da aplicação dos limites min_workers e max_workers.
requested_num_executors O número de executores depois de truncar o número ideal de executores sugerido pelo algoritmo nos limites min_workers e max_workers.

Detalhes para o evento planning_information

Os detalhes para um evento planning_information. Útil para ver detalhes relacionados ao tipo de atualização escolhido para um determinado fluxo durante uma atualização. Pode ser usado para ajudar a depurar por que uma atualização é totalmente atualizada em vez de atualizada incrementalmente. Para obter mais detalhes sobre atualizações incrementais, consulte Atualização incremental para exibições materializadas

Campo Description
technique_information Informações relacionadas à atualização. Ele inclui informações sobre qual metodologia de atualização foi escolhida e as possíveis metodologias de atualização que foram consideradas. Útil para depurar por que uma exibição materializada não foi incrementalizada. Para obter mais detalhes, consulte TechniqueInformation.
source_table_information Informações da tabela fonte. Pode ser útil para depurar por que uma exibição materializada falhou na incrementação. Para obter detalhes, consulte o objeto TableInformation.
target_table_information Informações da tabela de destino. Para obter detalhes, consulte o objeto TableInformation.

Detalhes do evento hook_progress

Os detalhes de um evento hook_progress. Inclui os seguintes campos:

Campo Description
name O nome do gancho do usuário.
status O status do gancho do usuário.

Detalhes do evento operation_progress

Os detalhes de um evento operation_progress. Inclui os seguintes campos:

Campo Description
type O tipo de operação que está sendo acompanhada. Um destes:
  • AUTO_LOADER_LISTING
  • AUTO_LOADER_BACKFILL
  • CONNECTOR_FETCH
  • CDC_SNAPSHOT
status O status da operação. Um destes:
  • STARTED
  • COMPLETED
  • CANCELED
  • FAILED
  • IN_PROGRESS
duration_ms O tempo total decorrido da operação em milissegundos. Incluído somente no evento final (onde o status está COMPLETED, CANCELEDou FAILED).

Detalhes do evento stream_progress

Os detalhes de um evento stream_progress. Inclui o seguinte campo:

Campo Description
stream_progress Os detalhes do fluxo da pipeline. Semelhante às StreamingQueryListener métricas de Streaming Estruturado.
As diferenças são descritas nos parágrafos a seguir. Para obter a documentação completa sobre StreamingQueryListener métricas, consulte as métricas de objeto StreamingQueryListener.

Diferenças entre as métricas de objeto stream_progress e StreamingQueryListener:

  • As seguintes métricas estão presentes em StreamingQueryListener, mas não em stream_progress: numInputRows, inputRowsPerSeconde processedRowsPerSecond.
  • Para fluxos de Kafka e Kinesis, os campos startOffset, endOffset e latestOffset podem ser muito grandes e são truncados. Para cada um desses campos, campos adicionais, ...Truncated, startOffsetTruncated, endOffsetTruncated, e latestOffsetTruncated, são adicionados com um valor booliano indicando se os dados são truncados.

Outros objetos

Os objetos a seguir representam dados ou enumerações adicionais dentro dos objetos de evento.

Objeto AutoscaleInfo

As métricas de dimensionamento automático para um cluster. Aplicável somente a pipelines em execução na computação clássica.

Campo Description
state O status de Dimensionamento automático. Pode ser uma das ações a seguir:
  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED
optimal_num_executors O número ideal de executores. Esse é o tamanho ideal sugerido pelo algoritmo antes de ser truncado pelo número mínimo/máximo de executores especificado pelo usuário.
latest_requested_num_executors O número de executores solicitados do gerenciador de cluster pelo gerenciador de estado na solicitação mais recente. Esse é o número de executores para os quais o gerenciador de estado está tentando escalar e é atualizado quando o gerenciador de estado tenta sair do estado de escala em caso de tempo limite. Esse campo não será preenchido se não houver nenhuma solicitação pendente.
request_pending_seconds O período de tempo em que a solicitação de escala está pendente. Isso não será preenchido se não houver nenhuma solicitação pendente.

Objeto CostModelRejectionSubType

Uma enumeração de motivos pelos quais a incrementalização é rejeitada, com base no custo de atualização completa versus atualização incremental em um planning_information evento.

Value Description
NUM_JOINS_THRESHOLD_EXCEEDED Atualize totalmente porque a consulta contém muitas junções.
CHANGESET_SIZE_THRESHOLD_EXCEEDED Atualize totalmente porque muitas linhas nas tabelas base foram alteradas.
TABLE_SIZE_THRESHOLD_EXCEEDED Atualize totalmente porque o tamanho da tabela base excedeu o limite.
EXCESSIVE_OPERATOR_NESTING Atualize completamente porque a definição da consulta é complexa e possui muitos níveis de aninhamento de operadores.
COST_MODEL_REJECTION_SUB_TYPE_UNSPECIFIED Atualize totalmente por qualquer outro motivo.

Objeto DataQualityMetrics

Métricas sobre como as expectativas estão sendo atendidas dentro do fluxo. Usado em detalhes do evento flow_progress.

Campo Description
dropped_records O número de registros que foram descartados porque falharam em uma ou mais expectativas.
expectations Métricas para expectativas adicionadas a qualquer conjunto de dados no plano de consulta do fluxo. Quando há várias expectativas, isso pode ser usado para acompanhar quais expectativas foram atendidas ou falharam. Para obter detalhes, consulte o objeto ExpectationMetrics.

Objeto ExpectationMetrics

Métricas sobre expectativas, para uma expectativa específica.

Campo Description
name O nome da expectativa.
dataset O nome do conjunto de dados ao qual a expectativa foi adicionada.
passed_records O número de registros que passam a expectativa.
failed_records O número de registros que não atendem à expectativa. Controla se a expectativa foi atendida, mas não descreve o que acontece com os registros (gerar um aviso, registrar falha ou remover os registros).

Objeto FlowMetrics

Métricas sobre o fluxo, incluindo o total do fluxo e a divisão por fonte específica. Usado em detalhes do evento flow_progress.

Cada fonte de streaming dá suporte apenas a métricas de fluxo específicas. A tabela a seguir mostra as métricas disponíveis para fontes de streaming com suporte:

fonte bytes da lista de pendências registros de lista de pendências segundos da lista de pendências arquivos de lista de pendências
Kafka
Kinesis
Delta
Carregador Automático
Google Pub/Sub
Campo Description
num_output_rows Número de linhas de saída gravadas por uma atualização desse fluxo.
backlog_bytes Total de acúmulo em bytes em todas as fontes de entrada no fluxo de dados.
backlog_records Total da lista de pendências em todas as fontes de entrada no fluxo.
backlog_files Total de arquivos de lista de pendências em todas as fontes de entrada no fluxo.
backlog_seconds Máximo de segundos de lista de pendências em todas as fontes de entrada no fluxo.
executor_time_ms Soma de todos os tempos de execução da tarefa em milissegundos desse fluxo durante o período de relatório.
executor_cpu_time_ms Soma de todos os tempos de CPU de execução de tarefa em milissegundos desse fluxo durante o período de relatório.
num_upserted_rows Número de linhas de saída inseridas no conjunto de dados por uma atualização desse fluxo.
num_deleted_rows Número de linhas de saída existentes excluídas do conjunto de dados por uma atualização desse fluxo.
num_output_bytes Número de bytes de saída gravados por uma atualização desse fluxo.
source_metrics Métricas para cada origem de entrada no processo. Útil para monitorar o progresso da ingestão de fontes fora do Lakeflow Spark Declarative Pipelines (como Apache Kafka, Pulsar ou Auto Loader). Inclui os campos:
  • source_name: nome da origem.
  • backlog_bytes: lista de pendências como bytes para essa origem.
  • backlog_records: registros de listas de pendências para essa origem.
  • backlog_files: arquivos de lista de pendências para essa origem.
  • backlog_seconds: segundos de lista de pendências para essa fonte.

Objeto IncrementalizationIssue

Representa problemas com a incrementalização que podem causar uma atualização completa ao planejar uma atualização.

Campo Description
issue_type Um tipo de problema que pode impedir a incrementação da exibição materializada. Para obter detalhes, consulte Tipo de Problema.
prevent_incrementalization Se esse problema impediu que a incrementalização acontecesse.
table_information Informações de tabela associadas a problemas como CDF_UNAVAILABLE, INPUT_NOT_IN_DELTA, DATA_FILE_MISSING.
operator_name Informações relacionadas ao plano. Defina para problemas quando o tipo de problema é PLAN_NOT_DETERMINISTIC ou PLAN_NOT_INCREMENTALIZABLE para o operador ou a expressão que causa o não determinismo ou a não incrementabilidade.
expression_name O nome da expressão.
join_type Informações auxiliares quando o operador é uma junção. Por exemplo, JOIN_TYPE_LEFT_OUTER ou JOIN_TYPE_INNER.
plan_not_incrementalizable_sub_type Categoria detalhada quando o tipo de problema é PLAN_NOT_INCREMENTALIZABLE. Para obter detalhes, consulte o objeto PlanNotIncrementalizableSubType.
plan_not_deterministic_sub_type Categoria detalhada quando o tipo de problema é PLAN_NOT_DETERMINISTIC. Para obter detalhes, consulte o objeto PlanNotDeterministicSubType.
fingerprint_diff_before A diferença da impressão digital anterior.
fingerprint_diff_current A diferença da impressão digital atual.
cost_model_rejection_subtype Categoria detalhada quando o tipo de problema é INCREMENTAL_PLAN_REJECTED_BY_COST_MODEL. Para obter detalhes, consulte o objeto CostModelRejectionSubType.

Objeto IssueType

Uma enumeração de tipos de problema que podem causar uma atualização completa.

Value Description
CDF_UNAVAILABLE O CDF (Feed de Dados de Alteração) não está habilitado em algumas tabelas base. O table_information campo fornece informações sobre qual tabela não tem o CDF habilitado. Use ALTER TABLE <table-name> SET TBLPROPERTIES ( 'delta.enableChangeDataFeed' = true) para habilitar o CDF para a tabela base. Se a tabela de origem for uma visão materializada, o CDF deverá ser configurado para ON por padrão.
DELTA_PROTOCOL_CHANGED Atualize totalmente porque algumas tabelas base (detalhes no campo table_information) tiveram uma alteração no protocolo Delta.
DATA_SCHEMA_CHANGED Atualize totalmente porque algumas tabelas base (detalhes no table_information campo) tiveram uma alteração de esquema de dados nas colunas usadas pela definição de exibição materializada. Não é relevante se uma coluna que a exibição materializada não usa foi alterada ou adicionada à tabela base.
PARTITION_SCHEMA_CHANGED Atualize completamente porque algumas tabelas base (detalhes no campo table_information) tiveram uma alteração de esquema de partição.
INPUT_NOT_IN_DELTA Atualize completamente, pois a definição da visão materializada envolve alguma entrada não-Delta.
DATA_FILE_MISSING Atualização completa porque alguns arquivos da tabela base já foram executados vacuum devido ao seu período de retenção.
PLAN_NOT_DETERMINISTIC Atualize totalmente porque alguns operadores ou expressões na definição de exibição materializada não são determinísticos. Os campos operator_name e expression_name fornecem informações sobre qual operador ou expressão causou o problema.
PLAN_NOT_INCREMENTALIZABLE Atualize totalmente porque alguns operadores ou expressões na definição de exibição materializada não são incrementalizáveis.
SERIALIZATION_VERSION_CHANGED Atualização completa porque houve uma mudança significativa na lógica de impressão digital da consulta.
QUERY_FINGERPRINT_CHANGED Atualize totalmente porque a definição de visão materializada foi alterada ou os lançamentos do Lakeflow Spark Declarative Pipelines causaram uma alteração nos planos de avaliação de consulta.
CONFIGURATION_CHANGED Atualize totalmente porque as configurações de chave (por exemplo, spark.sql.ansi.enabled) que podem afetar a avaliação da consulta foram alteradas. A recompute completa é necessária para evitar estados inconsistentes na exibição materializada.
CHANGE_SET_MISSING Atualize totalmente porque é o primeiro cálculo da visão materializada. Esse é o comportamento esperado para a computação de exibição materializada inicial.
EXPECTATIONS_NOT_SUPPORTED Atualize totalmente porque a definição de exibição materializada inclui expectativas, que não têm suporte para atualizações incrementais. Remova as expectativas ou manipule-as fora da definição de exibição materializada se o suporte incremental for necessário.
TOO_MANY_FILE_ACTIONS Atualize totalmente porque o número de ações de arquivo excedeu o limite para o processamento incremental. Considere reduzir as alterações frequentes de arquivos em tabelas base ou aumentar os limiares.
INCREMENTAL_PLAN_REJECTED_BY_COST_MODEL Atualize totalmente porque o modelo de custo determinou que uma atualização completa é mais eficiente do que a manutenção incremental. Examine o comportamento ou a complexidade do modelo de custo do plano de consulta para permitir atualizações incrementais.
ROW_TRACKING_NOT_ENABLED Atualize totalmente porque o acompanhamento de linhas não está habilitado em uma ou mais tabelas base. Habilite o acompanhamento de linhas ao usar ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableRowTracking' = true).
TOO_MANY_PARTITIONS_CHANGED Atualize totalmente porque muitas partições foram alteradas nas tabelas base. Tente limitar o número de alterações de partição para permanecer dentro dos limites de processamento incrementais.
MAP_TYPE_NOT_SUPPORTED Atualize totalmente porque a definição de exibição materializada inclui um tipo de mapa, que não tem suporte para atualizações incrementais. Considere reestruturar os dados para evitar tipos de mapas na exibição materializada.
TIME_ZONE_CHANGED Atualize totalmente porque a configuração de fuso horário da sessão ou do sistema foi alterada.
DATA_HAS_CHANGED Atualize totalmente porque os dados relevantes para a exibição materializada foram alterados de uma maneira que impede atualizações incrementais. Avalie as alterações de dados e a estrutura da definição de exibição para garantir a compatibilidade com a lógica incremental.
PRIOR_TIMESTAMP_MISSING Atualização completa porque o registro de data e hora da última execução bem-sucedida está ausente. Isso pode ocorrer após perda de metadados ou intervenção manual.

Objeto MaintenanceType

Uma enumeração de tipos de manutenção que podem ser escolhidos durante um planning_information evento. Se o tipo não for MAINTENANCE_TYPE_COMPLETE_RECOMPUTE ou MAINTENANCE_TYPE_NO_OP, o tipo é uma atualização incremental.

Value Description
MAINTENANCE_TYPE_COMPLETE_RECOMPUTE Recompute completo; sempre mostrado.
MAINTENANCE_TYPE_NO_OP Quando as tabelas base não são alteradas.
MAINTENANCE_TYPE_PARTITION_OVERWRITE Atualize incrementalmente as partições afetadas quando a exibição materializada é co-particionada com uma das tabelas de origem.
MAINTENANCE_TYPE_ROW_BASED Atualize incrementalmente criando conjuntos de alterações modulares para várias operações, como JOIN, FILTERe UNION ALL, redigindo-os para calcular consultas complexas. Usado quando o Acompanhamento de linhas para as tabelas de origem está habilitado e há um número limitado de junções para a consulta.
MAINTENANCE_TYPE_APPEND_ONLY A atualização incremental é feita apenas computando novas linhas, pois não houve operações de atualização/inserção ou exclusões nas tabelas de origem.
MAINTENANCE_TYPE_GROUP_AGGREGATE Atualize incrementalmente calculando as alterações para cada valor agregado. Usados quando agregações associativas, como count, sum, meane stddev, estão no nível mais alto da consulta.
MAINTENANCE_TYPE_GENERIC_AGGREGATE Atualize incrementalmente calculando apenas os grupos de agregação afetados. Usado quando agregações como median (não apenas associativas) estão no nível mais alto da consulta.
MAINTENANCE_TYPE_WINDOW_FUNCTION Atualize as consultas incrementalmente com funções de janela, como PARTITION BY recompilando apenas as partições alteradas. Usado quando todas as funções de janela têm uma cláusula PARTITION BY ou uma cláusula JOIN e estão no nível superior da consulta.

Objeto Origem

Onde o evento se originou.

Campo Description
cloud O provedor de nuvem. Os valores possíveis são:
  • AWS
  • Azul
  • GCP
region A região da nuvem.
org_id A ID da organização ou a ID do workspace do usuário. Exclusivo dentro de um ambiente de nuvem. Útil para identificar o espaço de trabalho ou para combinar com outras tabelas, como tabelas de cobrança do sistema.
pipeline_id O ID do pipeline. Um identificador exclusivo para o pipeline. Útil para identificar o pipeline ou para ingressar em outras tabelas, como as tabelas de cobrança do sistema.
pipeline_type O tipo de pipeline para mostrar onde o pipeline foi criado. Os valores possíveis são:
  • DBSQL: um pipeline criado por meio do Databricks SQL.
  • WORKSPACE: um pipeline ETL criado usando o Lakeflow Spark Declarative Pipelines.
  • MANAGED_INGESTION: um pipeline de ingestão gerenciada do Lakeflow Connect.
  • BRICKSTORE: um pipeline para atualizar uma tabela online para a veiculação de recursos em tempo real.
  • BRICKINDEX: Um pipeline para atualizar um banco de dados vetorial. Para obter mais detalhes, consulte a pesquisa de vetor.
pipeline_name O nome do pipeline.
cluster_id A ID do cluster em que ocorre uma execução. Globalmente exclusivo.
update_id A ID de uma única execução do pipeline. Isso é equivalente à ID de execução.
table_name O nome da tabela (Delta) que está sendo gravada.
dataset_name O nome totalmente qualificado de um conjunto de dados.
sink_name O nome de um sumidouro.
flow_id O ID do fluxo. Acompanha o estado do fluxo que está sendo usado em várias atualizações. Desde que flow_id seja o mesmo, o fluxo é atualizado de forma incremental. O flow_id altera quando a exibição materializada é totalmente atualizada, o ponto de verificação é redefinido ou ocorre uma recomputação completa na exibição materializada.
flow_name O nome do fluxo.
batch_id O ID de um microlote. Único dentro de um fluxo.
request_id A ID da solicitação que causou uma atualização.

Objeto PlanNotDeterministicSubType

Uma enumeração de casos não determinísticos para um planning_information evento.

Value Description
STREAMING_SOURCE Atualize totalmente porque a definição de exibição materializada inclui uma fonte de streaming, que não tem suporte.
USER_DEFINED_FUNCTION Atualize totalmente porque a exibição materializada inclui uma função definida pelo usuário que não é suportada. Há suporte apenas para UDFs determinísticas do Python. Outros UDFs podem bloquear atualizações incrementais.
TIME_FUNCTION Atualize totalmente porque a exibição materializada inclui uma função baseada em tempo, como CURRENT_DATE ou CURRENT_TIMESTAMP. A expression_name propriedade fornece o nome da função sem suporte.
NON_DETERMINISTIC_EXPRESSION Atualize totalmente porque a consulta inclui uma expressão não determinística, como RANDOM(). A expression_name propriedade indica a função não determinística que impede a manutenção incremental.

Objeto PlanNotIncrementalizableSubType

Uma enumeração de motivos pelos quais um plano de atualização pode não ser incrementalizável.

Value Description
OPERATOR_NOT_SUPPORTED Atualização completa porque o plano de consulta inclui um operador não suportado. A operator_name propriedade fornece o nome do operador sem suporte.
AGGREGATE_NOT_TOP_NODE Faça uma atualização completa porque um operador de agregação (GROUP BY) não está no nível superior do plano de consulta. A manutenção incremental dá suporte a agregações apenas no nível superior. Considere definir duas visões materializadas para separar a agregação.
AGGREGATE_WITH_DISTINCT Atualize totalmente porque a agregação inclui uma DISTINCT cláusula, que não tem suporte para atualizações incrementais.
AGGREGATE_WITH_UNSUPPORTED_EXPRESSION Atualize totalmente porque a agregação inclui expressões sem suporte. A expression_name propriedade indica a expressão problemática.
SUBQUERY_EXPRESSION Atualize totalmente porque a definição de visão materializada inclui uma expressão de subconsulta, que não é suportada.
WINDOW_FUNCTION_NOT_TOP_LEVEL Atualização completa porque uma função de janela não está no nível superior do plano de consulta.
WINDOW_FUNCTION_WITHOUT_PARTITION_BY Totalmente atualizado porque uma função de janela é definida sem uma cláusula PARTITION BY.

Objeto TableInformation

Representa detalhes de uma tabela considerada durante um planning_information evento.

Campo Description
table_name Nome da tabela usado na consulta do Unity Catalog ou metastore do Hive. Pode não estar disponível no caso de acesso baseado em caminho.
table_id Obrigatório O ID da tabela do log Delta.
catalog_table_type Tipo da tabela, conforme especificado no catálogo.
partition_columns Colunas de partição da tabela.
table_change_type Altere o tipo na tabela. Uma opção entre TABLE_CHANGE_TYPE_UNKNOWN, TABLE_CHANGE_TYPE_APPEND_ONLY e TABLE_CHANGE_TYPE_GENERAL_CHANGE.
full_size O tamanho total da tabela em número de bytes.
change_size Tamanho das linhas modificadas em arquivos alterados. Ele é calculado usando change_file_read_size * num_changed_rows / num_rows_in_changed_files.
num_changed_partitions Número de partições alteradas.
is_size_after_pruning Se full_size e change_size representam dados após a poda de arquivos estáticos.
is_row_id_enabled Se o ID de linha está habilitado na tabela.
is_cdf_enabled Se o CDF está habilitado na tabela.
is_deletion_vector_enabled Se o vetor de exclusão está habilitado na tabela.
is_change_from_legacy_cdf Se a alteração da tabela é do CDF herdado ou do CDF baseado em ID de linha.

Objeto TaskSlotMetrics

As métricas de alocação de tarefas para um cluster. Aplica-se apenas a atualizações de pipeline em execução na computação clássica.

Campo Description
summary_duration_ms A duração em milissegundos sobre a qual as métricas de agregação (por exemplo, avg_num_task_slots) são calculadas.
num_task_slots O número de slots de tarefas do Spark no instante do relatório.
avg_num_task_slots O número médio de slots de tarefas do Spark durante a duração do resumo.
avg_task_slot_utilization A utilização média do slot de tarefa (número de tarefas ativas dividido pelo número de slots de tarefa) durante a duração do resumo.
num_executors O número de executores do Spark no momento do relatório.
avg_num_queued_tasks O tamanho médio da fila de tarefas (número de tarefas totais menos o número de tarefas ativas) durante a duração resumida.

Objeto Informação Técnica

Atualize as informações de metodologia para um evento de planejamento.

Campo Description
maintenance_type Tipo de manutenção relacionado a essa informação.
Se o tipo não for MAINTENANCE_TYPE_COMPLETE_RECOMPUTE ou MAINTENANCE_TYPE_NO_OP, o fluxo é atualizado incrementalmente.
Para obter detalhes, consulte o objeto MaintenanceType.
is_chosen Verdadeiro para a técnica que foi escolhida para a atualização.
is_applicable Se o tipo de manutenção é aplicável.
incrementalization_issues Problemas de incrementação que podem fazer com que uma atualização seja totalmente atualizada. Para obter detalhes, consulte o objeto IncrementalizationIssue.
change_set_information Informações sobre o conjunto final de alterações. Os valores são um dos seguintes:
  • CHANGE_SET_TYPE_APPEND_ONLY
  • CHANGE_SET_TYPE_GENERAL_ROW_CHANGE