そういえば書いたことがなかったのでメモとして
前提
分割テーブルとは
ここで説明する分割テーブルは以下の内容を指す
パーティション分割テーブルはパーティションと呼ばれるセグメントに分割された特殊なテーブルで、データの管理や照会をより簡単に行うことができます。大きいテーブルを小さいパーティションに分割することでクエリのパフォーマンスを向上させることができ、クエリで読み取られるバイト数を減らすことによってコストを管理できます。 - パーティション分割テーブルの概要 | BigQuery | Google Cloud
実際のUI上はどうなるか
yyyymmddを意識した形でテーブルを作っていった場合、UIだと以下のようになる
また、テーブルとしては以下のようになる
`demoproject-111111.hoge.logs20190424`
クエリの書き方
前提としてのワイルドカード
基本はワイルドカードを使う
ワイルドカード テーブルは、ワイルドカード式に一致するすべてのテーブルが結合されたものを表します。たとえば次の FROM 句は、ワイルドカード式 gsod* を使用しており、noaa_gsod データセット内の gsod という文字列で始まるすべてのテーブルに一致します。 - ワイルドカード テーブルを使用した複数テーブルに対するクエリ | BigQuery | Google Cloud
たとえば例に上げたような以下のテーブルがある場合
`demoproject-111111.hoge.logs20190424`
201904すべてのデータを取りたい場合は以下のような記述になる
SELECT * FROM `carbon-187007.fastly_staging.logs201904*` LIMIT 1000
_TABLE_SUFFIXで絞り込む
ワイルドカードだと範囲が広すぎるので絞りたい…という場合はBETWEENをつかうことで実現できる
たとえば20190422から20190424までの場合は先程のクエリを改変して以下のようにする
SELECT * FROM `carbon-187007.fastly_staging.logs201904*` WHERE _TABLE_SUFFIX BETWEEN '22' AND '24'
これで範囲を指定して取得することができる