Pular para o conteúdo principal

Esquema do histórico da tabela e métricas de operações

O comando DESCRIBE HISTORY retorna 14 colunas para tabelas Apache Iceberg e Delta Lake que descrevem a história das operações da tabela. Use esta referência para interpretar cada coluna.

Para obter orientações sobre como recuperar o histórico da tabela, consultar versões anteriores da tabela e restaurar uma tabela, consulte Trabalhar com o histórico da tabela.

Esquema de história

A saída da operação history tem as seguintes colunas.

Coluna

Tipo

Descrição

version

long

A versão da tabela gerada pela operação.

carimbo de data/hora

timestamp

Quando essa versão foi confirmada.

userId

string

O ID do usuário que executou a operação.

userName

string

O nome do usuário que executou a operação.

operation

string

O nome da operação.

operationParameters

map

Os parâmetros da operação (por exemplo, predicados.) Para operações OPTIMIZE, esses parâmetros identificam o tipo de operação. Consulte Identificar o tipo de operação OPTIMIZE.

Job

struct

Os detalhes do Lakeflow job que executou a operação. Preenchido apenas para commits gravados a partir de um LakeFlow Job. Caso contrário, null.

notebook

struct

Os detalhes do notebook do Databricks a partir do qual a operação foi executada. Preenchido somente para commits gravados a partir de um notebook do Databricks. Caso contrário, null.

clusterId

string

O ID do cluster no qual a operação foi executada.

readVersion

long

Versão da tabela que foi lida para realizar a operação de gravação.

isolationLevel

string

Nível de isolamento usado para esta operação.

isBlindAppend

boolean

Se essa operação anexou dados.

operationMetrics

map

As métricas da operação (por exemplo, número de linhas e arquivos modificados).

userMetadata

string

Os metadados de commit definidos pelo usuário, se tiverem sido especificados.

Coluna

Tipo

Descrição

version

long

A versão da tabela gerada pela operação.

carimbo de data/hora

timestamp

Quando essa versão foi confirmada.

userId

string

O ID do usuário que executou a operação.

userName

string

O nome do usuário que executou a operação.

operation

string

O nome da operação.

operationParameters

map

Os parâmetros da operação (por exemplo, predicados.) Para operações OPTIMIZE, esses parâmetros identificam o tipo de operação. Consulte Identificar o tipo de operação OPTIMIZE.

Job

struct

Os detalhes do Lakeflow job que executou a operação. Preenchido apenas para commits gravados a partir de um LakeFlow Job. Caso contrário, null.

notebook

struct

Os detalhes do notebook do Databricks a partir do qual a operação foi executada. Preenchido somente para commits gravados a partir de um notebook do Databricks. Caso contrário, null.

clusterId

string

O ID do cluster no qual a operação foi executada.

readVersion

long

Versão da tabela que foi lida para realizar a operação de gravação.

isolationLevel

string

Nível de isolamento usado para esta operação.

isBlindAppend

boolean

Se essa operação anexou dados.

operationMetrics

map

As métricas da operação (por exemplo, número de linhas e arquivos modificados).

userMetadata

string

Os metadados de commit definidos pelo usuário, se tiverem sido especificados.

Text
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
|version| timestamp|userId|userName|operation| operationParameters| job|notebook|clusterId|readVersion| isolationLevel|isBlindAppend| operationMetrics|
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
| 5|2019-07-29 14:07:47| ###| ###| DELETE|[predicate -> ["(...|null| ###| ###| 4|WriteSerializable| false|[numTotalRows -> ...|
| 4|2019-07-29 14:07:41| ###| ###| UPDATE|[predicate -> (id...|null| ###| ###| 3|WriteSerializable| false|[numTotalRows -> ...|
| 3|2019-07-29 14:07:29| ###| ###| DELETE|[predicate -> ["(...|null| ###| ###| 2|WriteSerializable| false|[numTotalRows -> ...|
| 2|2019-07-29 14:06:56| ###| ###| UPDATE|[predicate -> (id...|null| ###| ###| 1|WriteSerializable| false|[numTotalRows -> ...|
| 1|2019-07-29 14:04:31| ###| ###| DELETE|[predicate -> ["(...|null| ###| ###| 0|WriteSerializable| false|[numTotalRows -> ...|
| 0|2019-07-29 14:01:40| ###| ###| WRITE|[mode -> ErrorIfE...|null| ###| ###| null|WriteSerializable| true|[numFiles -> 2, n...|
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
nota

