Partilhar via


Esquema do log de eventos do pipeline

O registo de eventos do pipeline contém todas as informações relacionadas a um pipeline, incluindo registos de auditoria, verificações de qualidade de dados, progresso do pipeline e proveniência de dados.

As tabelas a seguir descrevem o esquema do 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. Consulte : (sinal de dois pontos) operador.

Observação

Alguns campos no log de eventos são para uso interno do 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 Log de eventos do pipeline.

Objeto PipelineEvent

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

Campo Description
id Um identificador exclusivo para o registro do log de eventos.
sequence Uma cadeia de caracteres JSON contendo metadados para identificar e ordenar eventos.
origin Uma cadeia de caracteres JSON contendo metadados para a origem do evento, por exemplo, o provedor de nuvem, a região do provedor de nuvem, usuário e informações de pipeline. Consulte Objeto Origin.
timestamp A hora em que o evento foi gravado, em UTC.
message Uma mensagem legível por humanos descrevendo o evento.
level O nível de alerta. 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 somente na tabela Delta e não mostrados na UI dos 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 pode ser NULL se o registro foi criado antes do maturity_level campo ser adicionado (versão 2022.37).
  • EVOLVING: O esquema não é estável e pode mudar.
  • DEPRECATED: O esquema foi preterido e o tempo de execução do Lakeflow Spark Declarative Pipelines pode parar de produzir esse evento a qualquer momento.

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

O objeto de detalhe

Cada evento tem propriedades diferentes details no objeto JSON, com base 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 digitados por event_type Description
create_update Captura a configuração completa que é usada para iniciar uma atualização do pipeline. Inclui qualquer configuração definida pelo Databricks. Para obter detalhes, consulte Detalhes sobre 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 user_action.
flow_progress Descreve o ciclo de vida de um fluxo desde o início, 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 o início e execução até à conclusão ou falha. Para obter detalhes, consulte Detalhes para evento update_progress.
flow_definition Define o esquema e o plano de consulta para quaisquer transformações que ocorram em um determinado fluxo. Pode ser considerado como as bordas do DAG de fluxo de dados. Ele pode ser usado para calcular a linhagem para cada fluxo, bem como para ver o plano de consulta explicado. Para obter detalhes, consulte Detalhes para o evento flow_definition.
dataset_definition Define um conjunto de dados, que é a origem ou o destino de um determinado fluxo. Para obter detalhes, consulte Detalhes do evento dataset_definition.
sink_definition Define uma determinada pia. Para obter detalhes, consulte Detalhes para sink_definition evento.
deprecation Lista as funcionalidades usadas por este pipeline que estão, ou estarão em breve, preteridas. Para obter exemplos dos valores, consulte Enum de detalhes para evento de depreciação.
cluster_resources Inclui informações sobre recursos de cluster 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 cluster_resources.
autoscale Inclui informações sobre dimensionamento automático para pipelines que estão sendo executados em 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 as informações de planejamento relacionadas à exibição materializada incremental vs. atualização completa. Pode ser usado para obter mais detalhes sobre por que uma visão materializada é totalmente recalculada. Para obter detalhes, consulte detalhes do evento de informações de planejamento.
hook_progress Um evento para indicar o status atual de um gancho de usuário durante a execução do pipeline. Usado para monitorar o status de ganchos de eventos, por exemplo, para enviar para produtos de observabilidade externos. 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 do evento operation_progress.
stream_progress Inclui informações sobre o avanço de um pipeline. Para obter detalhes, consulte Detalhes do evento stream_progress.

Tipos de detalhes

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

Detalhes sobre create_update

Os detalhes do evento create_update.

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

Detalhes do evento user_action

Os detalhes do evento user_action. Inclui os seguintes campos:

Campo Description
user_name O nome do utilizador que disparou uma actualização de um pipeline.
user_id O ID do utilizador que despoletou uma atualização de pipeline. Isso nem sempre é o mesmo que o run_as usuário, que pode ser um principal 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 de um flow_progress evento.

Campo Description
status O novo status do fluxo. Pode ser um dos seguintes:
  • 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 expectativas associadas. Para obter detalhes, consulte DataQualityMetrics.

Detalhes do evento update_progress

Os detalhes de um update_progress evento.

Campo Description
state O novo estado da atualização. Pode ser um dos seguintes:
  • 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 gasto aguardando 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 de um flow_definition evento.

