スプレッドシートのデータをBigQueryにインポートしてみた

  • このエントリーをはてなブックマークに追加

ご注意

この記事は 2016年5月10日 に書かれたものです。内容が古い可能性がありますのでご注意ください。

GoogleスプレッドシートのデータをテーブルとしてBigQueryに直接流し込めるようになったようです(スプレッドシートへのエクスポートも可)。これまでスプレッドシートのデータをBigQueryにインポートする場合、一旦シートをCSV形式でDLした上で、ローカルまたはGCS上からBigQueryにインポートする必要がありました。しかし、これからはGoogle Drive上のURLから直接BigQueryにデータをインポートできるようになります(公式ドキュメントはコチラ)。

ということで、さっそくスプレッドシートのインポート機能を試してみました。

まずはGCPプロジェクトを作成する

BigQueryを利用するためには、最初にGCPプロジェクトの作成が必要となります。以下URLの「GCPプロジェクトの作成(1)~(3)」を参考にプロジェクトの作成をおこなってください。

-GCPプロジェクトの作成
https://apps-gcp-tokyo.appspot.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コンソールに遷移してください。

 

image06

 

空のデータセットを作成する

BigQueryテーブルを作成するためには、事前にとにかくひとつデータセットを作成する必要があります。RDBのテーブルがデータベースがなければ作成できないのと同様、BigQueryのテーブルはデータセットがなければ作成することができません。以下の手順に従ってデータセットを作成してください。

 

(1) Webコンソール左メニューのプルダウンメニューから「Create new dataset」を選択します。

 

image08

 

(2) 「Dataset ID」にデータセットを識別するためのIDを入力し、「OK」ボタンを押下します。

 

image05

以上でデータセットの作成は完了です。

 

Google Driveでスプレッドシートを作成する

BigQueryにインポートするためのGoogleシートを作成します。以下のURLからGoogle Driveにアクセスし、スプレッドシートを作成してください(※)。

※ すでにインポートしたいシートが存在する場合は、そのURLをメモした上で下記手順はスキップしてください。

(1) Google Driveへアクセス

-Google Drive URL
http://drive.google.com
(2) スプレッドシートの作成

例として以下のシートを作成します。A・B列はそれぞれ磯野兄弟の「名前」「苗字」となります。

image10

シートの作成が完了したら次は実際にこのファイルをインポートしてみます。

 

BigQueryにデータをインポートする

次はさきほど作成したスプレッドシートをBigQueryにインポートしてみます。以下の手順に従ってデータのインポートを実行してください。

(1) データセットID(dataset_sample)の右に配置されているプルダウンメニューをクリックし、「Create new table」を選択してください。

image00

(2) テーブル作成画面に遷移後、「Location」に「Google Drive」を選択します。

image01

(3) (2)で「Google Drive」を選択すると、URL入力用のテキストボックスが表示されるので、さきほど作成したスプレッドシートのURLを入力します(※)。「File format」はデフォルトのCSVで問題ありません。

※テーブル作成を実行するユーザがスプレッドシートに対する権限(閲覧権限以上)を持っていない場合はインポートを実行することはできません。

 

image03

 

(4) 次に任意のテーブル名を入力します。ただし、テーブル名はデータセット内でユニークな文字列である必要がありますので、既に使われているテーブル名は入力することができません。

image12

(5) テーブルのスキーマを設定します。さきほど作成したスプレッドシートでは1列目を「名前」、2列目を「苗字」としたので、スキーマには「firstName」「lastName」を設定します。タイプはそれぞれ「STRING」です。

image07

 

(6) (1)~(5)の流れでインポートの準備は完了しましたので「Create Table」ボタンを押下します。押下すると、以下のようなBigQueryテーブルが生成されます。次は実際にデータがインポートされたのか確認してみましょう。画面右上の「Query Table」ボタンを押下してください。

image02

(7) SQL実行画面に遷移したら以下のSQLを入力し「RUN QUERY」ボタンを押下してください。

SELECT * FROM [dataset_sample.isono_brother] LIMIT 1000

image09

(8) SQLを実行すると以下のようにインポートされたテーブルが表示されます。

image11

これでスプレッドシートからBigQueryへのデータインポートは完了です。

 

実行結果をスプレッドシートにエクスポートする

スプレッドシートへのエクスポートはとても簡単です。以下の手順に従ってスプレッドシートへのエクスポートを実行してください。

(1) さきほどのSQL実行結果の画面に戻り、結果テーブルの右上にある「Save to Google Sheets」ボタンを押下します。

image14

(2) (1)のボタンをクリックすると実行結果がスプレッドシートにエクスポートされ、「Click to view」リンクが表示されます。それでは、このリンクをクリックしてください。

image04

(3) リンクをクリックすると、実行結果がエクスポートされたスプレッドシートに画面遷移します。ファイル名のフォーマットは「results-実行日時.csv」です。実際に書き込まれるデータを見ると、1行目にはテーブルのカラム名が書き込まれていることがわかります。

image13

以上で実行結果のスプレッドシートへのエクスポートは完了となります。

まとめ

実際に試してみた感想は如何でしょうか。想像以上に簡単だったのではないでしょうか。スプレッドシートからデータのインポート・エクスポートができるようになったことで、BigQueryの敷居がとても下がったような気がします。特に普段からGoogle Appsを利用しているユーザにしてみれば、これほど嬉しい機能はないような気がします。もしかすると、この機能ができたことでBigQueryに興味を持つユーザもいるのではないでしょうか。とても便利な機能なので、ドシドシ使っていきましょう!!

  • このエントリーをはてなブックマークに追加

Google のクラウドサービスについてもっと詳しく知りたい、直接話が聞いてみたいという方のために、クラウドエースでは無料相談会を実施しております。お申し込みは下記ボタンより承っておりますので、この機会にぜひ弊社をご利用いただければと思います。

無料相談会のお申込みはこちら