Compreendendo partitionBy nos parâmetros de operação

O campo partitionBy na história da tabela só é significativo para operações CREATE e OVERWRITE que definem ou alteram o esquema de partição de uma tabela.

Para operações de append em tabelas existentes (APPEND, INSERT, UPDATE, DELETE, MERGE), este campo pode mostrar uma matriz vazia [] ou colunas de partição, dependendo do método de gravação usado (.save() vs .saveAsTable()).

Essa inconsistência é um comportamento esperado e não afeta a forma como os dados são gravados nas partições. Você não deve usá-lo para validar operações de append.

Exemplo

Considere uma tabela particionada pela coluna date. Quando você cria a tabela, partitionBy é preenchido:

Python
df.write.format("delta") \
.partitionBy("date") \
.saveAsTable("sales_data")

A operações CREATE no história mostra:

Text
operationParameters: {
"mode": "ErrorIfExists",
"partitionBy": "[\"date\"]"
}

Ao adicionar dados a esta tabela, partitionBy mostra uma matriz vazia:

Python
new_df.write.format("delta") \
.mode("append") \
.saveAsTable("sales_data")

A operação APPEND mostra:

Text
operationParameters: {
"mode": "Append",
"partitionBy": "[]"
}

O valor partitionBy vazio é esperado. Os dados ainda são gravados nas partições corretas com base no esquema de partição existente da tabela. Observe que .save() para um caminho pode mostrar colunas de partição neste campo, mas essa diferença é um detalhe de implementação e não afeta o comportamento de gravação.

Métricas de operação

A operação history retorna uma coleção de métricas de operação no mapa de colunas operationMetrics.

As tabelas a seguir listam as principais definições do mapa por operação.

WRITE, CREATE TABLE AS SELECT, REPLACE TABLE AS SELECT, COPY INTO

As seguintes métricas estão disponíveis para estas operações:

Nome da métrica

Descrição

numFiles

O número de arquivos gravados.

numOutputBytes

O tamanho em bytes do conteúdo gravado.

numOutputRows

O número de linhas gravadas.

Nome da métrica

Descrição

numFiles

O número de arquivos gravados.

numOutputBytes

O tamanho em bytes do conteúdo gravado.

numOutputRows

O número de linhas gravadas.

STREAMING UPDATE

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

numAddedFiles

Número de arquivos adicionados.

numRemovedFiles

O número de arquivos removidos.

numOutputRows

O número de linhas gravadas.

numOutputBytes

O tamanho da gravação em bytes.

Nome da métrica

Descrição

numAddedFiles

Número de arquivos adicionados.

numRemovedFiles

O número de arquivos removidos.

numOutputRows

O número de linhas gravadas.

numOutputBytes

O tamanho da gravação em bytes.

DELETE

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

numAddedFiles

O número de arquivos adicionados. Não fornecido quando as partições da tabela são excluídas.

numRemovedFiles

O número de arquivos removidos.

numDeletedRows

O número de linhas removidas. Não fornecido quando as partições da tabela são excluídas.

numCopiedRows

Número de linhas copiadas no processo de exclusão de arquivos.

executionTimeMs

O tempo gasto para executar toda a operação.

scanTimeMs

O tempo gasto para verificar os arquivos em busca de correspondências.

rewriteTimeMs

O tempo gasto para regravar os arquivos correspondentes.

Nome da métrica

Descrição

numAddedFiles

O número de arquivos adicionados. Não fornecido quando as partições da tabela são excluídas.

numRemovedFiles

O número de arquivos removidos.

