G-gen の西田です。Cloud Storage にアップロードした CSV ファイルをデータソースとして、自動で更新される Looker Studio レポートを作成する手順を解説します。

当記事の概要
当記事では、オブジェクトストレージの Cloud Storage、データウェアハウスの BigQuery、BI ツールの Looker Studio の3つのサービスを利用します。Cloud Storage に保存した CSV ファイルを BigQuery の外部テーブルとして参照し、そのデータを Looker Studio で可視化します。
① Cloud Storage
テキストや画像、動画などの非構造化データなど様々な形式のデータを、容量無制限で保存できるオブジェクトストレージサービスです。
② BigQuery
BigQuery とは、Google Cloud のフルマネージドな分析用データベースです。BigQuery のデータは表形式で保存され、SQL や Web API 経由でデータを操作できます。
③ Looker Studio
Looker Studio とは、Google Cloud が提供する完全クラウドベースのダッシュボードツールであり、当記事で取り扱う BigQuery 以外にも、Google アナリティクスや Google スプレッドシート等、様々なデータソースへ接続でき、SQL 等の専門知識がなくてもダッシュボード作成が可能です。
なお名前がよく似ている Looker と Looker Studio は、それぞれ別製品ですのでご注意ください。当記事では Looker Studio を扱います。これらの2製品の違いは、以下の記事も参照してください。
構成図
このシステムでは、ユーザーは Looker Studio レポートを通じて、Cloud Storage 上の CSV ファイルを可視化できます。システム構成は次の通りです。
データの可視化は Looker Studio レポートによって行われます。
このレポートからは、BigQuery の外部テーブルをデータソースとして指定します。外部テーブルとは、BigQuery の外部にあるファイルを BigQuery からクエリできるようにする機能です。
この BigQuery 外部テーブルは、Cloud Storage バケットの所定のパスをデータソースとしています。このパスには、社内システムなどからエクスポートした CSV ファイルが管理者または自動ジョブによりアップロードされる想定です。
これにより、ユーザーが Looker Studio レポートへアクセスすると、Looker Studio から BigQuery 外部テーブルに SQL が発行されます。外部テーブルからは Cloud Storage 上のファイルが直接参照されるため、Cloud Storage から BigQuery へのデータ転送は不要です。また、常に最新のファイルが参照されることになります。

BigQuery の外部テーブルについては、以下の記事でも解説されています。
サンプルデータの内容
当記事では、文房具やPCサプライ品を販売する架空の会社の、販売実績や見込金額のサンプルデータを使います。データは、月ごとに別々の CSV ファイルに格納されています。
CSV ファイルのスキーマは、以下のようなものです。
| customer_id | customer_name | stationery | pc_supplies | estimate | industory |
|---|---|---|---|---|---|
| GS00001 | 株式会社アルファネクスト | 4,178 | 6,153 | 8,000 | 情報通信 |
| GS00003 | 株式会社シーウェーブソリューションズ | 1,790 | 2,623 | 3,000 | サービス |
| ・・・ | ・・・ | ・・・ | ・・・ | ・・・ | ・・・ |
列名は、左から「顧客 ID」「顧客名」「文房具の売上」「PC サプライ品の売上」「見込金額」「業種」を示しています。
構築手順の概要
構築は以下の3ステップで完了します。
- Cloud Storage : CSV ファイルを保管する環境を構築する
- BigQuery : Cloud Storage に保存した CSV ファイルのデータを Looker Studio で表示するための外部テーブルを構築する
- Looker Studio : BigQuery テーブルのデータをレポートで可視化する
バケットの作成
まずは、CSV ファイルを保存する Cloud Storage の準備をします。Cloud Storage では、データをバケットと呼ばれるコンテナに格納します。バケットの中にフォルダやファイルを保存できます。このバケット単位でアクセス権の制御を行うことができます。
Cloud Storage > バケット のページにアクセスして、[バケットを作成]をクリックします。

バケット名やデータの保存場所を指定して [作成] ボタンをクリックします。バケットの名称は、グローバルで一意となるようにする必要があります。

