2 つの snapshot のデータを比較する
データの比較では、2 つの snapshot の間で追加、削除、変更された行を正確に一覧表示します。誤った書き込みの後にインシデントレポートを作成したり、再読み込みで何が変わったかを確認したりする場面で利用できます。
データの比較は大量のデータを読み取る場合があります。そのため Time Machine は、2 つのステップで実行します。まずリクエストを確認し、読み取る量を見積もります。見積もりを確認した後にのみ、比較を実行します。
前提条件
- role に
time_machine:data_diffが含まれていること。portal_admin、data_engineer、data_analystrole には含まれています。 - Data Security でテーブルを読み取れること。
- テーブルに 2 件以上の snapshot があること。
比較キーを選ぶ
比較キーは、行を識別する 1 つ以上のカラムです。たとえば order_id です。Time Machine は、このキーで 2 つの snapshot の行を対応付けます。
キーは次の条件を満たす必要があります。
- 一意であること: 同じ snapshot 内で、同じキーを持つ行が 2 つ以上ないこと。
- 空でないこと: キーのカラムに
NULLを持つ行がないこと。 - 出力に含まれること: カスタム
SELECTを書く場合は、キーのカラムを含める必要があります。
比較が成功すると、Time Machine はそのテーブルのキーを保存します。次回以降は、同じキーが候補として表示されます。保存されたキーは個人用で、他のユーザーには表示されません。
データを比較する
- テーブルの Time Machine タブを開きます。
- Snapshot A で古い snapshot を選択します。
- Snapshot B で新しい snapshot を選択します。A が「前」、B が「後」であることは、2 つの snapshot の構造を比較すると同じです。
- Data Diff を選択します。
- Comparison key に表示されたキーの候補を確認するか、キーのカラムを入力します。
- 任意: 一部のカラムや行だけを比較するには、
SELECTを入力します。ルールはプレビューと同じです。カスタム SELECT を書くを参照してください。 - Prepare を選択します。Time Machine がリクエストを確認し、見積もりを表示します。
- 見積もられたデータサイズと行数、および確認の有効期限を確認します。
- 確認の有効期限が切れる前に Execute を選択します。

Prepare は行を比較せず、キーも保存しません。見積もりが制限(デフォルトは 10 GB のデータ)を超える場合は、続行できません。読み取るデータを減らすには、SELECT に WHERE フィルターを追加し、もう一度 Prepare を選択してください。
確認の有効期限は、デフォルトで 5 分です。期限が切れた場合は、もう一度 Prepare を選択してください。Prepare の後は、snapshot、キー、SELECT を変更できません。変更するには、前の手順に戻って、もう一度 Prepare を選択してください。
結果の見方

サマリーでは、行を 4 つのグループに分けて件数を表示します。一覧には、差分のある行のみが表示されます。
| 変更の種類 | 意味 | 表示される値 |
|---|---|---|
ADDED | キーが B にあり、A にはありません。 | 後 |
REMOVED | キーが A にあり、B にはありません。 | 前 |
CHANGED | キーは両方にありますが、一部の値が異なります。 | 前と後 |
UNCHANGED | キーが両方にあり、値も同じです。件数のみで、一覧には表示されません。 | — |
2 つの snapshot でカラムが異なる場合(たとえば、その間にカラムが追加された場合)、キーが両方の snapshot にある行は CHANGED と表示されます。
比較では、デフォルトで最大 10,000 件の差分が返されます。それを超える場合は、一覧の一部だけを表示するのではなく、失敗として扱われます。そのため、不完全なレポートを受け取ることはありません。
問題が発生した場合
| 状況 | 意味 | 対処 |
|---|---|---|
| 比較キーが必要 | キーを入力しておらず、このテーブルに保存されたキーもありません。 | キーのカラムを入力してください。 |
| 比較キーが無効 | キーのカラムが出力に含まれていないか、重複して指定されています。または、キーが空または重複している行があります。 | 一意で空にならないカラムを選び、SELECT に含めてください。 |
| 見積もりが制限を超えている | 比較が許可された量を超えるデータを読み取ることになります。 | WHERE フィルターを追加し、もう一度 Prepare を選択してください。 |
| 確認の有効期限が切れた | 5 分を超えたか、Prepare の後にテーブルまたは制限が変更されました。 | もう一度 Prepare を選択してください。 |
| 差分が多すぎる | 差分のある行が 10,000 行を超えています。 | WHERE フィルターを追加して、より小さい範囲(たとえば 1 日分)を比較してください。 |
| 実行中の比較が多すぎる | すでに 1 件のデータ比較を実行中か、Lakehouse が混み合っています。 | 完了するまで待ってから、もう一度実行してください。 |
| リクエストがタイムアウトした | 比較が制限時間(デフォルトは 5 分)を超えました。 | WHERE フィルターを追加するか、カラム数を減らしてください。 |
| アクセスが拒否された | role またはデータアクセス権限で許可されていません。 | 管理者に time_machine:data_diff またはテーブルへのアクセス権限を依頼してください。 |