DESCRIBE HISTORYコマンドは、テーブル操作の歴史を記述するApache IcebergおよびDelta Lakeテーブルの14列を返します。 この参照を使って各列を解釈してください。
テーブル履歴の取得、以前のテーブルバージョンの照会、テーブルの復元に関するガイダンスについては、「 テーブル履歴の操作」を参照してください。
履歴スキーマ
history 操作の出力には、次の列があります。
| コラム | タイプ | 説明 |
|---|---|---|
| バージョン | long |
操作によって生成されたテーブルのバージョン。 |
| timestamp | timestamp |
このバージョンがコミットされた時点。 |
| userId | string |
操作を実行したユーザーの ID。 |
| userName | string |
操作を実行したユーザーの名前。 |
| 操作 | string |
操作の名称。 |
| 操作パラメータ | map |
操作のパラメーター (述語など)。 OPTIMIZE 操作の場合、これらのパラメーターは操作の種類を識別します。
OPTIMIZE
操作の種類の識別を参照してください。 |
| ジョブ | struct |
操作を実行した Lakeflow ジョブの詳細。 Lakeflow ジョブから書き込まれたコミットに対してのみ設定します。 それ以外の場合は、 null。 |
| ノートブック | struct |
操作の実行元となった Databricks ノートブックの詳細。 Databricks ノートブックから書き込まれたコミットに対してのみ設定されます。 それ以外の場合は、 null。 |
| clusterId | string |
操作が実行されたクラスターの ID。 |
| バージョンを読む | long |
書き込み操作を実行するために読み取られたテーブルのバージョン。 |
| isolationLevel | string |
この操作に使用される分離レベル。 |
| isBlindAppend | boolean |
この操作によってデータが追加されたかどうか。 |
| operationMetrics | map |
操作のメトリック (変更された行とファイルの数など)。 |
| userMetadata | string |
ユーザー定義のコミット メタデータ (指定された場合)。 |
+-------+-------------------+------+--------+---------+--------------------+----+--------+---------+-----------+-----------------+-------------+--------------------+
|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
- 次のメソッドを使用してテーブルに書き込む場合、一部の列は使用できません。
- 将来追加される列は、常に最後の列の後に追加されます。
操作パラメーターの理解partitionBy
テーブル履歴の partitionBy フィールドは、テーブルのパーティション スキーマを定義または変更する CREATE 操作と OVERWRITE 操作でのみ意味があります。
既存のテーブルへの追加操作 (APPEND、INSERT、UPDATE、DELETE、MERGE) の場合、このフィールドには、使用される書き込み方法 ([]と.save()) に応じて、空の配列.saveAsTable()またはパーティション列が表示される場合があります。
この不整合は予期される動作であり、パーティションへのデータの書き込み方法には影響しません。 追加操作の検証には使用しないでください。
例
date列でパーティション分割されたテーブルについて考えてみましょう。 テーブルを作成すると、 partitionBy が設定されます。
df.write.format("delta") \
.partitionBy("date") \
.saveAsTable("sales_data")
履歴の CREATE 操作には、次の情報が表示されます。
operationParameters: {
"mode": "ErrorIfExists",
"partitionBy": "[\"date\"]"
}
このテーブルにデータを追加すると、 partitionBy に空の配列が表示されます。
new_df.write.format("delta") \
.mode("append") \
.saveAsTable("sales_data")
APPEND 操作は次を示します。
operationParameters: {
"mode": "Append",
"partitionBy": "[]"
}
空の partitionBy 値が必要です。 データは、テーブルの既存のパーティション スキーマに基づいて正しいパーティションに書き込まれます。 パスに .save() すると、このフィールドにパーティション列が表示されることがありますが、この違いは実装の詳細であり、書き込み動作には影響しません。
操作メトリック
history操作はoperationMetrics列マップ上で一連の操作メトリクスを返します。
次の表は、マップのキー定義を操作別に示しています。
WRITE、CREATE TABLE AS SELECT、REPLACE TABLE AS SELECT、COPY INTO
これらの操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numFiles |
書き込まれたファイルの数。 |
numOutputBytes |
書き込まれたコンテンツのサイズ (バイト単位)。 |
numOutputRows |
書き込まれた行の数。 |
STREAMING UPDATE
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numAddedFiles |
追加されたファイルの数。 |
numRemovedFiles |
削除されたファイルの数。 |
numOutputRows |
書き込まれた行の数。 |
numOutputBytes |
書き込みのバイト単位のサイズです。 |
DELETE
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numAddedFiles |
追加されたファイルの数。 テーブルのパーティションが削除された場合には提供されません。 |
numRemovedFiles |
削除されたファイルの数。 |
numDeletedRows |
削除された行の数。 テーブルのパーティションが削除された場合には提供されません。 |
numCopiedRows |
ファイルの削除処理中にコピーされた行の数。 |
executionTimeMs |
操作全体の実行にかかった時間。 |
scanTimeMs |
ファイルの一致をスキャンするためにかかった時間。 |
rewriteTimeMs |
一致したファイルの書き換えにかかった時間。 |
TRUNCATE
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numRemovedFiles |
削除されたファイルの数。 |
executionTimeMs |
操作全体の実行にかかった時間。 |
MERGE
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numSourceRows |
ソース DataFrame 内の行数。 |
numTargetRowsInserted |
ターゲット テーブルに挿入された行の数。 |
numTargetRowsUpdated |
ターゲット テーブルで更新された行の数。 |
numTargetRowsDeleted |
ターゲット テーブルで削除された行の数。 |
numTargetRowsCopied |
コピーされたターゲット行の数。 |
numOutputRows |
書き込まれた行の合計数。 |
numTargetFilesAdded |
シンク (ターゲット) に追加されたファイルの数。 |
numTargetFilesRemoved |
シンク (ターゲット) から削除されたファイルの数。 |
executionTimeMs |
操作全体の実行にかかった時間。 |
scanTimeMs |
ファイルの一致をスキャンするためにかかった時間。 |
rewriteTimeMs |
一致したファイルの書き換えにかかった時間。 |
UPDATE
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numAddedFiles |
追加されたファイルの数。 |
numRemovedFiles |
削除されたファイルの数。 |
numUpdatedRows |
更新された行の数。 |
numCopiedRows |
ファイルの更新処理中にコピーした行の数。 |
executionTimeMs |
操作全体の実行にかかった時間。 |
scanTimeMs |
ファイルの一致をスキャンするためにかかった時間。 |
rewriteTimeMs |
一致したファイルの書き換えにかかった時間。 |
FSCK
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numRemovedFiles |
削除されたファイルの数。 |
CONVERT
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numConvertedFiles |
変換された Parquet ファイルの数。 |
OPTIMIZE
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numAddedFiles |
追加されたファイルの数。 |
numRemovedFiles |
最適化されたファイルの数。 |
numAddedBytes |
テーブルが最適化された後に追加されたバイト数。 |
numRemovedBytes |
削除されたバイト数。 |
minFileSize |
テーブルが最適化された後の最小ファイルのサイズ。 |
p25FileSize |
テーブルが最適化された後の 25 パーセンタイル ファイルのサイズ。 |
p50FileSize |
テーブルが最適化された後のファイル サイズの中央値。 |
p75FileSize |
テーブルが最適化された後の 75 パーセンタイル ファイルのサイズ。 |
maxFileSize |
テーブルが最適化された後の最大ファイルのサイズ。 |
CLONE
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
sourceTableSize |
複製されたバージョンのソース テーブルのサイズ (バイト単位)。 |
sourceNumOfFiles |
複製されたバージョンのソース テーブル内のファイルの数。 |
numRemovedFiles |
前のテーブルが置き換えられた場合にターゲット テーブルから削除されたファイルの数。 |
removedFilesSize |
前のテーブルが置き換えられた場合にターゲット テーブルから削除されたファイルの合計サイズ (バイト単位)。 |
numCopiedFiles |
新しい場所にコピーされたファイルの数。 シャローコピーの場合は 0。 |
copiedFilesSize |
新しい場所にコピーされたファイルの合計サイズ (バイト単位)。 シャローコピーの場合は 0。 |
RESTORE
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
tableSizeAfterRestore |
復元後のテーブル サイズ (バイト単位)。 |
numOfFilesAfterRestore |
復元後のテーブル内のファイルの数。 |
numRemovedFiles |
復元操作によって削除されたファイルの数。 |
numRestoredFiles |
復元の結果として追加されたファイルの数。 |
removedFilesSize |
復元によって削除されたファイルのサイズ (バイト単位)。 |
restoredFilesSize |
復元によって追加されたファイルのサイズ (バイト単位)。 |
VACUUM
この操作では、次のメトリックを使用できます。
| 指標名 | 説明 |
|---|---|
numDeletedFiles |
削除されたファイルの数。 |
numVacuumedDirectories |
バキュームされたディレクトリの数。 |
numFilesToDelete |
削除するファイルの数。 |