Google SpreadSheetのデータをBigQueryに自動同期し、Tableauで可視化する

## 概要
Google Spreadsheets（スプレッドシート）はGoogleアカウントさえあれば誰でも無料で利用でき、複数人で共有しながらデータを管理できるツールです。また同じくGoogleアカウントさえあれば無料で利用できるGoogle フォームで作成したアンケートの結果もGoogle Spreadsheetsと連携、出力することで容易に集計することが可能です。  
アンケートの結果だけでなく、セールスやマーケティングのデータベースとしてもしばしば利用されるGoogle Spreadsheetsですが、ここに集められた大量のデータを他のDWH（データウェアハウス）に統合し、BIツールで可視化、戦略的な分析を行うにはある程度専門的なプログラミングの知識が必要になってきます。また常に新しいデータが集まる中、分析を最新の状態に保つのはコストがかかることです。そこで今回は、[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)（トロッコ）という分析基盤向けデータ統合サービスを使い、Google Spreadsheetsのデータ抽出＋DWHへの統合＋可視化＋これらの自動化までをノンプログラミングでやってみます。
なお今回データの転送手段として使用する[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)は、Google Spreadsheetsの他にも、様々な広告・CRM・DBなどのデータソースに対応しています。  
[trocco®の使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)
![Troccoアイコン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/ed8aaded-2ab8-b3ff-8a58-163fc854c633.png)
## ゴール
今回はGoogleフォームを利用してアンケートを作成し、その結果をスプレッドシートへ出力、そのシートをデータ元としてデータ分析を行うというケースを想定し、このようなアンケートから、
![スクリーンショット 2022-03-02 15.19.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/dcf6d811-deb2-2cd6-1d8d-e21a96ae8fb7.png)
下のように出力されたアンケート結果を、
![スクリーンショット 2022-03-02 11.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/d80dcb6b-0f01-9da8-671b-d353c19703f6.png)
このように可視化することを目標にします。
![スクリーンショット 2022-03-02 14.11.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/27914eff-b5a1-b6f3-224e-8d695593893d.png)
※なお上記のデータは本記事作成のために用意したサンプルのデータであり、現実にこのようなデータが取得されたわけではありません。
## こんな人におすすめ
* スプレッドシートに集まるデータを定期的に転送するのは面倒だ  
* Googleフォームを利用したアンケートの結果などデータを自動的に分析できるようにしたい  
* スプレッドシートをデータ元として利用し、戦略的な分析を行いたい  
* プログラミングはよくわからないがデータ分析をやってみたい
## 1. trocco®での設定
### 1-0. 事前準備
データの転送には[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)のアカウントが必要です。
[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=spreadsheets_to_bigquery_tableau)は現在無料トライアルを実施しています。事前に申し込み・登録しておきましょう。  
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)  
（トライアル申込の際に、この記事を見た旨を記載して頂ければご案内がスムーズに行えます）  
またデータ元となるスプレッドシートを編集し、Google BigQueryを操作できるGoogleアカウントも必要です（２つのアカウントが異なっていても問題ありません。）。
### 1-1. 転送元・転送先の決定
[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)にアクセスして、ダッシュボードから「転送設定を作成」ボタンを押します。
![スクリーンショット 2022-03-02 13.25.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/2c0af2fa-2d2f-7fc4-9eed-ea0b869bf6e5.png)
転送元と転送先となるツールを選択する画面になります。
![スクリーンショット 2022-03-02 13.29.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/8ff1b868-0783-ba37-23f4-4a0cf4fabd86.png)
[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)は多くのサービスをサポートしています。今回は転送元に「Google Spreadsheets」を選択し、転送先には「Google BigQuery」を選択します。
![スクリーンショット 2022-03-02 13.31.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/22ae6946-b235-22a6-2ee2-287ec9ecdddd.png)
![スクリーンショット 2022-03-02 13.32.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/a82c8566-329e-d6f4-301f-9dd3062d25f1.png)
できたら「この内容で作成」ボタンを押します。
![スクリーンショット 2022-03-02 13.32.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/e21186d2-2668-6a2e-2893-05d9a59892b9.png)
### 2-1. Google Spreadsheetsからの転送設定
まずは右上の「接続情報を追加」ボタンを押します。
![スクリーンショット 2022-03-02 13.34.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/8b5cacc9-edcc-670c-a3c1-43576104a6d8.png)
別のタブでGoogleアカウントとの連携設定画面が開きます。データ元になるスプレッドシートを編集できる（データを読み込むことができる）アカウントを選択し、連携を行います。
転送設定画面に戻り、「接続情報を読み込む」ボタンを押すと右の▽マークから接続情報を読み込めます。
![スクリーンショット 2022-03-02 13.38.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/0b93953c-8fad-2ce6-b107-4096ebbc3b33.png)
接続情報が設定できたら転送に必要な情報を入力していきます。
![スクリーンショット 2022-03-02 13.38.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/8493b64e-3aa9-b787-3c92-ea1d75e30635.png)
### 2-2. Google BigQueryへの転送設定
転送元のGoogle SperadSheeetsと同様に設定をしていきます。Google BigQueryに関しても「接続情報を追加」ボタンから別のタブでGoogleアカウントとの連携を行います。（事前に転送先となるデータセットとテーブルを作成しておいてください。）
![スクリーンショット 2022-03-02 13.39.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/39517300-d136-6627-f06f-0bf11447defa.png)
転送先とするデータセット名、テーブルなど必要な情報を入力します。入力が済んだらページ最後の「次のSTEPへ」ボタンを押します。
![スクリーンショット 2022-03-02 13.39.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/18c92b30-d70e-1ace-4b1e-51f726cdf492.png)
### 2-3. データのプレビュー・詳細設定
設定にしたがって転送のレビューが作成されます。
![スクリーンショット 2022-03-02 13.41.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/648ffca5-e825-99be-c30e-b65a1a94a1f8.png)
転送元からどのようにデータが取得されるのか確認できます。特に問題なく取得できていそうなのでプレビュー画面下部の「確認画面へ」ボタンを押します。
![スクリーンショット 2022-03-02 13.47.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/3277d2f2-d52f-f566-ab02-9eb6403b1c6a.png)
なおプレビュー画面下部の詳細設定ではデータのマスキング処理や転送するカラムの選択などデータの加工設定ができます。
![スクリーンショット 2022-03-02 13.48.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/f19c58dd-e8b2-bc66-1154-05798b0143b0.png)
### 2-4. 確認・適用
転送設定の内容が確認できます。既存の転送設定を編集した際にはこの画面でその差分がハイライト表示され、確認することが可能です。  
今回は設定の初版なので特に確認することはありません。右下の「保存して適用」ボタンを押します。
![スクリーンショット 2022-03-02 13.48.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/36dafd1c-42f7-5927-8ea1-9a0c92922d4e.png)
[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=spreadsheets_to_bigquery_tableau)には転送設定の変更後も過去の設定履歴を保存し、変更によって転送が失敗するようになった際など必要に応じて過去の設定を復元する機能があります。
チームで[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)を共有して使用する場合などは転送設定の変更についてこの画面で簡単なメモを残しておきましょう。
![スクリーンショット 2022-03-02 13.49.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/2da3ab3d-1bc9-c3ff-3d28-ea7c6cb9d7dc.png)
### 2-5. スケジュール・通知設定
転送設定の詳細設定画面に遷移します。まず「転送設定概要」タブでは設定の内容を大まかに確認できます。  
![スクリーンショット 2022-03-02 13.50.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/7a5ca60b-64b2-8f96-bc1d-cfc136c70e2c.png)
今回は転送の自動化がゴール一つです。「スケジュール・トリガー設定」タブを開いて定期的な転送スケジュールの設定を行います。「スケジュールを追加」ボタンを押すと、以下のモーダルが出てきます。ここで実行スケジュールを設定することで、転送を定期的に実行し自動化することが出来ます。（今回は毎日０時に転送を行うよう設定します。）
![スクリーンショット 2022-03-02 13.51.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/18d252d3-a895-a9df-3e78-a8b36c84bc4b.png)
![スクリーンショット 2022-03-02 13.51.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/9be63c90-365e-9632-9fc5-7a3b8f0ec1e6.png)
### 2-7. データ転送ジョブの実行
設定は以上です。転送は以後自動的に行われますが、右上の「実行」ボタンから手動で転送を実行します。
![スクリーンショット 2022-03-02 13.53.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/8a4754d0-9db5-883b-d3ac-fe2003c6a468.png)
転送の実行に際しその目的などをメモとして残しておくことができます。再び「実行」ボタンを押します。
![スクリーンショット 2022-03-02 13.55.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/c4959a95-90cc-a55d-943b-8fcbba0ca57e.png)
ジョブが実行されます。
![スクリーンショット 2022-03-02 13.56.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/9b29530e-21bb-65e7-bc42-d1116544a7fe.png)
ジョブが成功しました。
![スクリーンショット 2022-03-02 13.57.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/aa1b1df6-546a-bd06-e98e-d397e4b57e3e.png)
## 3. Google BigQueryの設定
こちらで設定することは特にありませんが、プレビュー画面からは[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)の転送設定で選択したテーブルにはデータがきちんと転送されていることが確認できます。
![スクリーンショット 2022-03-02 13.58.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/0a068cd1-96ea-942c-6562-ccf5878419a5.png)
## 4. Tableauでの可視化
最後にTableuを利用して可視化を行います。まずはトップ画面右上の「新規」
から新しいワークブックを作成します。 
![スクリーンショット 2022-03-02 14.01.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/baa3d405-c49d-063b-9fe9-f85b44f71b82.png)
自動的にデータの接続先を選ぶ画面になるので、コネクタからGoogle BigQueryを選択します。（ここでGoogleアカウントとの連携設定を行います。）
![スクリーンショット 2022-03-02 14.01.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/886d8518-42ab-d7f6-d76f-b3951c9e8659.png)
画面左側でデータを転送したプロジェクト、データセットを選び、読み込まれたテーブルをワークブックに追加します。
![スクリーンショット 2022-03-02 14.03.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/f1e4553b-5e95-e77f-55a1-6a398a73953f.png)
新しいシートの左側にはGoogle BigQueryから読み込まれたカラムの名前がフィールドとして表示されています。これらを行と列に配置し、右上の表示設定から任意のグラフを選択することで簡単にグラフを作成することが可能です。
![スクリーンショット 2022-03-02 14.11.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/f06ef7bc-e1b9-6dc7-03ae-f95af83ec0d6.png)
同じようにいくつかグラフを作成し、ダッシュボードに配置して完成です。
![スクリーンショット 2022-03-02 14.11.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1071783/81ba80d3-1e99-2c6e-57b2-21d7075a70b7.png)
## まとめ
いかがでしたでしょうか。今回はGoogle SpreadsheetsのデータをGoogle BigQueryへ自動的に統合、Tableauで可視化という流れをノーコーディングで作ってみました。このように
[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)を使うことで、複数人で編集したり絶えず更新されるGoogle Spreadsheetsのデータでも自動でGoogle BigQueryにまとめていくことができるほか、100万規模の大きなデータからごく小さなデータまで複雑なコーディングをせず[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)の画面上の設定のみでデータの転送が可能です。
実際に弊社サービスの[trocco®](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)においても、マーケティングKPI等をこのような流れで収集・分析しています。
データ分析の際にはぜひご活用ください。
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)
実際にデータの統合を試してみたい場合は、[無料トライアル](https://trocco.io/inquiry_trial/new?utm_medium=social&utm_source=qiita&utm_campaign=googlespreadsheets_to_bigquery_tableau)を実施しているので、この機会にぜひ一度お試しください。（申込時に、この記事を見た旨を記載して頂ければスムーズにご案内することができます）
その他にも広告やデータベースなど、様々な分析データをETL・転送した事例をまとめました。
[trocco®の使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)