Pular para o conteúdo principal

LakeFlow Esquema de e e de eventos declarativos do pipeline log

O evento de pipeline declarativo LakeFlow log contém todas as informações relacionadas a um pipeline, incluindo auditoria logs, verificações de qualidade de dados, progresso de pipeline e linhagem de dados.

As tabelas a seguir descrevem o esquema do log de eventos. Alguns desses campos contêm dados JSON que requerem análise para realizar algumas consultas, como o campo “ details ”. O Databricks oferece suporte ao operador : para analisar campos JSON. Consulte o operador: (sinal de dois pontos).

nota

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

Para obter detalhes sobre como utilizar o LakeFlow evento de pipeline declarativo “ ” (Executar ação de pipeline),log consulte. Para obter detalhes sobre como utilizar o evento de LakeFlow pipeline declarativo “ ”(Executar ação de pipeline), consulte.log

Objeto PipelineEvent

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

campo

Descrição

id

Um identificador exclusivo para o registro do log de eventos.

sequence

Uma string de tipo " JSON " contendo metadados para identificar e ordenar eventos.

origin

Uma cadeia de caracteres " JSON " contendo metadados sobre a origem do evento, por exemplo, o provedor de nuvem, a região do provedor de nuvem, o usuário e uma informação " 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 aviso. Os valores possíveis são:

  • INFO: Eventos informativos
  • WARN: Problemas inesperados, mas não críticos
  • ERROR: Falha em um evento que pode precisar da atenção do usuário
  • METRICS: Utilizado para eventos de grande volume armazenados apenas na tabela “ Delta ” e não exibidos na interface do usuário do pipeline.

maturity_level

A estabilidade do esquema de eventos. Os valores possíveis são:

  • STABLE: O esquema é estável e não mudará.
  • NULL: O esquema é estável e não mudará. O valor pode ser NULL se o registro tiver sido criado antes da adição do campo maturity_level (versão 2022.37).
  • EVOLVING: O esquema não é estável e pode mudar.
  • DEPRECATEDO esquema está obsoleto e o tempo de execução do pipeline declarativo LakeFlow pode parar de produzir este evento a qualquer momento.

Não é recomendável criar monitoramento ou alerta com base nos campos “ EVOLVING ” ou “ DEPRECATED ”.

error

Se ocorreu um erro, detalhes descrevendo o erro.

details

Uma string JSON e contendo detalhes estruturados do evento. Esse é o campo principal usado para analisar eventos. O formato das cadeias de caracteres do JSON depende do event_type. Consulte o objeto Detalhes para obter mais informações.

event_type

O tipo de evento. Para obter uma lista dos tipos de eventos e o tipo de objeto de detalhes que eles criam, consulte O objeto de detalhes.

O objeto de detalhes

Cada evento possui diferentes propriedades de " details " no objeto JSON, com base no " event_type " do evento. Essa tabela lista o event_type e o details associado. As propriedades details são descritas na seção Tipos de detalhes.

Digite os detalhes por event_type

Descrição

create_update

Captura a configuração completa utilizada para iniciar uma atualização do 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 o início ou cancelamento de 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, 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 o início, 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 quaisquer transformações que ocorram em um determinado fluxo. Podem ser considerados os limites do Dataflow DAG. 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 " dataset", que é a origem ou o destino de um determinado fluxo. Para obter detalhes, consulte Detalhes do evento dataset_definition.

sink_definition

Define um determinado coletor. Para obter detalhes, consulte Detalhes do evento sink_definition.

deprecation

Lista os recursos que estão prestes a ser ou já foram descontinuados e que este pipeline utiliza. Para obter exemplos dos valores, consulte a enumeração Details para o evento de depreciação.

cluster_resources

Inclui informações sobre o recurso de agrupamento para pipelines em execução no compute clássico. Essas métricas são preenchidas apenas para o pipeline clássico de compute. Para obter detalhes, consulte Detalhes do evento cluster_resources.

autoscale

Inclui informações sobre o ajuste automático para pipelines em execução no compute clássico. Essas métricas são preenchidas apenas para o pipeline clássico de compute. Para obter detalhes, consulte Detalhes do evento “ autoscale”.

planning_information