Campo Description
input_datasets As entradas lidas por este 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 de consulta explicado.
schema_json Cadeia de caracteres do esquema JSON do Spark SQL.
schema Esquema deste fluxo.
flow_type O tipo de fluxo. Pode ser um dos seguintes:
  • COMPLETE: A tabela de streaming grava em seu destino no modo completo (streaming).
  • CHANGE: Tabela de streaming usando APPLY_CHANGES_INTO.
  • SNAPSHOT_CHANGE: Tabela de streaming usando APPLY CHANGES INTO ... FROM SNAPSHOT ....
  • APPEND: A tabela de streaming grava em seu destino no modo append (streaming).
  • MATERIALIZED_VIEW: Saídas para uma visão materializada.
  • VIEW: Saída para uma visualização.
comment Comentário ou descrição do usuário sobre o conjunto de dados.
spark_conf Configurações Spark definidas neste fluxo.
language A linguagem usada para criar esse fluxo. Pode ser SCALA, PYTHON, ou SQL.
once Se esse fluxo foi declarado para ser executado apenas uma vez.

Detalhes sobre o evento de definição de conjunto de dados

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

Campo Description
dataset_type Diferencia entre visualizaçõ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 de um sink_definition evento.

Campo Description
format O formato da pia.
options As opções de chave-valor associadas ao coletor.

Enum de detalhes para evento de depreciação

O deprecation evento tem um message campo. Os valores possíveis para o message incluem o seguinte. Esta é 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 Usando rótulos de cluster que não são suportados.
PINNED_DBR_VERSION Usando dbr_version em vez de channel nas configurações de pipeline.
PREVIOUS_CHANNEL_USED Usando o canal PREVIOUS de lançamento, que pode desaparecer em uma futura versão.
LONG_DATASET_NAME Usando um nome de conjunto de dados maior do que o comprimento suportado.
LONG_SINK_NAME Usando um nome de coletor maior do que o comprimento suportado.
LONG_FLOW_NAME Usando um nome de fluxo maior do que o comprimento suportado.
ENHANCED_AUTOSCALING_POLICY_COMPLIANCE A política de cluster só está em conformidade quando a funcionalidade de Dimensionamento Automático Avançado utiliza um tamanho de cluster fixo.
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 de cluster ou a política de cluster não são mais compatíveis com os Lakeflow Spark Declarative Pipelines.
STREAMING_READER_OPTIONS_DROPPED Usando opções de leitor de streaming que são descartadas.
DISALLOWED_SERVERLESS_STATIC_SPARK_CONFIG Não é permitido definir configurações estáticas do Spark por meio da configuração de pipeline para pipelines sem servidor.
INVALID_SERVERLESS_PIPELINE_CONFIG O cliente sem servidor fornece configuração de pipeline inválida.
UNUSED_EXPLICIT_PATH_ON_UC_MANAGED_TABLE Especificação de 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 Remover o atributo partition_cols 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 geridas 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 de um cluster_resources evento. Aplicável apenas para pipelines em execução em computação tradicional.

Campo Description
task_slot_metrics As métricas dos slots de tarefas do cluster. Para obter detalhes, consulte TaskSlotMetrics objeto
autoscale_info O estado dos escaladores automáticos. Para obter detalhes, consulte Objeto AutoscaleInfo

Detalhes do evento de dimensionamento automático

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

Campo Description
status Estado deste evento. Pode ser um dos seguintes:
  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED
optimal_num_executors O número ideal de executores sugerido pelo algoritmo antes de aplicar min_workers e max_workers limites.
requested_num_executors O número de executores depois de truncar o número ideal de executores sugerido pelo algoritmo para min_workers e max_workers limites.

Detalhes para o evento de informações de planejamento

Os detalhes de um planning_information evento. Ú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 incrementalmente atualizada. Para obter mais detalhes sobre atualizações incrementais, consulte Atualização incremental para exibições materializadas

Campo Description
technique_information Atualizar informações relacionadas. Inclui informações sobre a metodologia de atualização escolhida e as possíveis metodologias de atualização que foram consideradas. Útil para depurar por que uma vista materializada falhou ao incrementalizar. Para obter mais detalhes, consulte TechniqueInformation.
source_table_information Informações da tabela de origem. Pode ser útil para depurar por que uma vista materializada não conseguiu atualizar incrementalmente. 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 de usuário.
status O estado do hook de utilizador.

Detalhes do evento operation_progress

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

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

Detalhes para o evento de stream_progress

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

