テック

BigQuery | _TABLE_SUFFIX の使い方

使い方

日付別に分割されたテーブルをまとめて参照したい時につかいます。

例えば

  • table_name_20230130
  • table_name_20230131
  • table_name_20230201
  • table_name_20230207

のようなテーブルからデータ取得する場合、以下のようになります。

SELECT
   *
FROM
  `project_id.dataset.table_name_*`
WHERE
  _TABLE_SUFFIX  BETWEEN '20230130' AND  '20230207'

日付を動的にすることもできます。例えば、直近1週間分を対象にする場合は以下のようになります。

SELECT
   *
FROM
  `project_id.dataset.table_name_*`
WHERE
  _TABLE_SUFFIX BETWEEN
    FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 WEEK)) AND
    FORMAT_DATE('%Y%m%d', CURRENT_DATE('Asia/Tokyo'))

解説

  • テーブル名の日付部分をワイルドカードにする
  • ワイルドーカードの部分を _TABLE_SUFFIX の条件で範囲指定
  • 日付別にシャーディングされたテーブルに使う

関連リンク

より実務的なクエリを身につけるにはビッグデータ分析・活用のためのSQLレシピがおすすめです。

ビッグデータ分析
この記事に関連する記事