Representa informações de planejamento relacionadas à materialização de view incremental vs. full refresh. Pode ser utilizado para obter mais detalhes sobre o motivo pelo qual uma expressão materializada ( view ) é totalmente recalculada. Para obter detalhes, consulte Detalhes do evento planning_information.

hook_progress

Um evento para indicar o status atual de um gancho do usuário durante a execução do pipeline. Utilizado para monitorar o status de ganchos de eventos, por exemplo, para enviar para um produto de observabilidade externo. Para obter detalhes, consulte Detalhes do evento hook_progress.

operation_progress

Inclui informações sobre o andamento das operações. Para obter detalhes, consulte Detalhes do 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 create_update

Os detalhes do evento create_update.

campo

Descrição

dbr_version

A versão do Databricks Runtime.

run_as

A ID do usuário em nome do qual a atualização será executada. Normalmente, trata-se do proprietário do pipeline ou de uma entidade de serviço.

cause

O motivo da atualização. Normalmente, JOB_TASK se for executado a partir de uma tarefa, 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

Descrição

user_name

O nome do usuário que acionou uma atualização do pipeline.

user_id

A identificação 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 realizou, incluindo START e CREATE.

Detalhes do evento flow_progress

Os detalhes de um evento flow_progress.

campo

Descrição

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 dos dados sobre o fluxo e expectativas associadas. Para obter detalhes, consulte DataQualityMetrics.

Detalhes do evento update_progress

Os detalhes de um evento update_progress.

campo

Descrição

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árias etapas de uma atualização de e pipeline, desde a duração total até o tempo gasto aguardando o recurso, 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 acionou a atualização foi cancelado).

Detalhes do evento flow_definition

Os detalhes de um evento flow_definition.

campo

Descrição

input_datasets

As entradas lidas por esse fluxo.

output_dataset

O e dataset e de saída no qual este fluxo grava.

output_sink

O coletor de saída no qual esse fluxo grava.

explain_text

O plano de consulta explicado.

schema_json

Spark SQL JSON cadeias de caracteres do esquema.

schema

Esquema desse fluxo.

flow_type

O tipo de fluxo. Pode ser um dos seguintes:

  • COMPLETE: a tabela de transmissão grava em seu destino no modo completo (transmissão).

  • CHANGE: tabela de transmissão utilizando APPLY_CHANGES_INTO.

  • SNAPSHOT_CHANGE: tabela de transmissão utilizando APPLY CHANGES INTO ... FROM SNAPSHOT ....

  • APPEND: a tabela transmissão grava em seu destino no modo append (transmissão).

  • MATERIALIZED_VIEW: Saídas para um objeto materializado ( view).

  • VIEW: Saídas para um dispositivo de saída ( view).

comment

Comentário ou descrição do usuário sobre o dataset.

spark_conf

Configurar as confs do Spark neste fluxo.

language

A linguagem usada para criar esse fluxo. Pode ser SCALA, PYTHON ou SQL.

once

Se este fluxo foi declarado para execução uma vez.

Detalhes do evento dataset_definition

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

campo

Descrição

dataset_type

Diferencia entre visualizações materializadas e tabelas de transmissão.

num_flows

O número de fluxos que estão gravando no dataset.

expectations

As expectativas associadas ao dataset.

Detalhes do evento sink_definition

Os detalhes de um evento sink_definition.

campo

Descrição

format

O formato da pia.

options

As opções de valor de erro ( key) associadas ao coletor.

Enumero de detalhes para evento de depreciação

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

campo

Descrição

TABLE_MANAGED_BY_MULTIPLE_PIPELINES

Uma tabela é gerenciada por vários pipelines.

INVALID_CLUSTER_LABELS

Utilização de rótulos de agrupamento que não são suportados.

PINNED_DBR_VERSION

Utilizando dbr_version em vez de channel nas configurações do pipeline.

PREVIOUS_CHANNEL_USED

Utilizando o canal de lançamento PREVIOUS, que poderá ser descontinuado em uma versão futura.

LONG_DATASET_NAME

Usando um nome de conjunto de dados maior do que o tamanho suportado.

LONG_SINK_NAME