当記事では、その他の設定項目はデフォルトのままで最下部の [作成] ボタンをクリックします。
「公開アクセスの防止」というポップアップが表示された場合は、右下の [続行] ボタンをクリックします。

CSV ファイルの保存
バケットが作成できたら、CSV ファイルを保存する準備をします。
作成したバケットにアクセスし、[フォルダの作成] をクリックします。

Cloud Storage に保存した CSV データを BigQuery の外部テーブルとして扱う際、フォルダ名を Key=Value の形式(例: ym=202504)で作成すると、そのキー(この場合は ym)をテーブルの列として自動的に認識させることができます。これを外部データのパーティション分割(または Hive パーティショニング)と呼びます。当記事で扱う CSV データには年月を表す列がないため、この仕組みを利用してデータを分割します。
外部データをパーティション分割することにより、データを月別にフィルタして表示した際に、Cloud Storage 上のすべてのファイルがフルスキャンされるのではなく、特定の月のファイルのみがスキャンされることになります。これはパフォーマンス向上と、コスト効率の向上に繋がります。

作成したフォルダにアクセスし、[アップロード] をクリックし、CSV ファイルをアップロードします。アップロードは、画面にファイルをドラッグアンドドロップする方法もあります。

データセットの作成
次に、BigQuery で先程の CSV を読み取るための、外部テーブルを作成します。
BigQuery のテーブルは、データセットという論理的な入れ物の配下に作成します。
BigQuery のコンソール画面で、プロジェクトIDの右側にある3点リーダーをクリックし、[データセットを作成] をクリックします。

データセットIDやリージョンを指定して、[データセットを作成] ボタンをクリックします。

テーブルの作成
作成したデータセットの中に、テーブルを作成します。

設定手順は表の通りです。
- [Create table from] で
Google Cloud Storageを選択 - [GCS バケットからファイルを選択するか URI パターンを使用します] の欄に
<作成したバケット名>/*を入力
(/* をつけることで、バケット配下の全てのファイル(フォルダを含む)を対象に指定しています。)
(例)sales-data-csv-mnishida-blog/* - [ファイル形式] で
CSVを選択 - [ソースデータ パーティショニング] のチェックをオン
- [ソース URI の接頭辞を選択] の欄に、
gs://<作成したバケット名>を入力
(例)gs://sales-data-csv-mnishida-blog - [パーティション推論モード] で [独自に指定します] を選択する
- [フィールドを追加] をクリックし、[フィールド名] に
ymを入力
(4~7の設定で、先ほど Cloud Storage でym=202504のように作成したフォルダ名をパーティション列として認識させています。) - [テーブル] 欄にテーブル名を入力 (例)
t_sales_data - [テーブルタイプ] で
外部テーブルを選択 - スキーマの [自動検出] のチェックをオン
- 詳細オプションを開き、[スキップするヘッダー行] に
1を入力
(CSV ファイルの1行目が見出し行であるため、データとして読み込まないように設定しています。) - [テーブルを作成] ボタンをクリック



Looker Studio の作成
作成したテーブルを選択し、[次で開く] の中から [Looker Studio] を選択します。

Looker Studio のレポート画面は、画面上部のメニューから任意のグラフやコントロールを追加します。

以下は、サンプルレポートの画面と設定内容です。

① テキスト
② グラフ > スコアカード
③ グラフ > スコアカード
④ コントロール > プルダウン リスト
⑤ コントロール > プルダウン リスト
⑥ グラフ > 円グラフ
⑦ グラフ > 棒グラフ
⑧ グラフ > 表
現時点では4月分のデータのみ保存しているため、レポートでも4月分のデータしか閲覧できません。

他の月のデータを表示するためには、Cloud Storage のバケット内に4月分のフォルダを作成した時と同様に、ym=202505、ym=202506 などのフォルダを作成してファイルを保存するだけでデータの更新できます。

各月のファイルを保存した後に Looker Studio でデータを更新することで、追加した月の選択やデータの閲覧が可能となります。

西田 匡志(記事一覧)
クラウドソリューション部ソリューションアーキテクト課
美容商社→物流→情シスを経て、2025年6月G-genにジョイン。Google Cloud を通じて多くの人に貢献できるよう日々精進!
コメント