Time Machine の概要
Time Machine では、テーブルの過去の状態と、2 つの時点の間で何が変わったかを確認できます。誤ったデータを書き込んだ夜間ジョブの調査や、監査担当者に特定の日のデータを示す場面で利用できます。
Time Machine はデータの読み取りのみを行います。特別な SQL は不要で、テーブルを復元したりコピーしたりする必要もありません。
snapshot の仕組み
テーブルにデータが書き込まれるたびに、Lakehouse は新しい snapshot を保存します。snapshot は、その時点のテーブル全体を固定した読み取り専用のバージョンです。古い snapshot も残るため、いつでも過去の状態に戻って確認できます。
各 snapshot には、書き込まれた日時、書き込みの種類(たとえば append や overwrite)、追加されたレコード数が記録されます。
できること
| タスク | わかること | ページ |
|---|---|---|
| snapshot のタイムラインを表示する | テーブルがいつ、どのように変更されたか。 | テーブルの snapshot タイムラインを表示する |
| 過去のデータをプレビューする | その時点の行がどのような内容だったか。 | 過去の snapshot のデータをプレビューする |
| 構造を比較する | カラム、partition、ファイル、レコード数が変わったか。 | 2 つの snapshot の構造を比較する |
| データを比較する | どの行が追加、削除、変更されたか。 | 2 つの snapshot のデータを比較する |
調査の基本的な流れ
- テーブルのタイムラインを開き、数値が変わった snapshot を見つけます。
- その直前の snapshot をプレビューして、当時のデータを確認します。
- 2 つの snapshot の構造を比較します。短時間で完了し、schema やレコード数が変わったかどうかがわかります。
- 2 つの snapshot のデータを比較して、変更された行を正確に特定します。
データの比較は、構造の比較よりもはるかに多くのデータを読み取ります。そのため Time Machine は先にサイズを見積もり、実行前に確認を求めます。
利用できるテーブル
Time Machine は、snapshot を保持する Lakehouse のテーブル形式のテーブルで利用できます。ビューや他の形式のテーブルには snapshot がないため、Time Machine で開けません。
snapshot がまだない新しいテーブルでは、タイムラインは空で表示されます。比較するには、テーブルに 2 つ以上の snapshot が必要です。
データアクセス権限が適用されます
Time Machine は、自分のアカウントでデータを読み取ります。Query Editor と同じルールが適用されます。つまり、読み取れるテーブル、表示できるカラム、行フィルター、Data Security のマスクされたカラムが対象です。Time Machine が、自分でクエリできる範囲を超えてデータを表示することはありません。
デフォルトの制限
制限は、共有の Lakehouse を非常に大きな読み取りから守るためのものです。管理者が変更できます。
| 制限 | デフォルト |
|---|---|
| プレビューで表示される行数 | 1,000 |
| 1 回のデータ比較で読み取るデータ量(実行前に見積もり) | 10 GB |
| 1 回のデータ比較で読み取る行数 | 50,000,000 |
| 1 回のデータ比較で返される差分の数 | 10,000 |
| 見積もり表示後にデータ比較を実行できる時間 | 5 分 |
| 1 回のリクエストの制限時間 | 5 分 |
| 同時に実行できるデータ比較の数 | 1 |
Time Machine を利用できるユーザー
| 権限 | できること | 権限を持つ role |
|---|---|---|
time_machine:read | snapshot のタイムラインの表示と、過去のデータのプレビュー。 | portal_admin, data_engineer, data_analyst |
time_machine:metadata_diff | 2 つの snapshot の構造の比較。 | portal_admin, data_engineer, data_analyst |
time_machine:data_diff | 2 つの snapshot のデータの比較。 | portal_admin, data_engineer, data_analyst |
ポータルの role と権限を参照してください。