GA4Query

お問い合わせ

ワイルドカードテーブルと _TABLE_SUFFIX の使い方 | GA4QUERY

公開日:2022年09月06日
更新日:2023年02月14日
GA4+BigQueryにおけるワイルドカードテーブルと _TABLE_SUFFIX の使い方

今回はワイルドカードで抽出した値を、_TABLE_SUFFIXという新たに作成した任意の列に格納する方法について解説する。

ワイルドカードで数値を抽出する

まずGA4のデータをBigQueryにエクスポートすると、自動的に日付ごとに分割されたテーブルが生成される。

そこで、日付ごとに分割された大きいテーブルを、小さい分割テーブルに分けることで、クエリのパフォーマンスを向上させたり、コストを抑えることができるのである(これはGoogle先生が自動でやってくれるのがありがたい!)。

(公式ドキュメント参考)

・分割テーブルの概要

https://cloud.google.com/bigquery/docs/partitioned-tables?hl=ja

まず最初に、1日単位ではなく複数の日付にまたがって集計をかけたい場合は、日付表現のところに 「* (ワイルドカード)」を含めることで集計をかけることが可能だ。

ワイルドカードを用いた記述方法

例えば、2022年07月すべてのテーブルからデータを集計したい場合の記述は以下のようになる。

technogram-354804.analytics_291973511.events_intraday_202207*

続いて、2022年すべてのテーブルからデータを集計したい場合は以下のようになる。

technogram-354804.analytics_291973511.events_intraday_2022*

最後に、存在するすべてのテーブルからデータを集計したい場合は以下のようになる。

technogram-354804.analytics_291973511.events_intraday_*

※存在する全てのテーブルからデータを集計する場合、クエリコストが非常に大きくなる可能性があるので注意が必要だ。

ワイルドカード(*)と_TABLE _SUFFIXの併用

また取得する期間を制限するため、例えば2022年7月1日から20日までのデータを集計したいという場合は、 _TABLE_SUFFIX を使うことができる。

上記ワイルドカード表現を使うと_TABLE_SUFFIX という特別な列が自動生成され、 *で置き換えた部分の値が格納される。

例えば、 202207* であれば、 _TABLE_SUFFIX には 01 から 31 までの値が格納されている。(数値ではなくテキストなので注意!)

また、以下のように WHERE 句で _TABLE_SUFFIX の条件を指定することで、2022年07月1日から20日までのデータ集計が可能になる。

WHERE
  _TABLE_SUFFIX BETWEEN '01' AND '20'

BigQueryを用いた効率的なデータ集計の際には、ワイルドカードからTABLE_SUFFIXを用いる方法を、ぜひ考慮したい。

(公式ドキュメント参考)

ワイルドカード テーブルを使用した複数テーブルに対するクエリ

https://cloud.google.com/bigquery/docs/querying-wildcard-tables?hl=ja

この記事の執筆者

Akifumi Watanabe

Webディレクター・上級Web解析士。 Google Analytics Certification保有。 GA4Queryの記事作成担当。 Web分析を活かした制作ディレクションを中心に行う。 元制作者の目線を活かしweb改善に取り組む。