Amazon QuickSight で BigQuery を経由してスプレッドシートのデータを可視化できるのか確認してみた

Amazon QuickSight で BigQuery を経由してスプレッドシートのデータを可視化できるのか確認してみた

Clock Icon2025.06.12

はじめに

QuickSight から Google スプレッドシートの内容を分析、可視化したいと思ったことはありませんか?

Untitled(21).png

BigQuery ではスプレッドシートのデータを外部テーブルで参照する方法があります。QuickSight からこの方法を試すと、QuickSight 上でデータセットの作成はできるものの、データ取得時に API エラーが発生しました。本記事ではこのエラーについて検証した結果を紹介します。

Data_Prep (1).png

検証結果早見

BigQuery のテーブル種類によって QuickSight の対応状況は異なりました。

BigQuery と QuickSight の組み合わせについてのサポート状況をまとめました。

テーブル種類 データソース データセット作成 データアクセス 結果
ネイティブテーブル BigQuery 内部 ✅ 可能 ✅ 可能 ✅ OK
BigLake テーブル Cloud Storage ✅ 可能 ✅ 可能 ✅ OK
BigLake 以外の外部テーブル Google Drive ✅ 可能 ❌ エラー ❌ NG

つまり、スプレッドシートのデータを BigQuery 経由で QuickSight で分析、可視化はできませんでした。

検証のきっかけ

QuickSight のデータソースとして BigQuery を利用しました。接続環境は以下の記事を参照ください。

https://dev.classmethod.jp/articles/quicksight-bigquery-direct-query-test/

BigQuery を利用してスプレッドシートの内容を BigQuery 経由でアクセスし、QuickSight で分析・可視化したいと考えました。

エラーが起きる

BigQuery で Google Drive を参照する外部テーブルの場合、QuickSight では以下のエラーが発生しました。

  • QuickSight 上でデータセット作成は成功
  • データ取得時に API エラーが発生
  • ダイレクトクエリ、SPICE 取り込みの両方でエラー

Data_Prep (1).png

データセットは作成できるのにエラーになるとはどういうことなのか、戦いがはじまりました。

BigQuery のテーブル種類について

BigQuery では 2 つの大きなカテゴリに分類される 3 つのテーブル種類があります。

  1. ネイティブテーブル
  2. 外部テーブル
    • BigLake テーブル
    • BigLake 以外の外部テーブル

テーブルを作成_–_BigQuery_–_ohmura_yasutaka_–_Google_Cloud_コンソール.png

ネイティブテーブル

BigQuery 内部に格納した構造化データのテーブルです。今回問題となったのは外部テーブルです。

外部テーブル

外部テーブルは BigQuery 以外のデータソースを参照するテーブルです。外部テーブルには BigLake テーブルと、BigLake 以外の外部テーブルの 2 つのタイプがあります。

AWS で例えると S3 に保存したデータを Athena 経由でアクセスするイメージです。

https://dev.classmethod.jp/articles/google-cloud-like-athena-s3/

スプレッドシートを参照するのは BigLake 以外の外部テーブル に該当します。

検証方法

BigQuery に 3 つのテーブルを作成しました。

BigQuery_–_ohmura_yasutaka_–_Google_Cloud_コンソール.png

QuickSight で各テーブルに対してデータセットを作成します。

New_Data_Set-23.png

3 つのデータセットを作成できました。
QuickSight_-_データセット-4.png

後は地道に各データセットのデータを読み込めるかテストしていきます。
biglake_analysis.png

検証結果

ネイティブテーブルと BigLake テーブル

ネイティブテーブルと BigLake テーブルは QuickSight から正常にアクセスできました。データセット作成からデータ取得まで問題なく動作します。

BigLake 以外の外部テーブル(Google Drive 参照)

Google Drive のスプレッドシートを参照する外部テーブルでは以下の結果となり、QuickSight からは利用できませんでした。

  • データセット作成は成功
  • データ取得時に BigQuery の API エラーが発生
  • ダイレクトクエリ、SPICE 取り込みの両方で同様のエラー

エラーメッセージ詳細

Data_Prep (1).png

エラーメッセージ(文字列検索用)
sourceErrorCode: 100032
sourceErrorMessage: [Simba][BigQueryJDBCDriver](100032) Error executing query job. Message: BIGQUERY_API_ERR
sourceErrorState: HY000
sourceException: java.sql.SQLException
sourceType: BIGQUERY

まとめ

地道な検証により、BigQuery のテーブル種類によって QuickSight の対応状況が異なることがわかりました。スプレッドシートを QuickSight から BigQuery 経由で分析、可視化はできませんでした。

テーブル種類 データソース データセット作成 データアクセス 結果
ネイティブテーブル BigQuery 内部 ✅ 可能 ✅ 可能 ✅ OK
BigLake テーブル Cloud Storage ✅ 可能 ✅ 可能 ✅ OK
BigLake 以外の外部テーブル Google Drive ✅ 可能 ❌ エラー ❌ NG

おわりに

Google Drive 上にあるスプレッドシートを QuickSight から見たければ、BigQuery が手軽なのではと思って初めてたののですがダメでした。ダメということがわかったので検証としては満足です。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.