Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La DESCRIBE HISTORY commande retourne 14 colonnes pour les tables Apache Iceberg et Delta Lake qui décrivent l’histoire des opérations de table. Utilisez cette référence pour interpréter chaque colonne.
Pour des conseils sur la récupération de l’historique des tables, la requête des versions antérieures des tables et la restauration d’une table, voir Travail avec l’historique des tables.
Schéma de l’historique
La sortie de l'opération history contient les colonnes suivantes.
| Colonne | Type | Description |
|---|---|---|
| version | long |
Version de table générée par l’opération. |
| timestamp | timestamp |
Moment de validation de cette version. |
| userId | string |
ID de l’utilisateur qui a exécuté l’opération. |
| userName | string |
Nom de l’utilisateur qui a exécuté l’opération. |
| fonctionnement | string |
Nom de l’opération. |
| paramètres d'opération | map |
Paramètres de l’opération (par exemple, prédicats.) Pour OPTIMIZE les opérations, ces paramètres identifient le type d’opération. Consultez Identifier le type d’opérationOPTIMIZE. |
| tâche | struct |
Détails du travail Lakeflow qui a exécuté l’opération. Remplit uniquement les validations écrites à partir d’un travail Lakeflow. Sinon, null. |
| notebook | struct |
Détails du notebook Databricks depuis lequel l’opération a été exécutée. Remplit uniquement les validations écrites à partir d’un notebook Databricks. Sinon, null. |
| clusterId | string |
ID du cluster sur lequel l’opération s’est exécutée. |
| lireVersion | long |
Version de la table qui a été lue pour effectuer l’opération d’écriture. |
| isolationLevel | string |
Niveau d’isolation utilisé pour cette opération. |
| isBlindAppend | boolean |
Indique si cette opération a ajouté des données. |
| operationMetrics | map |
Métriques de l’opération (par exemple, nombre de lignes et de fichiers modifiés.) |
| UserMetadata | string |
Les métadonnées de commit définies par l’utilisateur, si elles ont été spécifiées. |
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
|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...|
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
Note
- Si vous écrivez dans une table à l’aide des méthodes suivantes, certaines colonnes ne sont pas disponibles :
- Les colonnes ajoutées à l’avenir seront toujours ajoutées après la dernière colonne.
Présentation des partitionBy paramètres d’opération
Le partitionBy champ de l’historique des tables n’est significatif que pour les opérations CREATE et OVERWRITE qui définissent ou modifient le schéma de partition d’une table.
Pour les opérations d’ajout à des tables existantes (APPEND, INSERT, DELETE UPDATE, MERGE), ce champ peut afficher un tableau [] ou des colonnes de partition vides en fonction de la méthode d’écriture utilisée (.save() vs .saveAsTable()).
Cette incohérence est attendue et n’affecte pas la façon dont les données sont écrites dans des partitions. Vous ne devez pas l’utiliser pour valider les opérations d’ajout.
Exemple
Considérez une table partitionnée par la date colonne. Lorsque vous créez la table, partitionBy est renseignée :
df.write.format("delta") \
.partitionBy("date") \
.saveAsTable("sales_data")
L’opération CREATE dans l’historique montre :
operationParameters: {
"mode": "ErrorIfExists",
"partitionBy": "[\"date\"]"
}
Lorsque vous ajoutez des données à cette table, partitionBy affiche un tableau vide :
new_df.write.format("delta") \
.mode("append") \
.saveAsTable("sales_data")
L’opération APPEND montre :
operationParameters: {
"mode": "Append",
"partitionBy": "[]"
}
La valeur vide partitionBy est attendue. Les données sont toujours écrites dans les partitions correctes en fonction du schéma de partition existant de la table. Notez que la référence .save() à un chemin d’accès peut afficher des colonnes de partition dans ce champ, mais cette différence est un détail d’implémentation et n’affecte pas le comportement d’écriture.
Métriques d’opération
L’opération history retourne une collection de métriques d’opération dans la operationMetrics carte de colonnes.
Les tableaux suivants répertorient les définitions de clé de mappage par opération.
WRITE, CREATE TABLE AS SELECT, REPLACE TABLE AS SELECT, COPY INTO
Les métriques suivantes sont disponibles pour ces opérations :
| Nom de la métrique | Description |
|---|---|
numFiles |
Nombre de fichiers écrits. |
numOutputBytes |
Taille en octets du contenu écrit. |
numOutputRows |
Nombre de lignes écrites. |
STREAMING UPDATE
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
numAddedFiles |
Nombre de fichiers ajoutés. |
numRemovedFiles |
Nombre de fichiers supprimés. |
numOutputRows |
Nombre de lignes écrites. |
numOutputBytes |
La taille des octets d’écriture. |
DELETE
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
numAddedFiles |
Nombre de fichiers ajoutés. Non fourni lorsque les partitions de la table sont supprimées. |
numRemovedFiles |
Nombre de fichiers supprimés. |
numDeletedRows |
Nombre de lignes supprimées. Non fourni lorsque les partitions de la table sont supprimées. |
numCopiedRows |
Nombre de lignes copiées dans le processus de suppression de fichiers. |
executionTimeMs |
Temps nécessaire pour exécuter l’ensemble de l’opération. |
scanTimeMs |
Le temps nécessaire pour analyser les fichiers afin de trouver des correspondances. |
rewriteTimeMs |
Temps nécessaire pour réécrire les fichiers correspondants. |
TRUNCATE
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
numRemovedFiles |
Nombre de fichiers supprimés. |
executionTimeMs |
Temps nécessaire pour exécuter l’ensemble de l’opération. |
MERGE
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
numSourceRows |
Nombre de lignes dans le DataFrame source. |
numTargetRowsInserted |
Nombre de lignes insérées dans la table cible. |
numTargetRowsUpdated |
Nombre de lignes mises à jour dans la table cible. |
numTargetRowsDeleted |
Nombre de lignes supprimées dans la table cible. |
numTargetRowsCopied |
Nombre de lignes cibles copiées. |
numOutputRows |
Nombre total de lignes écrites. |
numTargetFilesAdded |
Nombre de fichiers ajoutés au récepteur (cible). |
numTargetFilesRemoved |
Nombre de fichiers supprimés du récepteur (cible). |
executionTimeMs |
Temps nécessaire pour exécuter l’ensemble de l’opération. |
scanTimeMs |
Le temps nécessaire pour analyser les fichiers afin de trouver des correspondances. |
rewriteTimeMs |
Temps nécessaire pour réécrire les fichiers correspondants. |
UPDATE
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
numAddedFiles |
Nombre de fichiers ajoutés. |
numRemovedFiles |
Nombre de fichiers supprimés. |
numUpdatedRows |
Nombre de lignes mises à jour. |
numCopiedRows |
Nombre de lignes copiées dans le processus de mise à jour des fichiers. |
executionTimeMs |
Temps nécessaire pour exécuter l’ensemble de l’opération. |
scanTimeMs |
Le temps nécessaire pour analyser les fichiers afin de trouver des correspondances. |
rewriteTimeMs |
Temps nécessaire pour réécrire les fichiers correspondants. |
FSCK
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
numRemovedFiles |
Nombre de fichiers supprimés. |
CONVERT
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
numConvertedFiles |
Nombre de fichiers Parquet qui ont été convertis. |
OPTIMIZE
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
numAddedFiles |
Nombre de fichiers ajoutés. |
numRemovedFiles |
Nombre de fichiers optimisés. |
numAddedBytes |
Nombre d’octets ajoutés après l’optimisation de la table. |
numRemovedBytes |
Nombre d’octets supprimés. |
minFileSize |
Taille du fichier le plus petit après l’optimisation de la table. |
p25FileSize |
La taille du fichier du 25e percentile après l’optimisation du tableau. |
p50FileSize |
Taille médiane du fichier après l’optimisation de la table. |
p75FileSize |
Taille du fichier du 75e percentile après l’optimisation de la table. |
maxFileSize |
Taille du plus grand fichier après l’optimisation de la table. |
CLONE
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
sourceTableSize |
Taille en octets de la table source dans la version clonée. |
sourceNumOfFiles |
Le nombre de fichiers dans la table source dans la version qui est clonée. |
numRemovedFiles |
Nombre de fichiers supprimés de la table cible si une table précédente a été remplacée. |
removedFilesSize |
Taille totale en octets des fichiers supprimés de la table cible si une table précédente a été remplacée. |
numCopiedFiles |
Nombre de fichiers copiés vers le nouvel emplacement. 0 pour les clones superficiels. |
copiedFilesSize |
Taille totale en octets des fichiers copiés vers le nouvel emplacement. 0 pour les clones superficiels. |
RESTORE
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
tableSizeAfterRestore |
Taille de la table en octets après la restauration. |
numOfFilesAfterRestore |
Nombre de fichiers dans la table après la restauration. |
numRemovedFiles |
Nombre de fichiers supprimés par l’opération de restauration. |
numRestoredFiles |
Nombre de fichiers ajoutés à la suite de la restauration. |
removedFilesSize |
Taille en octets des fichiers supprimés par la restauration. |
restoredFilesSize |
Taille en octets des fichiers ajoutés par la restauration. |
VACUUM
Les métriques suivantes sont disponibles pour cette opération :
| Nom de la métrique | Description |
|---|---|
numDeletedFiles |
Nombre de fichiers supprimés. |
numVacuumedDirectories |
Nombre de répertoires vides. |
numFilesToDelete |
Nombre de fichiers à supprimer. |