テック

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レシピがおすすめです。

ビッグデータ分析
created by Rinker
¥4,180
(2023/02/06 23:28:36時点 Amazon調べ-詳細)

created by Rinker
技術評論社
¥2,398
(2023/02/06 23:50:42時点 Amazon調べ-詳細)

この記事に関連する記事