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

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