Open3

【BigQuery】Bigquery

YuichiYuichi

https://qiita.com/aspiratio/items/85267bc05b50eaaf026b

過去の状態のテーブルが見たい(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);
YuichiYuichi

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 に固有のものかがわかります。
この方法は、両方のテーブルの差分を効率的に取得しつつ、各行の出所を明確にすることができます。データ分析やデバッグの際に特に有用です
https://qiita.com/zackey2/items/fa49cd7c5bd24acd0485


```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
)