Schema van tabelgeschiedenis en operatiemetrieken

Het DESCRIBE HISTORY commando geeft 14 kolommen terug voor Apache Iceberg- en Delta Lake-tabellen die de geschiedenis van de tabeloperaties beschrijven. Gebruik deze referentie om elke kolom te interpreteren.

Voor begeleiding bij het ophalen van tabelgeschiedenis, het opvragen van eerdere tabelversies en het herstellen van een tabel, zie Werken met tabelgeschiedenis.

Geschiedenisschema

De uitvoer van de history bewerking heeft de volgende kolommen.

Rubriek Type Description
version long De tabelversie die door de bewerking is gegenereerd.
timestamp timestamp Wanneer deze versie is doorgevoerd.
userId string De id van de gebruiker die de bewerking heeft uitgevoerd.
userName string De naam van de gebruiker die de bewerking heeft uitgevoerd.
operatie string De naam van de operatie.
operationParameters map De parameters van de bewerking (bijvoorbeeld predicaten.) Voor OPTIMIZE bewerkingen identificeren deze parameters het type bewerking. Zie Het type van de OPTIMIZE-bewerking bepalen.
taak struct De details van de Lakeflow-taak die de bewerking heeft uitgevoerd. Wordt alleen ingevuld voor commits die door een Lakeflow-taak zijn uitgevoerd. Anders null.
notebook struct De details van het Databricks-notebook van waaruit de bewerking is uitgevoerd. Wordt alleen ingevuld voor commits die zijn gemaakt in een Databricks-notebook. Anders null.
clusterId string De id van het cluster waarop de bewerking is uitgevoerd.
leesVersie long De versie van de tabel die is gelezen om de schrijfbewerking uit te voeren.
isolationLevel string Het isolatieniveau dat voor deze bewerking wordt gebruikt.
isBlindAppend boolean Of aan deze bewerking gegevens zijn toegevoegd.
operationMetrics map De metrische gegevens van de bewerking (bijvoorbeeld het aantal rijen en bestanden dat is gewijzigd.)
userMetadata string De door de gebruiker gedefinieerde commitmetagegevens, indien opgegeven.
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
|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...|
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+

Opmerking

Inzicht partitionBy in bewerkingsparameters

Het partitionBy veld in de tabelgeschiedenis is alleen zinvol voor CREATE- en OVERWRITE-bewerkingen waarmee het partitieschema van een tabel wordt gedefinieerd of gewijzigd.

Voor toevoegbewerkingen aan bestaande tabellen (APPEND, INSERT, , UPDATEDELETE, MERGE), kan dit veld een lege matrix [] of partitiekolommen weergeven, afhankelijk van de gebruikte schrijfmethode (.save() vs .saveAsTable()).

Deze inconsistentie is verwacht gedrag en heeft geen invloed op de wijze waarop gegevens naar partities worden geschreven. U moet deze niet gebruiken om toevoegbewerkingen te valideren.

Voorbeeld

Overweeg een tabel die is gepartitioneerd door de date kolom. Wanneer u de tabel maakt, wordt partitionBy met het volgende ingevuld:

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

De bewerking CREATE in de geschiedenis toont:

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

Wanneer u gegevens aan deze tabel toevoegt, partitionBy wordt een lege matrix weergegeven:

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

De bewerking APPEND toont:

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

De lege partitionBy waarde wordt verwacht. De gegevens worden nog steeds naar de juiste partities geschreven op basis van het bestaande partitieschema van de tabel. Houd er rekening mee dat .save() naar een pad in dit veld mogelijk partitiekolommen weergeeft, maar dit verschil is een implementatiedetail en heeft geen invloed op het schrijfgedrag.

Operationele kengetallen

De history operatie geeft een verzameling operatiemetrieken terug in de operationMetrics kolomkaart.

In de volgende tabellen worden de kaartsleuteldefinities per operatie weergegeven.

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

De volgende metrische gegevens zijn beschikbaar voor deze bewerkingen:

Naam van meetwaarde Description
numFiles Het aantal geschreven bestanden.
numOutputBytes De grootte in bytes van de geschreven inhoud.
numOutputRows Het aantal geschreven rijen.

STREAMING UPDATE

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
numAddedFiles Het aantal toegevoegde bestanden.
numRemovedFiles Het aantal bestanden dat is verwijderd.
numOutputRows Het aantal geschreven rijen.
numOutputBytes De grootte van het schrijven in bytes.

