日付別に生成された大量のテーブルを一つのビューで扱う
質問
以下のように、日毎に分割されたテーブルが存在する
events_20240801
events_20240802
events_20240803
・・・
各テーブルの構造は同じ
こうしたテーブルを一つのビューとして扱う方法はないか?
回答
以下の例のようにビューを記述すればOK
code: view.js
view: events_table {
sql_table_name: <dataset-id>.events_* ;;
# 以下、必要なDimension, Measureを定義してください。
# ・・・
}
日付情報がテーブル名にのみ存在する場合は、_TABLE_SUFFIXをディメンションとして登録することでデータとして利用可能になる
code: view.js
dimension_group: partition {
label: "データ基準日"
type: time
sql: TIMESTAMP(PARSE_DATE('%Y%m%d', REGEXP_EXTRACT(_TABLE_SUFFIX,r'\d\d\d\d\d\d\d\d'))) ;;
}
発展:
日付をフィルタとして設定することを強制することで、クエリサイズを節約するには以下のように設定する
code: sample.js
explore: log_table {
conditionally_filter: {
filters: {
field: partition_date
value: "1 day"
}
}
}
参照元