Usando um nome de coletor maior do que o tamanho 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ó é cumprida quando o Enhanced autoscale utiliza um tamanho de clustering fixo.

DATA_SAMPLE_CONFIGURATION_KEY

A utilização da configuração key para configurar a amostragem de dados está obsoleta.

INCOMPATIBLE_CLUSTER_SETTINGS

As configurações atuais de agrupamento ou política de cluster não são mais compatíveis com o pipeline declarativo do LakeFlow.

STREAMING_READER_OPTIONS_DROPPED

Utilizando as opções do leitor de transmissão que foram descartadas.

DISALLOWED_SERVERLESS_STATIC_SPARK_CONFIG

Não é permitido definir configurações estáticas de Spark através da configuração pipeline para o pipeline serverless.

INVALID_SERVERLESS_PIPELINE_CONFIG

O cliente sem servidor fornece uma configuração inválida de pipeline.

UNUSED_EXPLICIT_PATH_ON_UC_MANAGED_TABLE

Especificar caminhos explícitos de tabelas não utilizados nas tabelas UC gerenciar.

FOREACH_BATCH_FUNCTION_NOT_SERIALIZABLE

A função ForEachBatch fornecida não é serializável.

DROP_PARTITION_COLS_NO_PARTITIONING

A eliminação do atributo partition_cols resulta em nenhum particionamento.

PYTHON_CREATE_TABLE

Usando @dlt .create_table em vez de @dlt .table.

PYTHON_CREATE_VIEW

Usando @dlt .create_view em vez de @dlt.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 gerenciar por pipeline possui um ciclo no conjunto de restrições estrangeiras key.

PARTIALLY_QUALIFIED_TABLE_REFERENCE_INCOMPATIBLE_WITH_DEFAULT_PUBLISHING_MODE

Uma referência de tabela parcialmente qualificada que possui significados diferentes no modo de publicação d default e no modo de publicação legado.

Detalhes do evento cluster_resources

Os detalhes de um evento cluster_resources. Aplicável apenas para pipelines em execução no compute clássico.

campo

Descrição

task_slot_metrics

As métricas de tarefa do agrupamento. Para obter detalhes, consulte o objeto TaskSlotMetrics

autoscale_info

O estado dos autoescaladores. Para obter detalhes, consulte o objeto AutoScaleInfo