DELETE

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
numAddedFiles Het aantal toegevoegde bestanden. Niet opgegeven wanneer partities van de tabel worden verwijderd.
numRemovedFiles Het aantal bestanden dat is verwijderd.
numDeletedRows Het aantal rijen dat is verwijderd. Niet opgegeven wanneer partities van de tabel worden verwijderd.
numCopiedRows Het aantal rijen dat is gekopieerd tijdens het verwijderen van bestanden.
executionTimeMs De tijd die nodig is om de hele bewerking uit te voeren.
scanTimeMs De tijd die nodig is om de bestanden te scannen op overeenkomsten.
rewriteTimeMs De tijd die nodig is om de overeenkomende bestanden te herschrijven.

TRUNCATE

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
numRemovedFiles Het aantal bestanden dat is verwijderd.
executionTimeMs De tijd die nodig is om de hele bewerking uit te voeren.

MERGE

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
numSourceRows Het aantal rijen in het dataframe van de bron.
numTargetRowsInserted Het aantal rijen dat is ingevoegd in de doeltabel.
numTargetRowsUpdated Het aantal rijen dat in de doeltabel is bijgewerkt.
numTargetRowsDeleted Het aantal rijen dat in de doeltabel is verwijderd.
numTargetRowsCopied Het aantal gekopieerde doelrijen.
numOutputRows Het totale aantal rijen dat is weggeschreven.
numTargetFilesAdded Het aantal bestanden dat is toegevoegd aan de sink (doel).
numTargetFilesRemoved Het aantal bestanden dat uit de sink (doel) is verwijderd.
executionTimeMs De tijd die nodig is om de hele bewerking uit te voeren.
scanTimeMs De tijd die nodig is om de bestanden te scannen op overeenkomsten.
rewriteTimeMs De tijd die nodig is om de overeenkomende bestanden te herschrijven.

UPDATE

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
numAddedFiles Het aantal toegevoegde bestanden.
numRemovedFiles Het aantal bestanden dat is verwijderd.
numUpdatedRows Het aantal rijen is bijgewerkt.
numCopiedRows Het aantal rijen dat zojuist is gekopieerd tijdens het bijwerken van bestanden.
executionTimeMs De tijd die nodig is om de hele bewerking uit te voeren.
scanTimeMs De tijd die nodig is om de bestanden te scannen op overeenkomsten.
rewriteTimeMs De tijd die nodig is om de overeenkomende bestanden te herschrijven.

FSCK

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
numRemovedFiles Het aantal bestanden dat is verwijderd.

CONVERT

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
numConvertedFiles Het aantal Parquet-bestanden dat is geconverteerd.

OPTIMIZE

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
numAddedFiles Het aantal toegevoegde bestanden.
numRemovedFiles Het aantal bestanden dat is geoptimaliseerd.
numAddedBytes Het aantal bytes dat is toegevoegd nadat de tabel is geoptimaliseerd.
numRemovedBytes Het aantal verwijderde bytes.
minFileSize De grootte van het kleinste bestand nadat de tabel is geoptimaliseerd.
p25FileSize De grootte van het 25e percentielbestand nadat de tabel is geoptimaliseerd.
p50FileSize De mediaanbestandsgrootte nadat de tabel is geoptimaliseerd.
p75FileSize De grootte van het 75e percentielbestand nadat de tabel is geoptimaliseerd.
maxFileSize De grootte van het grootste bestand nadat de tabel is geoptimaliseerd.

CLONE

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
sourceTableSize De grootte in bytes van de brontabel van de versie die wordt gekloond.
sourceNumOfFiles Het aantal bestanden in de brontabel in de versie die is gekloond.
numRemovedFiles Het aantal bestanden dat uit de doeltabel is verwijderd als een vorige tabel is vervangen.
removedFilesSize De totale grootte in bytes van de bestanden die uit de doeltabel zijn verwijderd als een vorige tabel is vervangen.
numCopiedFiles Het aantal bestanden dat naar de nieuwe locatie is gekopieerd. 0 voor ondiepe klonen.
copiedFilesSize De totale grootte in bytes van de bestanden die zijn gekopieerd naar de nieuwe locatie. 0 voor ondiepe klonen.

RESTORE

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
tableSizeAfterRestore De tabelgrootte in bytes na herstel.
numOfFilesAfterRestore Het aantal bestanden in de tabel na herstel.
numRemovedFiles Het aantal bestanden dat is verwijderd door de herstelbewerking.
numRestoredFiles Het aantal bestanden dat is toegevoegd als gevolg van het herstellen.
removedFilesSize De grootte in bytes aan bestanden die zijn verwijderd door het herstellen.
restoredFilesSize De grootte in bytes aan bestanden die door de herstelbewerking zijn toegevoegd.

VACUUM

De volgende metrische gegevens zijn beschikbaar voor deze bewerking:

Naam van meetwaarde Description
numDeletedFiles Het aantal verwijderde bestanden.
numVacuumedDirectories Het aantal gevacueerde mappen.
numFilesToDelete Het aantal te verwijderen bestanden.