Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O DESCRIBE HISTORY comando retorna 14 colunas para as tabelas Apache Iceberg e Delta Lake que descrevem a história das operações de tabelas. Use essa referência para interpretar cada coluna.
Para orientações sobre como recuperar o histórico de tabelas, consultar versões anteriores de tabelas e restaurar uma tabela, veja Trabalhar com histórico de tabela.
Esquema de história
A saída da operação history tem as colunas a seguir.
| Coluna | Tipo | Descrição |
|---|---|---|
| versão | long |
A versão da tabela gerada pela operação. |
| carimbo de data/hora | timestamp |
Quando esta versão foi comprometida. |
| userId | string |
A ID do usuário que executou a operação. |
| nome do usuário | string |
O nome do usuário que executou a operação. |
| operação | string |
O nome da operação. |
| parâmetros de operação | map |
Os parâmetros da operação (por exemplo, predicados.) Para OPTIMIZE operações, esses parâmetros identificam o tipo de operação. Consulte Identificar o tipo de OPTIMIZE operação. |
| cargo | struct |
Os detalhes da tarefa Lakeflow que executou a operação. É preenchido somente para commits gerados por um job do Lakeflow. 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 feitos a partir de um notebook do Databricks. Caso contrário, null. |
| clusterId | string |
A ID do cluster no qual a operação foi executada. |
| lerVersão | long |
A versão da tabela que foi lida para executar a operação de gravação. |
| isolationLevel | string |
O nível de isolamento usado para esta operação. |
| isBlindAppend | boolean |
Se essa operação acrescenta dados. |
| operationMetrics | map |
As métricas da operação (por exemplo, número de linhas e arquivos modificados).) |
| userMetadata | string |
Os metadados de confirmação definidos pelo usuário se forem especificados. |
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
|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...|
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
Observação
- Se você escrever em uma tabela usando os seguintes métodos, algumas colunas não estão disponíveis:
- Colunas incluídas mais tarde sempre são adicionadas após a última coluna.
Noções básicas partitionBy sobre parâmetros de operação
O partitionBy campo no histórico de tabelas só é significativo para operações CREATE e OVERWRITE que definem ou alteram o esquema de partição de uma tabela.
Para operações de acréscimo a tabelas existentes (APPEND, INSERT, UPDATE, DELETE, MERGE), esse 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 é o comportamento esperado e não afeta a forma como os dados são gravados em partições. Você não deve usá-lo para validar operações de acréscimo.
Exemplo
Considere uma tabela particionada pela date coluna. Quando você cria a tabela, partitionBy é populada:
df.write.format("delta") \
.partitionBy("date") \
.saveAsTable("sales_data")
A operação CREATE no histórico mostra:
operationParameters: {
"mode": "ErrorIfExists",
"partitionBy": "[\"date\"]"
}
Quando você acrescenta dados a esta tabela, partitionBy mostra uma matriz vazia:
new_df.write.format("delta") \
.mode("append") \
.saveAsTable("sales_data")
A operação APPEND mostra:
operationParameters: {
"mode": "Append",
"partitionBy": "[]"
}
O valor vazio partitionBy é 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 nesse 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 history operação retorna uma coleção de métricas de operação no operationMetrics mapa de colunas.
As tabelas a seguir listam as definições essenciais 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 escrito. |
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 |
O número de arquivos adicionados. |
numRemovedFiles |
O número de arquivos removidos. |
numOutputRows |
O número de linhas gravadas. |
numOutputBytes |
O tamanho da escrita 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 |
O número de linhas copiadas no processo de exclusão de arquivos. |
executionTimeMs |
O tempo necessário para executar toda a operação. |
scanTimeMs |
O tempo necessário para verificar os arquivos em busca de correspondências. |
rewriteTimeMs |
O tempo necessário para reescrever 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 necessário 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 |
O 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 necessário para executar toda a operação. |
scanTimeMs |
O tempo necessário para verificar os arquivos em busca de correspondências. |
rewriteTimeMs |
O tempo necessário para reescrever os arquivos correspondentes. |
UPDATE
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. |
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 durante o processo de atualização de arquivos. |
executionTimeMs |
O tempo necessário para executar toda a operação. |
scanTimeMs |
O tempo necessário para verificar os arquivos em busca de correspondências. |
rewriteTimeMs |
O tempo necessário para reescrever 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. |
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 convertidos. |
OPTIMIZE
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. |
numRemovedFiles |
O número de arquivos otimizados. |
numAddedBytes |
O número de bytes adicionados após a otimização da tabela. |
numRemovedBytes |
O número de bytes removidos. |
minFileSize |
O tamanho do menor arquivo depois que a tabela foi otimizada. |
p25FileSize |
O tamanho do arquivo do 25º percentil após a otimização da tabela. |
p50FileSize |
O tamanho mediano do arquivo depois que a tabela foi otimizada. |
p75FileSize |
O tamanho do 75º arquivo de percentil depois que a tabela foi otimizada. |
maxFileSize |
O tamanho do maior arquivo após a otimização da tabela. |
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 |
O 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 foi substituída. |
removedFilesSize |
O tamanho total em bytes dos arquivos removidos da tabela de destino se uma tabela anterior foi substituída. |
numCopiedFiles |
O número de arquivos que foram copiados para o novo local. 0 para clones superficiais. |
copiedFilesSize |
O tamanho total em bytes dos arquivos que foram copiados para o novo local. 0 para clones superficiais. |
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 |
O 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 de arquivos removidos pela restauração. |
restoredFilesSize |
O tamanho em bytes de 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 |
O número de arquivos excluídos. |
numVacuumedDirectories |
O número de diretórios limpos. |
numFilesToDelete |
O número de arquivos a serem excluídos. |