Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il DESCRIBE HISTORY comando restituisce 14 colonne per le tabelle Apache Iceberg e Delta Lake che descrivono la storia delle operazioni delle tabelle. Usa questo riferimento per interpretare ogni colonna.
Per indicazioni su come recuperare la cronologia delle tabelle, interrogare versioni precedenti e ripristinare una tabella, vedi Lavoro con la cronologia delle tabelle.
Schema cronologia
L'output dell'operazione history include le colonne seguenti.
| colonna | Tipo | Description |
|---|---|---|
| version | long |
Versione della tabella generata dall'operazione. |
| Marca temporale | timestamp |
Quando è stato effettuato il commit di questa versione. |
| userId | string |
ID dell'utente che ha eseguito l'operazione. |
| userName | string |
Nome dell'utente che ha eseguito l'operazione. |
| operation | string |
Nome dell'operazione. |
| parametri di operazione | map |
Parametri dell'operazione, ad esempio predicati. Per OPTIMIZE le operazioni, questi parametri identificano il tipo di operazione. Vedi Identificare il tipo di OPTIMIZE operazione. |
| attività | struct |
I dettagli del job Lakeflow che ha eseguito l'operazione. Si popola solo per i commit creati da un job Lakeflow. In caso contrario, null. |
| notebook | struct |
Dettagli del notebook di Databricks da cui è stata eseguita l'operazione. Viene popolato solo per i commit creati da un notebook Databricks. In caso contrario, null. |
| clusterId | string |
ID del cluster in cui è stata eseguita l'operazione. |
| leggiVersione | long |
Versione della tabella letta per eseguire l'operazione di scrittura. |
| isolationLevel | string |
Livello di isolamento utilizzato per questa operazione. |
| isBlindAppend | boolean |
Indica se questa operazione ha accodato dati. |
| operationMetrics | map |
Metriche dell'operazione(ad esempio, numero di righe e file modificati). |
| metadati dell'utente | string |
Metadati di commit definiti dall'utente, se specificati. |
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
|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...|
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
Annotazioni
- Se si scrive in una tabella usando i metodi seguenti, alcune colonne non sono disponibili:
- Le colonne aggiunte in futuro verranno sempre aggiunte dopo l'ultima colonna.
Informazioni sui partitionBy parametri dell'operazione
Il partitionBy campo nella cronologia tabelle è significativo solo per le operazioni CREATE e OVERWRITE che definiscono o modificano lo schema di partizione di una tabella.
Per le operazioni di accodamento alle tabelle esistenti (APPEND, INSERT, , UPDATEDELETE, MERGE), questo campo potrebbe mostrare una matrice [] vuota o colonne di partizione a seconda del metodo di scrittura usato (.save() vs .saveAsTable()).
Questa incoerenza è un comportamento previsto e non influisce sul modo in cui i dati vengono scritti nelle partizioni. Non è consigliabile usarlo per convalidare le operazioni di accodamento.
Esempio
Si consideri una tabella partizionata dalla date colonna . Quando si crea la tabella, partitionBy viene popolata:
df.write.format("delta") \
.partitionBy("date") \
.saveAsTable("sales_data")
L'operazione CREATE nella cronologia mostra:
operationParameters: {
"mode": "ErrorIfExists",
"partitionBy": "[\"date\"]"
}
Quando si aggiungono dati a questa tabella, partitionBy viene visualizzata una matrice vuota:
new_df.write.format("delta") \
.mode("append") \
.saveAsTable("sales_data")
L'operazione APPEND mostra:
operationParameters: {
"mode": "Append",
"partitionBy": "[]"
}
È previsto il valore vuoto partitionBy . I dati vengono comunque scritti nelle partizioni corrette in base allo schema di partizione esistente della tabella. Si noti che .save() a un percorso potrebbe mostrare colonne di partizione in questo campo, ma questa differenza è un dettaglio di implementazione e non influisce sul comportamento di scrittura.
Metriche operative
L'operazione history restituisce una raccolta di metriche operative nella operationMetrics mappa a colonne.
Le tabelle seguenti elencano le definizioni delle chiavi della mappa in base all'operazione.
WRITE, CREATE TABLE AS SELECT, REPLACE TABLE AS SELECTCOPY INTO
Per queste operazioni sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numFiles |
Numero di file scritti. |
numOutputBytes |
Dimensione in byte del contenuto scritto. |
numOutputRows |
Numero di righe scritte. |
STREAMING UPDATE
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numAddedFiles |
Numero di file aggiunti. |
numRemovedFiles |
Numero di file rimossi. |
numOutputRows |
Numero di righe scritte. |
numOutputBytes |
La dimensione dei byte di scrittura. |
DELETE
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numAddedFiles |
Numero di file aggiunti. Non specificato quando vengono eliminate le partizioni della tabella. |
numRemovedFiles |
Numero di file rimossi. |
numDeletedRows |
Numero di righe rimosse. Non specificato quando vengono eliminate le partizioni della tabella. |
numCopiedRows |
Numero di righe copiate nel processo di eliminazione dei file. |
executionTimeMs |
Tempo impiegato per eseguire l'intera operazione. |
scanTimeMs |
Tempo impiegato per analizzare i file e individuare le corrispondenze. |
rewriteTimeMs |
Tempo impiegato per riscrivere i file corrispondenti. |
TRUNCATE
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numRemovedFiles |
Numero di file rimossi. |
executionTimeMs |
Tempo impiegato per eseguire l'intera operazione. |
MERGE
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numSourceRows |
Numero di righe nel dataframe di origine. |
numTargetRowsInserted |
Numero di righe inserite nella tabella di destinazione. |
numTargetRowsUpdated |
Numero di righe aggiornate nella tabella di destinazione. |
numTargetRowsDeleted |
Numero di righe eliminate nella tabella di destinazione. |
numTargetRowsCopied |
Numero di righe di destinazione copiate. |
numOutputRows |
Numero totale di righe scritte. |
numTargetFilesAdded |
Il numero di file aggiunti al sink (destinazione). |
numTargetFilesRemoved |
Numero dei file rimossi dal sink (destinazione). |
executionTimeMs |
Tempo impiegato per eseguire l'intera operazione. |
scanTimeMs |
Tempo impiegato per analizzare i file e individuare le corrispondenze. |
rewriteTimeMs |
Tempo impiegato per riscrivere i file corrispondenti. |
UPDATE
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numAddedFiles |
Numero di file aggiunti. |
numRemovedFiles |
Numero di file rimossi. |
numUpdatedRows |
Numero di righe aggiornate. |
numCopiedRows |
Numero di righe appena copiate nel processo di aggiornamento dei file. |
executionTimeMs |
Tempo impiegato per eseguire l'intera operazione. |
scanTimeMs |
Tempo impiegato per analizzare i file e individuare le corrispondenze. |
rewriteTimeMs |
Tempo impiegato per riscrivere i file corrispondenti. |
FSCK
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numRemovedFiles |
Numero di file rimossi. |
CONVERT
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numConvertedFiles |
Numero di file Parquet convertiti. |
OPTIMIZE
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numAddedFiles |
Numero di file aggiunti. |
numRemovedFiles |
Numero dei file ottimizzati. |
numAddedBytes |
Numero di byte aggiunti dopo l'ottimizzazione della tabella. |
numRemovedBytes |
Il numero di byte rimossi. |
minFileSize |
Dimensioni del file più piccolo dopo l'ottimizzazione della tabella. |
p25FileSize |
La dimensione del file al 25° percentile dopo l'ottimizzazione della tabella. |
p50FileSize |
Dimensioni del file mediano dopo l'ottimizzazione della tabella. |
p75FileSize |
La dimensione del file al 75° percentile dopo l'ottimizzazione della tabella. |
maxFileSize |
Dimensioni del file più grande dopo l'ottimizzazione della tabella. |
CLONE
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
sourceTableSize |
Dimensioni in byte della tabella di origine nella versione clonata. |
sourceNumOfFiles |
Numero di file nella tabella di origine nella versione clonata. |
numRemovedFiles |
Numero di file rimossi dalla tabella di destinazione se è stata sostituita una tabella precedente. |
removedFilesSize |
Dimensioni totali in byte dei file rimossi dalla tabella di destinazione se è stata sostituita una tabella precedente. |
numCopiedFiles |
Numero di file copiati nel nuovo percorso. 0 per cloni superficiali. |
copiedFilesSize |
Le dimensioni totali in byte dei file copiati nel nuovo percorso. 0 per cloni superficiali. |
RESTORE
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
tableSizeAfterRestore |
Dimensioni della tabella in byte dopo il ripristino. |
numOfFilesAfterRestore |
Numero di file nella tabella dopo il ripristino. |
numRemovedFiles |
Numero di file rimossi dall'operazione di ripristino. |
numRestoredFiles |
Numero di file aggiunti in seguito al ripristino. |
removedFilesSize |
Dimensioni in byte dei file rimossi dal ripristino. |
restoredFilesSize |
Dimensioni in byte dei file aggiunti dal ripristino. |
VACUUM
Per questa operazione sono disponibili le metriche seguenti:
| Nome della metrica di misura | Description |
|---|---|
numDeletedFiles |
Numero di file eliminati. |
numVacuumedDirectories |
Il numero di directory sottoposte a vacuum. |
numFilesToDelete |
Numero di file da eliminare. |