Campo Description
stream_progress Os detalhes do fluxo do gasoduto. Semelhante às métricas do StreamingQueryListener Structured Streaming (Transmissão Estruturada).
As diferenças são descritas nos parágrafos seguintes. Para obter documentação completa sobre StreamingQueryListener métricas, consulte Métricas de objeto StreamingQueryListener.

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

  • As métricas a seguir estão presentes em StreamingQueryListener, mas não em stream_progress: numInputRows, inputRowsPerSecond, e processedRowsPerSecond.
  • Para fluxos Kafka e Kineses, os campos startOffset, endOffset e latestOffset podem ser muito grandes e são truncados. Para cada um desses campos, um campo adicional ...Truncated , startOffsetTruncated, endOffsetTruncatede latestOffsetTruncated, é adicionado com um valor booleano para saber se os dados estão truncados.

Outros objetos

Os objetos a seguir representam dados adicionais ou enums dentro dos objetos de evento.

Objeto AutoscaleInfo

As métricas de dimensionamento automático para um cluster. Aplicável apenas para pipelines em execução em computação tradicional.

Campo Description
state O status de dimensionamento automático. Pode ser um dos seguintes:
  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED
optimal_num_executors O número ideal de executores. Este é 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 solicitado ao gerenciador de cluster pelo gerente de estado na última solicitação. Este é o número de executores para os quais o gestor de estado está a tentar escalar e é atualizado quando tenta sair do estado de dimensionamento em caso de expiração do tempo limite. Este 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 dimensionamento está pendente. Isso não será preenchido se não houver nenhuma solicitação pendente.

Objeto CostModelRejectionSubType

Uma série de razões pelas quais a incrementalização é rejeitada, com base no custo da atualização completa versus a atualização incremental em um planning_information evento.

Valor 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 de consulta é complexa e tem muitos níveis de aninhamento de operador.
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 de um flow_progress evento.

Campo Description
dropped_records O número de registos que foram eliminados por não cumprirem uma ou mais expectativas.
expectations Métricas para expectativas adicionadas a qualquer conjunto de dados no plano de consulta do fluxo de dados. Quando há várias expectativas, isso pode ser usado para rastrear quais expectativas foram atendidas ou fracassadas. 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 registos que ultrapassam a expectativa.
failed_records O número de registros que não correspondem à expectativa. Rastreia se a expectativa foi cumprida, mas não descreve o que acontece com os registos (alertar, falhar ou excluir os registos).

Objeto FlowMetrics

Métricas sobre o fluxo, incluindo o total do fluxo e discriminadas por fonte específica. Usado em detalhes de um flow_progress evento.

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

origem bytes da lista de pendências Registos de pendências segundos de pendências Arquivos pendentes
Kafka
Kinesis
Delta
Carregador Automático
Google Pub/Sub
Campo Description
num_output_rows Número de linhas de saída escritas por uma atualização deste fluxo.
backlog_bytes Atraso total em bytes em todas as fontes de entrada do fluxo.
backlog_records Registos totais de pendentes em todas as fontes de entrada em fluxo.
backlog_files Total de arquivos acumulados de todas as fontes de entrada no fluxo.
backlog_seconds Máximo de segundos de atraso em todas as fontes de entrada no fluxo.
executor_time_ms Soma de todos os tempos de execução de tarefas 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 tarefas 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 fonte de entrada no fluxo. Ú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: O nome da fonte.
  • backlog_bytes: Resíduo em bytes para esta fonte.
  • backlog_records: Registros de lista de pendências para esta fonte.
  • backlog_files: Arquivos acumulados para esta fonte.
  • backlog_seconds: Segundos de fila de espera para esta fonte.

Objeto IncrementalizationIssue

Representa problemas com incrementalização que podem causar uma atualização completa ao planear uma modificação.

Campo Description
issue_type Um tipo de problema que poderia impedir a atualização incremental da visão materializada. Para obter detalhes, consulte Tipo de problema.
prevent_incrementalization Se esse problema impediu que a incrementalização acontecesse.
table_information Informações da tabela associadas a problemas como CDF_UNAVAILABLE, INPUT_NOT_IN_DELTA, DATA_FILE_MISSING.
operator_name Informações relacionadas com o plano. Defina para problemas quando o tipo de problema é ou PLAN_NOT_DETERMINISTIC ou PLAN_NOT_INCREMENTALIZABLE, em relação ao operador ou expressão que causa o não-determinismo ou a não-incrementalizabilidade.
expression_name O nome da expressão.
join_type Informações auxiliares quando o operador é um join. 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 na 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

Um enum de tipos de problema que podem causar uma atualização completa.

