Open3
【BigQuery】Bigquery
この人の記事学びが多い
過去の状態のテーブルが見たい(7日前まで)
SELECT
*
FROM
`dataset.table_name`
-- 絶対時間
FOR SYSTEM_TIME AS OF TIMESTAMP('2023-12-01 14:00:00', 'Asia/Tokyo');
-- 相対時間
-- FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 2 HOUR);
2つのテーブル(table1とtable2)の差分を両方向で取得
SELECT 'table1' AS source_table, *
FROM (
SELECT * FROM {table1}
EXCEPT DISTINCT
SELECT * FROM {table2}
)
UNION ALL
SELECT 'table2' AS source_table, *
FROM (
SELECT * FROM {table2}
EXCEPT DISTINCT
SELECT * FROM {table1}
)
このクエリでは、以下の変更を行っています:
各サブクエリの結果に source_table という新しいカラムを追加しています。
table1 からの結果には 'table1' という値を、table2 からの結果には 'table2' という値を設定しています。
この修正により、結果セットの各行がどちらのテーブルからのものかを簡単に識別できるようになります。source_table カラムの値を確認することで、その行が table1 に固有のものか、table2 に固有のものかがわかります。
この方法は、両方のテーブルの差分を効率的に取得しつつ、各行の出所を明確にすることができます。データ分析やデバッグの際に特に有用です
```WITH new_table AS (
新しいロジック
)
SELECT
'new_table' AS source_table
,*
FROM (
SELECT * FROM new_table
EXCEPT DISTINCT
SELECT * FROM {{ ref('既存のモデル') }}
)
UNION ALL
SELECT
'old_table' AS source_table
,*
FROM (
SELECT * FROM {{ ref('既存のモデル') }}
EXCEPT DISTINCT
SELECT * FROM new_table
)