Google Driveと Cloud DatastoreのデータをBigQueryで使用する

2015年5月8日(金)
清野 克行

3.Cloud StorageからBigQueryへデータロードする

ここまでの手順で、Cloud DatastoreからCloud Storageへのデータロードは完了しました。ここからはCloud StorageからBigQueryへのロード手順を説明します。ここまでと同様に、マウス操作とキー入力だけで行うことができます。

【Developers Console】

Developers Consoleの左ペインで「Cloud Storage」から「Storage browser」をクリックして、Bucket一覧を表示します。その中から先ほどデータロードしたBucket(「daysale150429」)をクリックすると、図16の画面が表示されます。

daysale150419の内容表示

図16:daysale150429の内容表示

右ペインの一覧にある2行目の「xxxxxxx.backup_info」 はBigQueryへのデータロード時に使用するので、書き留めて(コピーして)おきます。画面上から見えるのは前半だけですが、リンクを右クリックして「リンクアドレスをコピー」を選択し、コピーをテキストファイルに張り付けると次のような文字列になっています。この中の太字部分を後で使用します。

https://console.developers.google.com/m/cloudstorage/b/daysale150429/o/
ahRzfnNvbmljLXNvbHN0aWNlLTQyMnJBCxIcX0FFX0RhdGFzdG9yZUFkbWluX09
wZXJhdGlvbhiyksUBDAsSFl9BRV9CYWNrdXBfSW5mb3JtYXRpb24YAQw.daysale.
backup_info

次に、Developers Consoleの左ペインでBig Dataの下にあるBigQueryを選択すると、図17のような画面が表示されます。

BigQuery選択後の画面表示

図17:BigQuery選択後の画面表示

画面の左ペインでプロジェクト名(ここでは 「gcpproj」)右の「▼」をクリックすると図18のようにプルダウンメニューが表示されるので、「Create new dataset」をクリックします。

「Create new dataset」をクリック

図18:「Create new dataset」をクリック

図19のCreate Dataset画面が表示されるので、BigQueryのDataset ID(daysale150429)を入力して「OK」をクリックします。Dataset IDは任意に指定できますが、ここでは分かり易いようにCloud Storageのbucketと同じ名前にします。

 Dadaset IDを入力

図19:Dadaset IDを入力

左ペインに、登録したdataset IDの「daysale150429」が表示されます(図20)。

 生成されたdataset(daysale150419)が左ペインに表示される

図20:生成されたdataset(daysale150429)が左ペインに表示される

次に、「daysale150429」をマウスオーバーすると右に表示される「▼」をクリックし、ブルダウンメニューから「Create new table」を選択します(図21)。

「Create new table」を選択

図21:「Create new table」を選択

図22の「Create and import」ステップの画面が表示されます。

 「Create and import」ステップの画面表示

図22: 「Create and import」ステップの画面表示

ここでは「skip」をクリックして、次の画面(Choose destionationフェーズ)に移ります(図23)。

 TabkeIDを入力

図23: TabkeIDを入力

Choose destinationステップでは、Cloud StorageのTable ID(任意入力ですが、ここでは「daysale150429tbl」)を入力して「Next」をクリックします。図24の画面に変わります。

TabkeID入力後の画面表示

図24:TabkeID入力後の画面表示

Select dataフェーズでは、「App Engine Datastore Backup」を選択します。図25の画面に変わります。

「Cloud Datastore Backup」選択後の画面表示

図25:「Cloud Datastore Backup」選択後の画面表示

 

gs://フィールドの入力には、Cloud Storageのバケット名と、図16の画面でコピーしたテキストを使用します。

gs://[bucket名]/[ .backup_info]

 

ここでは、 bucket名に「daysale150429」、.backup_infoに「ahRzfnNvbmljLXNvbHN0aWNlLTQyMnJBCxIcX0FFX0RhdGFzdG9yZUFkbWluX09wZX
JhdGlvbhiyksUBDAsSFl9BRV9CYWNrdXBfSW5mb3JtYXRpb24YAQw.daysale.backup_info」を入力します(画面26)。なお、実際の入力内容は下記のようになります。

gs://daysale150429/ahRzfnNvbmljLXNvbHN0aWNlLTQyMnJBCxIcX0FFX0RhdGFzdG9yZUFkbWluX09wZXJhdGlvbhiyksUBDA

sSFl9BRV9CYWNrdXBfSW5mb3JtYXRpb24YAQw.daysale.backup_info
 入力後の画面イメージ

図26:入力後の画面イメージ

入力後、「NEXT」をクリックするとSpecify schemaステップに移ります(画面27)。

 「NEXT」クリック後の画面表示

図27:「NEXT」クリック後の画面表示

Schema(スキーマ)には、バックアップのデータソースとなっているCloud Datastoreのものが使用されます。ここでは何も操作せず、「NEXT」をクリックして図28の画面を表示します。

 「NEXT」クリック後の画面表示

図28:「NEXT」クリック後の画面表示

【BigQueryへのデータロード実行】

図28では許容されるエラー数を指定できますが、デフォルト(「0」)のまま画面下部の「Submit」をクリックするとCloud StorageからBigQueryへのデータロードが開始されます。データロード実行中は、図29のようにJobHistoryに(1running)、Dataset/Tableに「(loading)」が表示されます。

 Cloud StorageからBigQueryへデータロード中の画面表示

図29:Cloud StorageからBigQueryへデータロード中の画面表示

データロードが完了すると(loading)が消え、左ペインの「daysale150429tbl」をクリックするとロードされたデータのSchemaが、Schema表示画面右上の「Details」をクリックするとBigQueryにロードされたデータの詳細情報が表示されます(画面30)。これでBigQueryへのデータロード完了を確認できます。

 BigQueryにロードされたデータのDetail表示

図30:BigQueryにロードされたデータのDetail表示

次に、画面右上の「Query table」をクリックするとクエリー入力画面が表示されるので、下記のようにクエリー文を入力して「RUN QUERY」をクリックします。

SELECT * FROM [daysale150429.daysale150429tbl] LIMIT 1000

図31のように表示され、データのロードを確認できます。

クエリーでロードされたデータを表示

図31:クエリーでロードされたデータを表示

終わりに

ここまで、今回の特別編と併せて全6回にわたってExcelデータのアップロードからBigQueryへのロードまですべての処理の流れを見てきました。BigQueryのクエリー文については触れませんでしたが、RDBのSQL文とほとんど同じなので、習得は難しくないと思います。また、拙著「Google BigQueryではじめる自前ビッグデータ処理入門」にもより実践的なクエリー文を掲載していますので、興味のある方はぜひ参照してください。

Google BigQueryではじめる自前ビッグデータ処理入門
有限会社サイバースペース
慶應義塾大学工学部電気科卒。日本IBM、日本HPなどにおいて、製造装置業を中心とした業務系/基幹業務系システムのSE/マーケティングや、3階層C/Sアーキテクチャによる社内業務システム開発などに携わる。現在は、Ajax/Web 2.0関連のセミナー講師/コンサルティング、書籍執筆などを行っている。情報処理学会会員。http://www.at21.net/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています