過去の snapshot のデータをプレビューする
プレビューでは、テーブルを変更せずに、過去の snapshot 時点での行を表示できます。誤った書き込みの直前のデータを確認したり、特定の日付のデータを証明したりする場面で利用できます。
前提条件
- role に
time_machine:readが含まれていること。portal_admin、data_engineer、data_analystrole には含まれています。 - Data Security でテーブルを読み取れること。
- テーブルに 1 件以上の snapshot があること。テーブルの snapshot タイムラインを表示するを参照してください。
データをプレビューする
- テーブルの Time Machine タブを開きます。
- 次のいずれかの方法で時点を指定します。
- タイムラインから snapshot を選択します。
- 日時を入力します。Time Machine は、その時刻以前に書き込まれた最後の snapshot を使用します。
- 任意: カラムを選んだり行を絞り込んだりするには、
SELECT文を入力します。カスタム SELECT を書くを参照してください。 - Preview を選択します。

SELECT を指定しない場合、プレビューはすべてのカラムを表示します。表示される行数はデフォルトで最大 1,000 行です。テーブルの行数がそれより多い場合は、結果が途中で切り取られたことを示すメッセージが表示されます。これはエラーではありません。必要な行を表示するには、WHERE フィルターを追加してください。
カスタム SELECT を書く
カスタム SELECT を使うと、過去の snapshot のカラムを選んだり、行を絞り込んだりできます。常に target_table という 1 つのソースから読み取ります。これは、選択した snapshot 時点のテーブルを表します。
SELECT order_id, customer_id, amount
FROM target_table
WHERE order_date = DATE '2026-09-30'
| 使えるもの | 使えないもの |
|---|---|
1 つの SELECT 文 | 複数の文 |
FROM target_table | 他のテーブル、JOIN、UNION |
カラムのリスト、または * | サブクエリ、WITH(CTE) |
WHERE フィルター | GROUP BY、COUNT、SUM などの集計 |
ウィンドウ関数、ORDER BY、LIMIT、OFFSET | |
実行のたびに新しい値を返す関数(rand()、uuid()、current_timestamp など) | |
INSERT、UPDATE、DELETE などの書き込み |
これらのルールにより、同じ SELECT は常に同じ結果を返します。そのため、データの比較でも同じ SELECT を再利用できます。これら以外の SQL を実行するには、Query Editor を使用してください。
文がルールに違反している場合、SELECT ボックスの横にエラーが表示されます。文を修正して、もう一度 Preview を選択してください。
問題が発生した場合
| 状況 | 意味 | 対処 |
|---|---|---|
| クエリが許可されていない | SELECT が上記のいずれかのルールに違反しています。 | 許可されている要素のみで書き直してください。 |
| snapshot が見つからない | 指定した日時がテーブルの最初の snapshot より前です。または、snapshot ID が存在しません。 | より後の時刻を指定するか、タイムラインから snapshot を選択してください。 |
| アクセスが拒否された | role またはデータアクセス権限で許可されていません。 | 管理者に time_machine:read またはテーブルへのアクセス権限を依頼してください。 |
| リクエストがタイムアウトした | プレビューが制限時間(デフォルトは 5 分)を超えました。 | WHERE フィルターを追加するか、カラム数を減らしてください。 |