こんにちは。新米分析官のA.K.です! 今回は、Looker StudioでBigQuery上にあるシャーディングテーブルを読み込んだ時のエラーとその対処方法についてご紹介します。
エラーの紹介
Bigquery側でサンプル用のテーブルを用意しました。テーブルはサフィックスに「YYYYMMDD」形式で日付を持っているデータです。中には適当な値を入れています。

作成に使用したクエリ例は以下の通りです。
create or replace table {dataset}.demo_{yyyymmdd} (
create_datetime DATETIME,
category STRING,
price INT64
);
insert into {dataset}.demo_{yyyymmdd}
(create_datetime, category, price)
VALUES
('2023-02-15 08:00:00', 'beverage', 100),
('2023-02-15 09:00:00', 'food', 300),
('2023-02-15 10:00:00', 'daily necessities', 500),
('2023-02-15 11:00:00', 'medicine', 100),
('2023-02-15 12:00:00', 'beverage', 150)
こちらのテーブルをLooker Studioから読みこんでみます。まず、Looker Studioに移動します。
Looker Studioで「作成」>「レポート」をクリックすると、コネクタを選択する画面に移行するので、コネクタから「BigQuery」を選択します。

BigQuery上にあるプロジェクトの選択画面に移行するので、先ほど作成したサンプル用のテーブル(demo_YYYYMMDD)を読み込ませてみます。

すると、下記画像のようにデータは正常に読み込まれますが、データが認識されない状態になります。エラーメッセージも出ない為、何が原因なのかよくわかりませんでした。

原因の探索
Looker StudioとBigQueryのシャーディングテーブルについて調べてみると、下記の記事がヒットしました。
記事内で、「BigQueryで1日分しかデータがない日付シャーディングテーブルをうまく描画できない」との記載があります。
今回用意したサンプルテーブルは2日分用意しているため、上記内容とは異なるのですが、生じている現象は同じでした。
どうやら、Looker StudioとBigQueryのシャーディングテーブルは相性が良くないみたいです。根本の原因はよくわかりませんが、シャーディングテーブルをそのまま読み込むとデータを正しく認識してくれなさそうです。
そこでカスタムクエリを利用して、データを読み込んでみます。
解決方法
まず、画面右側のデータ編集のサイドバーからアイコンをクリックして、データ編集の画面を開きます。データ編集画面から「接続を編集」をクリックして、BigQueryのプロジェクト選択画面に戻ります。

画面左側のサイドバーから「カスタムクエリ」を選択して、課金プロジェクトを選択します。課金プロジェクトを選択すると、カスタムクエリを記述する枠が出てくるので、こちらにクエリを書いていきます。

カスタムクエリは下記を使用します。
SELECT *
FROM `{dataset}.demo_*`
WHERE _table_suffix BETWEEN @DS_START_DATE AND @DS_END_DATE;
カスタムクエリの「@DS_START」と「@DS_END_DATE」はLooker Studio内の日付パラメータになります。カスタムクエリが書けたら、「期間パラメータを有効にする」にチェックを付けて「再接続」をクリックします。データ接続変更に関して、注意のポップアップが表示されるので、「適用」をクリックしたのち、「完了」ボタンからデータソースの編集を終了します。
次に、「コントロールを追加」>「期間設定」から期間を指定するためのパラメータを作成します。

パラメータが作成できたら、日付をシャーディングテーブルの日付に変更すると、見事データが読み込まれました。
補足
後々、気が付いたことですが、月を跨いだシャーディングテーブルが正しく読み込まれないようです。サンプルで使用していた2つのシャーディングテーブルのうち、片方の日付を「20230201」に変更してみます。(2023年2月現在)

カスタムクエリを使用しない通常の読み込み方法で、Looker Studioに読み込ませてみると「20230201」に変更した日付のテーブルのみが正しくデータが読み込まれました。どうやら、Looker Studio側で「現在年月」のシャーディングテーブルのみを読み込むように設計されている(バグ?)ようでした。

最後に
いかがでしたでしょうか。根本的な原因の解決はできませでしたが、カスタムクエリを使用することで、BigQueryのシャーディングテーブルをLooker Studioで可視化することができました。BigQueryのシャーディングテーブルは、課金量を抑えるためにも便利な機能なので、Looker Studioで手軽に読み込めないのは致命的かなと思います。早く修正されるとありがたいですね…。