Valor Description
CDF_UNAVAILABLE CDF (Change Data Feed) não está habilitado em algumas tabelas base. O table_information campo fornece informações sobre qual tabela não tem 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 exibição materializada, o CDF deve ser definido como ON por padrão.
DELTA_PROTOCOL_CHANGED Atualização total porque algumas tabelas base tiveram uma alteração no protocolo Delta (detalhes no campo table_information).
DATA_SCHEMA_CHANGED Atualização total porque algumas tabelas base (detalhes no table_information campo) tiveram uma alteração no 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 tiver sido alterada ou adicionada à tabela base.
PARTITION_SCHEMA_CHANGED Atualize totalmente porque algumas tabelas base (detalhes no campo table_information) tiveram uma alteração de esquema de partição.
INPUT_NOT_IN_DELTA Atualize totalmente porque a definição de exibição materializada envolve alguma entrada não-Delta.
DATA_FILE_MISSING Atualize completamente porque alguns ficheiros de tabela base já foram compactados 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 deterministas. Os operator_name campos 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 Reiniciar completamente porque houve uma mudança significativa na lógica de impressão digital da consulta.
QUERY_FINGERPRINT_CHANGED Atualização total porque a definição de exibição materializada foi alterada ou as liberações do Lakeflow Spark Declarative Pipelines causaram uma alteração nos planos de avaliação da 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. O recálculo completo é necessário para evitar estados inconsistentes na visão materializada.
CHANGE_SET_MISSING Atualize totalmente porque é o primeiro cálculo da visão materializada. Este é o comportamento esperado para a computação de visualização materializada inicial.
EXPECTATIONS_NOT_SUPPORTED Atualização total porque a definição de exibição materializada inclui expectativas, que não são suportadas para atualizações incrementais. Remova as expectativas ou manipule-as fora da definição de exibição materializada, se for necessário suporte incremental.
TOO_MANY_FILE_ACTIONS Atualize totalmente porque o número de ações de arquivo excedeu o limite para processamento incremental. Considere reduzir a rotatividade de arquivos em tabelas base ou aumentar os limites.
INCREMENTAL_PLAN_REJECTED_BY_COST_MODEL Atualização total porque o modelo de custo determinou que uma atualização completa é mais eficiente do que a manutenção incremental. Analise o comportamento do modelo de custo ou a complexidade do plano de consulta para permitir atualizações incrementais.
ROW_TRACKING_NOT_ENABLED Atualização total porque o rastreamento de linhas não está habilitado em uma ou mais tabelas base. Habilite o acompanhamento de linhas usando 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 ficar dentro dos limites de processamento incremental.
MAP_TYPE_NOT_SUPPORTED Atualização total porque a definição de exibição materializada inclui um tipo de mapa, que não é suportado para atualizações incrementais. Considere reestruturar os dados para evitar tipos de mapa na visualizaçã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 forma 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 Atualize totalmente porque o carimbo de data/hora da última execução bem-sucedida está ausente. Isso pode ocorrer após perda de metadados ou intervenção manual.

Objeto MaintenanceType

Um conjunto 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 será uma atualização incremental.

Valor Description
MAINTENANCE_TYPE_COMPLETE_RECOMPUTE Recomputação completa; sempre visível.
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 for coparticionada 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, compondo-os para calcular consultas complexas. Usado quando o rastreamento de linha para as tabelas de origem está habilitado e há um número limitado de junções na consulta.
MAINTENANCE_TYPE_APPEND_ONLY Atualize incrementalmente calculando apenas as novas linhas, porque não houve upserts ou exclusões nessas tabelas de origem.
MAINTENANCE_TYPE_GROUP_AGGREGATE Atualize incrementalmente calculando as alterações para cada valor agregado. Usado quando agregações associativas, como count, sum, mean, e stddev, estão no nível mais alto da consulta.
MAINTENANCE_TYPE_GENERIC_AGGREGATE Atualize incrementalmente calculando apenas os grupos agregados afetados. Usado quando agregados como median (não apenas associativos) estão no nível mais alto da consulta.
MAINTENANCE_TYPE_WINDOW_FUNCTION Atualize incrementalmente as consultas com funções de janela, como PARTITION BY, ao recalcular apenas as partições alteradas. Usado quando todas as funções de janela têm uma cláusula PARTITION BY ou JOIN e estão no nível mais alto da consulta.

Objeto de origem

Local de origem do evento.

Campo Description
cloud O provedor de nuvem. Os valores possíveis são:
  • AWS
  • Azure
  • GCP
