機械学習に欠かせないデータウェアハウス Google BigQuery

Google BigQuery

Google BigQuery (以下 BigQuery) は、Google が提供しているGoogle Cloud Platform (以下GCP) のサービスの一つであり、スケーラビリティに優れたフルマネージドなデータウェアハウスです。Googleの発表によると、インデックスなしでテラバイトであれば数秒、ペタバイトであれば数分でスキャンできるそうです。 一般的なウェブシステムであれば、マスターデータやユーザデータなどはMySQLなどのRDBMSに書き込んだり、システムのログなどはクラウドストレージに保存したりしているでしょう。では機械学習を行っていると、その元となる教師データなどはどこに保存すればいいでしょうか。データは少なくとも何ギガバイト、種類によると何テラバイトもの膨大なものでしょう。また機械学習の演算のために効率よくデータを取得できる必要があります。BigQueryは、そのようなデータの格納場所に適しているといえるでしょう。 https://cloud.google.com/bigquery/

BigQueryの利用

GCPには多くのデータベースサービスが備わっており、例えばGoogle Cloud SQLではGCPのコンソール画面からDBサーバを立ち上げることから始めます。しかし、このBigQueryはサーバレスな環境で用意されており、直ぐに利用開始することができます。 GCPのコンソール画面よりプロジェクトを選択します。次にナビゲーションメニューより「BigQuery」を選択します。すると下の「BigQuery」画面が表示されるでしょう。画面左にプロジェクトIDが表示されています。このプロジェクトを選択した状態で、画面右にある「データセットを作成」を押下して下さい。データセットとは、テーブルをまとめるためのグループだと思って下さい。 BigQuery 適切なデータセットIDを入力し、データのロケーションを選択して下さい。ここでは「東京 (asia-northeast1)」としています。ここで選択したデータのロケーションは必ず覚えておいて下さい。 データセットの作成 これでデータセットが作成されました。次にテーブルを作成します。「テーブルを作成」を押下して下さい。ここでは下記のように設定しました。
  • 宛先テーブル「Users」
    • ID – INTEGER – REQUIRED
    • Name – STRING – NULLABLE
    • Age – INTEGER – NULLABLE
テーブルの作成 そして画面下部の「テーブルを作成」ボタンを押下します。これでテーブルが作成されました。それではデータ追加・抽出の流れを確認するためにクエリを実行したいと思いますが、クエリ実行時に注意しなければいけない点があります。「オプション」ボタンを押下し、ポップアップしたメニューから「クエリの設定」を選択して下さい。すると次の画面が表示されます。 ロケーションの設定 ここの画面下部にある「処理を行うロケーション」から「東京 (asia-northeast1)」を選び「保存」ボタンを押下します。これは初期値に「自動選択」が選択されていますが、US/EUのみとなっており東京は選択されません。そのため明示的に東京を選択する必要があります。 それでは作成したテーブルにデータを追加しましょう。画面右のエディタにクエリ文を書きましょう。ここでは下のようなクエリでデータを投入しました。
INSERT
NewDataSet.Users (ID, Name, Age)
VALUES
(1, 'Takahashi', 32),
(2, 'Ishibashi', 28),
(3, 'Suzuki', 45),
(4, 'Ochiai', 30),
(5, 'Nakahara', 19);
クエリ文を見るとお馴染みのクエリであることがわかります。そうです。BigQueryでは標準SQLを利用することができるのです。これだとわざわざBigQueryのために新しい構文を覚える必要はないですね。「クエリを実行」ボタンを押下しましょう。 BigQuery INSERTクエリ 「プレビュー」タグを選択すると、入力したデータを確認することができます。では次はデータ抽出してみましょう。エディタに次のクエリ文を入力します。
SELECT
ID, Name, Age
FROM
NewDataSet.Users
WHERE
ID = 3;
お馴染みのクエリ文ですね。「クエリを実行」すると、「結果」タブより抽出したデータを確認することができます。 BigQuery SELECTクエリ

まとめ

これまでMySQLのようなRDBMSの知識しかなくとも、BigQueryはすぐに扱えることが判って頂けたものと思います。実際の現場では、わざわざGCPのコンソール画面から操作することはないですが、それでも基礎的なところは標準SQLが利用できることを理解して頂けたでしょう。これから機械学習の勉強を行おうと思っている方も、BigQueryに対して構えることなく、普通のデータベースのように接してあげて下さい。
» エンジニア登録はこちら