numDeletedRows

O número de linhas removidas. Não fornecido quando as partições da tabela são excluídas.

numCopiedRows

Número de linhas copiadas no processo de exclusão de arquivos.

executionTimeMs

O tempo gasto para executar toda a operação.

scanTimeMs

O tempo gasto para verificar os arquivos em busca de correspondências.

rewriteTimeMs

O tempo gasto para regravar os arquivos correspondentes.

TRUNCATE

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

numRemovedFiles

O número de arquivos removidos.

executionTimeMs

O tempo gasto para executar toda a operação.

Nome da métrica

Descrição

numRemovedFiles

O número de arquivos removidos.

executionTimeMs

O tempo gasto para executar toda a operação.

MERGE

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

numSourceRows

O número de linhas no DataFrame de origem.

numTargetRowsInserted

O número de linhas inseridas na tabela de destino.

numTargetRowsUpdated

O número de linhas atualizadas na tabela de destino.

numTargetRowsDeleted

O número de linhas excluídas na tabela de destino.

numTargetRowsCopied

O número de linhas de destino copiadas.

numOutputRows

Número total de linhas gravadas.

numTargetFilesAdded

O número de arquivos adicionados ao coletor (destino).

numTargetFilesRemoved

O número de arquivos removidos do coletor (destino).

executionTimeMs

O tempo gasto para executar toda a operação.

scanTimeMs

O tempo gasto para verificar os arquivos em busca de correspondências.

rewriteTimeMs

O tempo gasto para regravar os arquivos correspondentes.

Nome da métrica

Descrição

numSourceRows

O número de linhas no DataFrame de origem.

numTargetRowsInserted

O número de linhas inseridas na tabela de destino.

numTargetRowsUpdated

O número de linhas atualizadas na tabela de destino.

numTargetRowsDeleted

O número de linhas excluídas na tabela de destino.

numTargetRowsCopied

O número de linhas de destino copiadas.

numOutputRows

Número total de linhas gravadas.

numTargetFilesAdded

O número de arquivos adicionados ao coletor (destino).

numTargetFilesRemoved

O número de arquivos removidos do coletor (destino).

executionTimeMs

O tempo gasto para executar toda a operação.

scanTimeMs

O tempo gasto para verificar os arquivos em busca de correspondências.

rewriteTimeMs

O tempo gasto para regravar os arquivos correspondentes.

UPDATE

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

numAddedFiles

Número de arquivos adicionados.

numRemovedFiles

O número de arquivos removidos.

numUpdatedRows

O número de linhas atualizadas.

numCopiedRows

O número de linhas que acabaram de ser copiadas no processo de atualização de arquivos.

executionTimeMs

O tempo gasto para executar toda a operação.

scanTimeMs

O tempo gasto para verificar os arquivos em busca de correspondências.

rewriteTimeMs

O tempo gasto para regravar os arquivos correspondentes.

Nome da métrica

Descrição

numAddedFiles

Número de arquivos adicionados.

numRemovedFiles

O número de arquivos removidos.

numUpdatedRows

O número de linhas atualizadas.

numCopiedRows

O número de linhas que acabaram de ser copiadas no processo de atualização de arquivos.

executionTimeMs

O tempo gasto para executar toda a operação.

scanTimeMs

O tempo gasto para verificar os arquivos em busca de correspondências.

rewriteTimeMs

O tempo gasto para regravar os arquivos correspondentes.

FSCK

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

numRemovedFiles

O número de arquivos removidos.

Nome da métrica

Descrição

numRemovedFiles

O número de arquivos removidos.

CONVERT

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

numConvertedFiles

O número de arquivos Parquet que foram convertidos.

Nome da métrica

Descrição

numConvertedFiles

O número de arquivos Parquet que foram convertidos.

OPTIMIZE

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

numAddedFiles

Número de arquivos adicionados.

numRemovedFiles

O número de arquivos otimizados.

numAddedBytes

O número de bytes adicionados depois que a tabela foi otimizada.

numRemovedBytes

O número de bytes removidos.

