GoogleスプレッドシートのデータをテーブルとしてBigQueryに直接流し込めるようになったようです(スプレッドシートへのエクスポートも可)。これまでスプレッドシートのデータをBigQueryにインポートする場合、一旦シートをCSV形式でDLした上で、ローカルまたはGCS上からBigQueryにインポートする必要がありました。しかし、これからはGoogle Drive上のURLから直接BigQueryにデータをインポートできるようになります(公式ドキュメントはコチラ)。
ということで、さっそくスプレッドシートのインポート機能を試してみました。
目次
まずはGCPプロジェクトを作成する
BigQueryを利用するためには、最初にGCPプロジェクトの作成が必要となります。以下URLの「GCPプロジェクトの作成(1)~(3)」を参考にプロジェクトの作成をおこなってください。
-GCPプロジェクトの作成
https://apps-gcp.com/bigquery-introduction/#GCP
BigQueryのWebコンソールにアクセスする
プロジェクトの作成が完了したら、BigQueryのWebコンソールをブラウザから開きましょう。
(1) 直接BigQueryのWebコンソールにアクセスする場合
直接Webコンソールに接続したい場合は以下URLにアクセスします。<projectID>の部分には前章で作成したプロジェクトのIDを指定します。
https://bigquery.cloud.google.com/welcome/<projectID>
(2) GCPの管理コンソールから遷移する場合
以下のURLからGCP管理コンソールにアクセスします。(1)の場合と同様、<projectID>の部分には前章で作成したプロジェクトのIDを指定します。
https://console.cloud.google.com/home/dashboard?project=<projectID>
管理コンソールへ遷移後、右上のメニューアイコンをクリックしてください。アイコンをクリックすると左メニューが開きますので、「BigQuery」リンクをクリックして、BigQueryのWebコンソールに遷移してください。
空のデータセットを作成する
BigQueryテーブルを作成するためには、事前にとにかくひとつデータセットを作成する必要があります。RDBのテーブルがデータベースがなければ作成できないのと同様、BigQueryのテーブルはデータセットがなければ作成することができません。以下の手順に従ってデータセットを作成してください。
(1) Webコンソール左メニューのプルダウンメニューから「Create new dataset」を選択します。
(2) 「Dataset ID」にデータセットを識別するためのIDを入力し、「OK」ボタンを押下します。
以上でデータセットの作成は完了です。
Google Driveでスプレッドシートを作成する
BigQueryにインポートするためのGoogleシートを作成します。以下のURLからGoogle Driveにアクセスし、スプレッドシートを作成してください(※)。
※ すでにインポートしたいシートが存在する場合は、そのURLをメモした上で下記手順はスキップしてください。
(1) Google Driveへアクセス
-Google Drive URL
http://drive.google.com
(2) スプレッドシートの作成
例として以下のシートを作成します。A・B列はそれぞれ磯野兄弟の「名前」「苗字」となります。
シートの作成が完了したら次は実際にこのファイルをインポートしてみます。
BigQueryにデータをインポートする
次はさきほど作成したスプレッドシートをBigQueryにインポートしてみます。以下の手順に従ってデータのインポートを実行してください。
(1) データセットID(dataset_sample)の右に配置されているプルダウンメニューをクリックし、「Create new table」を選択してください。
(2) テーブル作成画面に遷移後、「Location」に「Google Drive」を選択します。
(3) (2)で「Google Drive」を選択すると、URL入力用のテキストボックスが表示されるので、さきほど作成したスプレッドシートのURLを入力します(※)。「File format」はデフォルトのCSVで問題ありません。
※テーブル作成を実行するユーザがスプレッドシートに対する権限(閲覧権限以上)を持っていない場合はインポートを実行することはできません。
(4) 次に任意のテーブル名を入力します。ただし、テーブル名はデータセット内でユニークな文字列である必要がありますので、既に使われているテーブル名は入力することができません。
(5) テーブルのスキーマを設定します。さきほど作成したスプレッドシートでは1列目を「名前」、2列目を「苗字」としたので、スキーマには「firstName」「lastName」を設定します。タイプはそれぞれ「STRING」です。
(6) (1)~(5)の流れでインポートの準備は完了しましたので「Create Table」ボタンを押下します。押下すると、以下のようなBigQueryテーブルが生成されます。次は実際にデータがインポートされたのか確認してみましょう。画面右上の「Query Table」ボタンを押下してください。
(7) SQL実行画面に遷移したら以下のSQLを入力し「RUN QUERY」ボタンを押下してください。
SELECT * FROM [dataset_sample.isono_brother] LIMIT 1000
(8) SQLを実行すると以下のようにインポートされたテーブルが表示されます。
これでスプレッドシートからBigQueryへのデータインポートは完了です。
実行結果をスプレッドシートにエクスポートする
スプレッドシートへのエクスポートはとても簡単です。以下の手順に従ってスプレッドシートへのエクスポートを実行してください。
(1) さきほどのSQL実行結果の画面に戻り、結果テーブルの右上にある「Save to Google Sheets」ボタンを押下します。
(2) (1)のボタンをクリックすると実行結果がスプレッドシートにエクスポートされ、「Click to view」リンクが表示されます。それでは、このリンクをクリックしてください。
(3) リンクをクリックすると、実行結果がエクスポートされたスプレッドシートに画面遷移します。ファイル名のフォーマットは「results-実行日時.csv」です。実際に書き込まれるデータを見ると、1行目にはテーブルのカラム名が書き込まれていることがわかります。
以上で実行結果のスプレッドシートへのエクスポートは完了となります。
まとめ
実際に試してみた感想は如何でしょうか。想像以上に簡単だったのではないでしょうか。スプレッドシートからデータのインポート・エクスポートができるようになったことで、BigQueryの敷居がとても下がったような気がします。特に普段からGoogle Appsを利用しているユーザにしてみれば、これほど嬉しい機能はないような気がします。もしかすると、この機能ができたことでBigQueryに興味を持つユーザもいるのではないでしょうか。とても便利な機能なので、ドシドシ使っていきましょう!!