Detalhes do evento “ autoscale ” (A arte de ser um artista: uma conversa com o

Os detalhes de um evento autoscale. Os eventos de autoescala só são aplicáveis quando o pipeline utiliza o compute clássico.

campo

Descrição

status

Status 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 os limites de “ min_workers ” e “ max_workers ”.

requested_num_executors

O número de executores após o truncamento do número ideal de executores sugerido pelo algoritmo para os limites min_workers e max_workers.

Detalhes do evento planning_information

Os detalhes de um evento planning_information. Útil para visualizar detalhes relacionados ao tipo de e refresh e selecionado 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. Para obter mais detalhes sobre a atualização incremental, consulte Atualização incremental ( refresh ) para visualização materializada.

campo

Descrição

technique_information

Informações relacionadas à atualização. Inclui informações sobre a metodologia de refresh escolhida e as possíveis metodologias de refresh que foram consideradas. Útil para depuração quando uma instrução materializada ( view ) falha na incrementalização. Para obter mais detalhes, consulte Informações técnicas.

source_table_information

Tabela de origem da informação. Pode ser útil para depuração, caso uma operação de materialização ( view ) não tenha sido incrementada. Para obter detalhes, consulte Objeto TableInformation.

target_table_information

Tabela de destino: informação. Para obter detalhes, consulte Objeto TableInformation.

Detalhes do evento hook_progress

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

campo

Descrição

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

Descrição

type

O tipo de operações que estão sendo rastreadas. Um dos:

  • AUTO_LOADER_LISTING
  • AUTO_LOADER_BACKFILL
  • CONNECTOR_FETCH
  • CDC_SNAPSHOT

status

O status das operações. Um dos:

  • STARTED
  • COMPLETED
  • CANCELED
  • FAILED
  • IN_PROGRESS

duration_ms

O tempo total decorrido das operações em milissegundos. Incluído somente no evento final (onde o status é COMPLETED, CANCELED ou FAILED).

Detalhes do evento stream_progress

info

Visualização

Esse recurso está em Public Preview.

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

campo

Descrição

stream_progress

Os detalhes da transmissão do pipeline. Semelhante ao StreamingQueryListener métricas para transmissão estruturada.

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 do objeto StreamingQueryListener.

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

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

Outros objetos

Os objetos a seguir representam dados ou enumerações adicionais nos objetos do evento.

objeto AutoScaleInfo

As métricas do algoritmo de agrupamento por distância mínima ( autoscale ) para um agrupamento. Aplicável apenas para pipelines em execução no compute clássico.

campo

Descrição

state

O status da escala automática. 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 solicitados ao gerenciador de clustering pelo gerenciador de estado na última solicitação. Este é 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 escalonamento em caso de tempo limite. Esse campo não será preenchido se não houver uma solicitação pendente.

request_pending_seconds

O período de tempo em que a solicitação de escalabilidade está pendente. Isso não será preenchido se não houver uma solicitação pendente.

Objeto CostModelRejectionSubType

Uma enumeração das razões pelas quais a incrementalização é rejeitada, com base no custo da refresh completa em comparação com a refresh incremental em um evento planning_information.

Valor

Descrição

NUM_JOINS_THRESHOLD_EXCEEDED

refresh e porque a consulta contém muitas junções.

CHANGESET_SIZE_THRESHOLD_EXCEEDED

refresh e totalmente porque muitas linhas nas tabelas base foram alteradas.

TABLE_SIZE_THRESHOLD_EXCEEDED

refresh o total porque o tamanho da tabela base excedeu o limite.

EXCESSIVE_OPERATOR_NESTING

Totalmente “ refresh ” porque a definição da consulta é complexa e possui muitos níveis de aninhamento de operadores.

COST_MODEL_REJECTION_SUB_TYPE_UNSPECIFIED

refresh e totalmente por qualquer outro motivo.

Objeto DataQualityMetrics

métricas sobre como as expectativas estão sendo atendidas dentro do fluxo. Usado nos detalhes de um evento flow_progress.

campo

Descrição

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 dataset no plano de consulta do fluxo. Quando há várias expectativas, isso pode ser usado para rastrear 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

Descrição

name

O nome da expectativa.

dataset

O nome do objeto de expectativa ( dataset ) ao qual a expectativa foi adicionada.

passed_records

O número de registros que superam a expectativa.

failed_records

O número de registros que não cumprem a expectativa. Rastreia se a expectativa foi atendida, mas não descreve o que acontece com os registros (avisar, falhar ou descartar os registros).

Objeto FlowMetrics

métricas sobre o fluxo, incluindo tanto o total do fluxo quanto a divisão por fonte específica. Usado nos detalhes de um evento flow_progress.

Cada fonte de transmissão suporta apenas métricas de fluxo específicas. A tabela a seguir apresenta 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

campo

Descrição

num_output_rows

Número de linhas de saída gravadas por uma atualização desse fluxo.

backlog_bytes

Total de pendências em bytes em todas as fontes de entrada no fluxo.

backlog_records

Total de registros de pendências em todas as fontes de entrada no fluxo.

backlog_files

Total de arquivos de backlog em todas as fontes de entrada no fluxo.

backlog_seconds

Máximo de segundos de backlog em todas as fontes de entrada no fluxo.

executor_time_ms

Soma de todos os tempos de execução de tarefas em milissegundos deste fluxo durante o período do relatório.

executor_cpu_time_ms

Soma de todos os tempos de CPU de execução de tarefas em milissegundos deste fluxo durante o período do relatório.

num_upserted_rows

Número de linhas de saída inseridas no " dataset " por uma atualização deste fluxo.

num_deleted_rows

Número de linhas de saída existentes excluídas do " dataset " por uma atualização deste 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 externas ao LakeFlow Pipeline declarativo (como Apache Kafka, Pulsar ou Auto Loader). Inclui os campos:

  • source_name: O nome da fonte.
  • backlog_bytes: Backlog como bytes para essa fonte.
  • backlog_records: registros de pendências para essa fonte.
  • backlog_files: arquivos de lista de pendências para essa fonte.
  • backlog_seconds: segundos de atraso para essa fonte.

Objeto IncrementalizationIssue

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

campo

Descrição

issue_type

Um tipo de problema que pode impedir que o materializado “ view ” seja incrementado. Para obter detalhes, consulte Tipo de problema.

prevent_incrementalization

Se esse problema impediu que a incrementalização acontecesse.

table_information

Informações relacionadas a questões como CDF_UNAVAILABLE, INPUT_NOT_IN_DELTA, DATA_FILE_MISSING.

operator_name

Informações relacionadas ao plano. Definido para problemas quando o tipo de problema é PLAN_NOT_DETERMINISTIC ou PLAN_NOT_INCREMENTALIZABLE para o operador ou expressão que causa o não determinismo ou a não incrementalização.

expression_name

O nome da expressão.

join_type

Informação auxiliar quando o operador é um operador qualificado ( 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 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 dos tipos de problemas que podem causar uma falha total ( refresh).

Valor

Descrição

CDF_UNAVAILABLE

O CDF (Change Data Feed) não está ativado em algumas tabelas base. O campo “ table_information ” fornece informações sobre quais tabelas não têm CDF habilitado. Use ALTER TABLE <table-name> SET TBLPROPERTIES ( 'delta.enableChangeDataFeed' = true) para ativar o CDF para a tabela base. Se a tabela de origem for um materializado ( view), CDF deve ser definido como ON por default.

DELTA_PROTOCOL_CHANGED

Totalmente refresh porque algumas tabelas base (detalhes no campo table_information ) tiveram uma alteração no protocolo Delta.

DATA_SCHEMA_CHANGED

refresh, pois algumas tabelas base (detalhes no campo table_information ) tiveram uma alteração no esquema de dados nas colunas utilizadas pela definição materializada view. Não é relevante se uma coluna que o materializado view não utiliza foi alterada ou adicionada à tabela base.

PARTITION_SCHEMA_CHANGED

refresh e porque algumas tabelas base (detalhes no campo “ table_information ”) tiveram uma alteração no esquema de partição.

INPUT_NOT_IN_DELTA

Totalmente " refresh " porque a definição materializada " view " envolve alguma entrada não Delta.

DATA_FILE_MISSING

refresh e totalmente porque alguns arquivos da tabela base já estão vacuum devido ao seu período de retenção.

PLAN_NOT_DETERMINISTIC

Totalmente não determinístico ( refresh ) porque alguns operadores ou expressões na definição materializada view 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

Totalmente não incrementável ( refresh ) porque alguns operadores ou expressões na definição materializada view não são incrementáveis.

SERIALIZATION_VERSION_CHANGED

Totalmente refresh devido a uma alteração significativa na lógica de identificação de consultas.

QUERY_FINGERPRINT_CHANGED

refresh e totalmente porque a definição materializada view foi alterada ou LakeFlow As versões do pipeline declarativo causaram uma alteração nos planos de avaliação da consulta.

CONFIGURATION_CHANGED

Totalmente refresh porque as configurações key (por exemplo, spark.sql.ansi.enabled) que podem afetar a avaliação da consulta foram alteradas. É necessário recalcular tudo para evitar inconsistências nos estados materializados no view.

CHANGE_SET_MISSING

refresh, pois é o primeiro compute do materializado view. Esse é o comportamento esperado para o cálculo inicial materializado de view.

EXPECTATIONS_NOT_SUPPORTED

refresh e totalmente porque a definição materializada view inclui expectativas, que não são suportadas para atualizações incrementais. Remova as expectativas ou lide com elas fora da definição materializada de view se for necessário suporte incremental.

TOO_MANY_FILE_ACTIONS

refresh o total porque o número de ações de arquivo excedeu o limite para processamento incremental. Considere reduzir a rotatividade de arquivos nas tabelas base ou aumentar o limite.

INCREMENTAL_PLAN_REJECTED_BY_COST_MODEL

Totalmente refresh porque o modelo de custos determinou que uma manutenção completa ( refresh ) é mais eficiente do que uma 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

refresh, pois o acompanhamento de linha não está habilitado em uma ou mais tabelas base. Ative o acompanhamento de linhas utilizando ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableRowTracking' = true).

TOO_MANY_PARTITIONS_CHANGED

refresh o total devido a muitas alterações nas partições das 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

Totalmente refresh porque a definição materializada view inclui um tipo de mapa, que não é compatível com atualizações incrementais. Considere reestruturar os dados para evitar tipos de mapa no materializado view.

TIME_ZONE_CHANGED

refresh e totalmente porque a configuração do fuso horário da sessão ou do sistema foi alterada.

DATA_HAS_CHANGED

refresh e totalmente porque os dados relevantes para o materializado view foram alterados de forma a impedir atualizações incrementais. Avalie as alterações nos dados e a estrutura da definição do objeto de linha ( view ) para garantir a compatibilidade com a lógica incremental.

PRIOR_TIMESTAMP_MISSING

refresh e 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

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

Valor

Descrição

MAINTENANCE_TYPE_COMPLETE_RECOMPUTE

Recálculo completo; sempre exibido.

MAINTENANCE_TYPE_NO_OP

Quando as tabelas base não mudam.

MAINTENANCE_TYPE_PARTITION_OVERWRITE

Incrementalmente, as partições afetadas pelo refresh quando o view materializado é co-particionado com uma das tabelas de origem.

MAINTENANCE_TYPE_ROW_BASED

refresh e incrementalmente criando conjuntos de alterações modulares para várias operações, tais como JOIN, FILTER e UNION ALL, e combinando-os para calcular consultas complexas. Utilizado quando o acompanhamento de linhas para as tabelas de origem está ativado e há um número limitado de junções para a consulta.

MAINTENANCE_TYPE_APPEND_ONLY

refresh ar incrementalmente, calculando apenas novas linhas, pois não houve atualizações ou exclusões nas tabelas de origem.

MAINTENANCE_TYPE_GROUP_AGGREGATE

Incrementalmente, refresh calculando as alterações para cada valor agregado. Usado quando agregados associativos, como count, sum, mean e stddev, estão no nível mais alto da consulta.

MAINTENANCE_TYPE_GENERIC_AGGREGATE

refresh ar 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

Incremente consultas e refresh es com funções de janela, como PARTITION BY, recalculando 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

Onde o evento se originou.

campo

Descrição

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 o ID do usuário no workspace. Exclusivo em uma nuvem. Útil para identificar o workspace ou para join com outras tabelas, como tabelas de faturamento do sistema.

pipeline_id

A identificação do pipeline. Um identificador exclusivo para o pipeline. Útil para identificar o pipeline ou para join com outras tabelas, como tabelas de faturamento do sistema.

pipeline_type

O tipo de pipeline para indicar onde o pipeline foi criado. Os valores possíveis são:

  • DBSQL: Um pipeline criado por meio do Databricks SQL.
  • WORKSPACE: Um pipeline de controle de fluxo de trabalho ( ETL ) pipeline criado por meio de um pipeline declarativo ( LakeFlow ).
  • MANAGED_INGESTION: A LakeFlow Connect gerenciar ingestion pipeline.
  • BRICKSTORE: Um pipeline para atualizar uma tabela online em tempo real Feature Serving.
  • BRICKINDEX: Um pipeline para atualizar um banco de dados vetorial. Para obter mais detalhes, consulte Pesquisa vetorial.

pipeline_name

O nome do pipeline.

cluster_id

O ID do agrupamento onde ocorre uma execução. Globalmente único.

update_id

A identificação de uma única execução do pipeline. Isso é equivalente a execução ID.

table_name

O nome da tabela (Delta) na qual está sendo gravado.

dataset_name

O nome completo de um dataset.

sink_name

O nome de uma pia.

flow_id

O id do fluxo. Ele rastreia o estado do fluxo que está sendo usado em várias atualizações. Desde que o flow_id seja o mesmo, o fluxo será atualizado de forma incremental. O conteúdo da tabela " flow_id " é alterado quando ocorre uma atualização completa do materializado " view ", a reinicialização do ponto de verificação ou uma recomputação completa dentro do materializado " view".

flow_name

O nome do fluxo.

batch_id

A identificação de um microbatch. Único dentro de um fluxo.

request_id

O id da solicitação que causou uma atualização.

Objeto PlanNotDeterministicSubType

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

Valor

Descrição

STREAMING_SOURCE

Totalmente refresh porque a definição materializada view inclui uma fonte de transmissão, que não é suportada.

USER_DEFINED_FUNCTION

Totalmente refresh porque o view materializado inclui uma função definida pelo usuário não suportada. Apenas UDFs determinísticas do Python são suportadas. Outros UDFs podem impedir atualizações incrementais.

TIME_FUNCTION

Totalmente " refresh " porque a " view " materializada inclui uma função baseada em tempo, como " CURRENT_DATE " ou " CURRENT_TIMESTAMP". A propriedade expression_name fornece o nome da função não suportada.

NON_DETERMINISTIC_EXPRESSION

refresh e totalmente porque a consulta inclui uma expressão não determinística, como RANDOM(). A propriedade expression_name indica a função não determinística que impede a manutenção incremental.

Objeto PlanNotIncrementalizableSubType

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

Valor

Descrição

OPERATOR_NOT_SUPPORTED

refresh e totalmente porque o plano de consulta inclui um operador não suportado. A propriedade operator_name fornece o nome do operador não suportado.

AGGREGATE_NOT_TOP_NODE

refresh e totalmente porque um operador agregado (GROUP BY) não está no nível superior do plano de consulta. A manutenção incremental suporta agregados somente no nível superior. Considere definir duas visualizações materializadas para separar a agregação.

AGGREGATE_WITH_DISTINCT

Totalmente " refresh " porque a agregação inclui uma cláusula " DISTINCT ", que não é suportada para atualizações incrementais.

AGGREGATE_WITH_UNSUPPORTED_EXPRESSION

refresh e porque a agregação inclui expressões não suportadas. A propriedade expression_name indica a expressão problemática.

SUBQUERY_EXPRESSION

Totalmente " refresh " porque a definição materializada " view " inclui uma expressão de subconsulta, que não é suportada.

WINDOW_FUNCTION_NOT_TOP_LEVEL

Totalmente " refresh " porque uma função de janela não está no nível superior do plano de consulta.

WINDOW_FUNCTION_WITHOUT_PARTITION_BY

Totalmente " refresh " porque uma função de janela é definida sem uma cláusula " PARTITION BY ".

Objeto TableInformation

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

campo

Descrição

table_name

Nome da tabela utilizada na consulta de Unity Catalog ou Hive metastore. Pode não estar disponível no caso de acesso baseado em caminho.

table_id

Obrigatório. ID da tabela do Delta log.

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. 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 arquivos alterados. É 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 remoção do 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 um CDF legado ou de um CDF baseado em ID de linha.

Objeto TaskSlotMetrics

As métricas de tarefa para um agrupamento. Aplicável apenas a atualizações do pipeline em execução no compute clássico.

campo

Descrição

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 Spark no momento do relatório.

avg_num_task_slots

O número médio de slots de tarefas Spark durante o resumo da duração.

avg_task_slot_utilization

A utilização média do slot tarefa (número de tarefas ativas dividido pelo número de slots tarefa) ao longo da duração resumida.

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 total de tarefas menos o número de tarefas ativas) durante o período resumido.

Objeto de informação técnica

Atualizar a metodologia de informações para um evento de planejamento.

campo

Descrição

maintenance_type

Tipo de manutenção relacionado a esta informação.

Se o tipo não for MAINTENANCE_TYPE_COMPLETE_RECOMPUTE ou MAINTENANCE_TYPE_NO_OP, o fluxo será atualizado de forma incremental.

Para obter detalhes, consulte o objeto MaintenanceType.

is_chosen

Isso é válido para a técnica escolhida para o refresh.

is_applicable

Se o tipo de manutenção é aplicável.

incrementalization_issues

Problemas de incrementalização que podem impedir que uma atualização seja totalmente e refresh. Para obter detalhes, consulte o objeto IncrementalizationIssue.

change_set_information

Informações sobre o conjunto final de alterações produzidas. Os valores são um dos seguintes:

  • CHANGE_SET_TYPE_APPEND_ONLY
  • CHANGE_SET_TYPE_GENERAL_ROW_CHANGE