minFileSize

O tamanho do menor arquivo após a tabela ser otimizada.

p25FileSize

O tamanho do arquivo do 25º percentil após a tabela ser otimizada.

p50FileSize

O tamanho mediano do arquivo após a tabela ser otimizada.

p75FileSize

O tamanho do arquivo do 75º percentil após a tabela ser otimizada.

maxFileSize

O tamanho do maior arquivo após a tabela ser otimizada.

Nome da métrica

Descrição

numAddedFiles

Número de arquivos adicionados.

numRemovedFiles

O número de arquivos otimizados.

numAddedBytes

O número de bytes adicionados depois que a tabela foi otimizada.

numRemovedBytes

O número de bytes removidos.

minFileSize

O tamanho do menor arquivo após a tabela ser otimizada.

p25FileSize

O tamanho do arquivo do 25º percentil após a tabela ser otimizada.

p50FileSize

O tamanho mediano do arquivo após a tabela ser otimizada.

p75FileSize

O tamanho do arquivo do 75º percentil após a tabela ser otimizada.

maxFileSize

O tamanho do maior arquivo após a tabela ser otimizada.

CLONE

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

sourceTableSize

O tamanho em bytes da tabela de origem na versão clonada.

sourceNumOfFiles

Número de arquivos na tabela de origem na versão clonada.

numRemovedFiles

O número de arquivos removidos da tabela de destino se uma tabela anterior tiver sido substituída.

removedFilesSize

O tamanho total em bytes dos arquivos removidos da tabela de destino se uma tabela anterior tiver sido substituída.

numCopiedFiles

Número de arquivos que foram copiados para o novo local. 0 para clones rasos.

copiedFilesSize

O tamanho total em bytes dos arquivos que foram copiados para o novo local. 0 para clones rasos.

Nome da métrica

Descrição

sourceTableSize

O tamanho em bytes da tabela de origem na versão clonada.

sourceNumOfFiles

Número de arquivos na tabela de origem na versão clonada.

numRemovedFiles

O número de arquivos removidos da tabela de destino se uma tabela anterior tiver sido substituída.

removedFilesSize

O tamanho total em bytes dos arquivos removidos da tabela de destino se uma tabela anterior tiver sido substituída.

numCopiedFiles

Número de arquivos que foram copiados para o novo local. 0 para clones rasos.

copiedFilesSize

O tamanho total em bytes dos arquivos que foram copiados para o novo local. 0 para clones rasos.

RESTORE

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

tableSizeAfterRestore

O tamanho da tabela em bytes após a restauração.

numOfFilesAfterRestore

O número de arquivos na tabela após a restauração.

numRemovedFiles

Número de arquivos removidos pela operação de restauração.

numRestoredFiles

O número de arquivos que foram adicionados como resultado da restauração.

removedFilesSize

O tamanho em bytes dos arquivos removidos pela restauração.

restoredFilesSize

O tamanho em bytes dos arquivos adicionados pela restauração.

Nome da métrica

Descrição

tableSizeAfterRestore

O tamanho da tabela em bytes após a restauração.

numOfFilesAfterRestore

O número de arquivos na tabela após a restauração.

numRemovedFiles

Número de arquivos removidos pela operação de restauração.

numRestoredFiles

O número de arquivos que foram adicionados como resultado da restauração.

removedFilesSize

O tamanho em bytes dos arquivos removidos pela restauração.

restoredFilesSize

O tamanho em bytes dos arquivos adicionados pela restauração.

VACUUM

As seguintes métricas estão disponíveis para esta operação:

Nome da métrica

Descrição

numDeletedFiles

Número de arquivos excluídos.

numVacuumedDirectories

O número de diretórios submetidos ao vacuum.

numFilesToDelete

O número de arquivos a serem excluídos.

Nome da métrica

Descrição

numDeletedFiles

Número de arquivos excluídos.

numVacuumedDirectories

O número de diretórios submetidos ao vacuum.

numFilesToDelete

O número de arquivos a serem excluídos.