テーブル履歴スキーマと運用指標

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列マップ上で一連の操作メトリクスを返します。

次の表は、マップのキー定義を操作別に示しています。

WRITECREATE TABLE AS SELECTREPLACE TABLE AS SELECTCOPY 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 削除するファイルの数。