region A região da nuvem.
org_id O ID da organização ou ID do espaço de trabalho do usuário. Único dentro de uma nuvem. Útil para identificar o espaço de trabalho ou para se juntar a outras tabelas, como tabelas de faturamento do sistema.
pipeline_id O id do gasoduto. Um identificador exclusivo para o pipeline. Útil para identificar o pipeline ou para unir a outras tabelas, como as tabelas de faturamento do sistema.
pipeline_type O tipo do pipeline que indica onde o pipeline foi criado. Os valores possíveis são:
  • DBSQL: Um canal de processamento criado via SQL do Databricks.
  • WORKSPACE: Um pipeline de ETL criado através do Lakeflow Spark Declarative Pipelines.
  • MANAGED_INGESTION: Um pipeline de ingestão gerido pelo Lakeflow Connect.
  • BRICKSTORE: Um pipeline para atualizar uma tabela online para disponibilização de funcionalidades em tempo real.
  • BRICKINDEX: Um pipeline para atualizar um banco de dados vetorial. Para obter mais detalhes, consulte Pesquisa vetorial.
pipeline_name O nome do gasoduto.
cluster_id A id do cluster onde uma execução acontece. Globalmente único.
update_id O identificador de uma única execução do pipeline. Isso é equivalente ao ID de execução.
table_name O nome da tabela (Delta) para a qual se está a gravar.
dataset_name O nome totalmente qualificado de um conjunto de dados.
sink_name O nome de uma pia.
flow_id O id do fluxo. Monitoriza o estado do fluxo utilizado em várias atualizações. Desde que o flow_id seja o mesmo, o fluxo é incrementalmente refrescante. As alterações de flow_id ocorrem quando a vista materializada é completamente atualizada, o ponto de verificação é reiniciado, ou uma recomputação completa ocorre dentro da vista materializada.
flow_name O nome do fluxo.
batch_id O identificador de um microlote. Único dentro de um fluxo.
request_id A id da solicitação que causou uma atualização.

Objeto do tipo PlanNotDeterministicSubType

Um enum de casos não determinísticos para um planning_information evento.

Valor Description
STREAMING_SOURCE Atualize totalmente porque a definição de exibição materializada inclui uma fonte de streaming, que não é suportada.
USER_DEFINED_FUNCTION Atualize totalmente porque a exibição materializada inclui uma função definida pelo usuário não suportada. Apenas UDFs Python determinísticos são suportados. Outras UDFs podem impedir 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 série de razões pelas quais um plano de atualização pode não ser incrementalizável.

Valor Description
OPERATOR_NOT_SUPPORTED Atualize totalmente porque o plano de consulta inclui um operador sem suporte. A operator_name propriedade fornece o nome do operador sem suporte.
AGGREGATE_NOT_TOP_NODE Atualize totalmente porque um operador agregado (GROUP BY) não está no nível superior do plano de consulta. A manutenção incremental suporta apenas agregações no nível mais alto. Considere definir duas vistas materializadas para separar as agregações.
AGGREGATE_WITH_DISTINCT Atualize totalmente porque a agregação inclui uma DISTINCT cláusula, que não é suportada 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 exibição materializada inclui uma expressão de subconsulta, que não é suportada.
WINDOW_FUNCTION_NOT_TOP_LEVEL Atualize totalmente porque uma função de janela não está no nível superior do plano de consulta.
WINDOW_FUNCTION_WITHOUT_PARTITION_BY Atualize totalmente porque uma função de janela é definida sem uma PARTITION BY cláusula.

Objeto TableInformation

Representa os detalhes de uma tabela considerada durante um planning_information evento.

Campo Description
table_name Nome da tabela usado na consulta do Unity Catalog ou do metastore do Hive. Poderá não estar disponível em caso de acesso por caminho.
table_id Required. ID da tabela do log Delta.
catalog_table_type Tipo de tabela conforme especificado no catálogo.
partition_columns Colunas de partição da tabela.
table_change_type Altere o tipo na tabela. Um dos: TABLE_CHANGE_TYPE_UNKNOWN, TABLE_CHANGE_TYPE_APPEND_ONLY, TABLE_CHANGE_TYPE_GENERAL_CHANGE.
full_size O tamanho total da tabela em número de bytes.
change_size Tamanho das linhas alteradas nos ficheiros alterados. É calculado utilizando 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 remoção de arquivo estático.
is_row_id_enabled Se o ID da linha está habilitado na tabela.
is_cdf_enabled Se o CDF está ativado 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 é de CDF herdado ou CDF baseado em ID de linha.

Objeto TaskSlotMetrics

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

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

Objeto Informação Técnica

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

Campo Description
maintenance_type Tipo de manutenção relacionado com esta 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 Objeto MaintenanceType.
is_chosen Verdadeiro para a técnica que foi escolhida para a actualização.
is_applicable Se o tipo de manutenção é aplicável.
incrementalization_issues Problemas de incrementalizaçã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 de alterações final produzido. Os valores são um dos seguintes:
  • CHANGE_SET_TYPE_APPEND_ONLY
  • CHANGE_SET_TYPE_GENERAL_ROW_CHANGE