エンジニアブログ

Engineer's Blog

絞り込んで表示する

2016.5.30 - 

MAGELLAN BLOCKS利用におけるGCP入門その2 〜BigQueryの利用〜

前回は、GCPの認証情報をBLOCKSに登録するまでをやりました。

現在のMAGELLAN BLOCKSでは実際にBigQueryのブロックが試せます。それを試すためには、BigQueryについてある程度知る必要があります。

今回では、MAGELLANを使う上で必要なBigQueryの基本的な知識と操作を紹介するため、まずBigQueryの要素について説明します。その後、BigQueryコンソールのweb UI上で、BigQueryを利用してみましょう。

 

BigQueryの要素

BigQueryは、プロジェクト、データセット、テーブル、によって構成されています。3つについて簡単に説明していきます。

テーブル(table)

テーブルはつまり表のことです。BigQueryの基本となるものです。

データセット(dataset)

データセットとは表をまとめたものです。

プロジェクト(project)

プロジェクトはデータセット全体を管理します。

 

GCP上でBigQueryを使ってみる。

さて、GCP上でBigQueryを、体験してみましょう。体験の流れとして

  1. BigQueryのデータセットやテーブルを見る
  2. テーブルに関してクエリを発行する
  3. データセットを作成してみる

という流れで説明していきます。

テーブルを見てみる

まず、GCPのダッシュボードのメニューを表示し、BigQueryをクリックします。

GCPのダッシュボードのメニュー

すると、BigQueryのコンソール画面が表示されます。

02-BigQueryのコンソール画面

BigQueryには、パブリック(public)なデータセットと、プライベート(private)なデータセットがあります。最初からパブリックにGoogleが公開している、データセットがあるので、それを見て行きましょう。

左の方に、bigquery-public-data:hacker_news を選択します。すると以下のような画面になります。ここにデータセットの概要、詳細、テーブル一覧が確認できます。

03-データセットの概要

テーブルを選択してみましょう。ここでは、commentsを選択しました。テーブルの詳細が出てきます。以下の画面は、テーブルのスキーマ(Schema)を表わす画面です。スキーマとは、テーブルの各要素を表わします。

04-テーブルのスキーマ

この表は左の列から、テーブルの項目名、項目の型、その項目が必須であるかないか、項目の説明が書かれています。

次に、Detailを選択してみましょう。これは、テーブルの詳細について書かれています。

05-テーブルの詳細

テーブルのIDや、データの量などの情報が記述されています。

最後に、Previewを見てみましょう。これは、テーブルの中身の一部を見ることができます。実際にどんなデータが入っているか分からないときに使ってみると便利です。

06-テーブルのプレビュー

クエリを投げる

次にクエリを投げてみましょう。クエリとは、テーブルを検索したり、最大値を出したり、合計を出したり、という処理が書けるものです。

まず、画面左上の「Compose Query」をクリックします。

07-Compose Query

すると、以下のエディタ画面が表示されます。

08-エディタ画面

ここにクエリを書いていきます。簡単に、

 SELECT MAX(length(text)) as max_length_comments FROM [bigquery-public-data:hacker_news.comments]

と書いてみます。これは、textの文字列の長さの最大値を調べるクエリです。
クエリの詳細は、( https://cloud.google.com/bigquery/query-reference または、やや古いですが、日本語情報としてクエリリファレンス http://bqjpreference.appspot.com/ )を確認ください。

RUN QUERYをクリックし、QUERYを確認してみましょう。

09-RUN QUERY

最大値が取れました。

データセットを作成してみる。

データセットとテーブルを作成してみましょう。テーブル用のデータのために、中身が以下の用な「サンプル.CSV」を作成しました。これは、学校の成績に関する表です。(ファイルはエンコードは、UTF-8でないといけません。)

 名前,性別,国語の点数,算数の点数,理科の点数,社会の点数
 太郎,男,81,41,59,33
 花子,女,97,99,47,39
 静雄,男,93,98,59,99
 正,男,83,58,97,37
 純子,女,32,39,67,54
 恭平,男,78,78,58,87
 久美子,女,89,39,44,65
 英太郎,男,88,85,59,98
 俊樹,男,38,100,95,81
 尚紀,男,87,87,48,83
 加奈子,女,70,97,55,30
 敏子,女,53,42,96,90

さて、まずデータセットを作成します。三角のボタンをクリックし、「create new dataset 」を選択します。

10-create new dataset

そうすると、データセット名の入力フォームが出てくるので、適当な名前を入力します。ここでは、「my_school」にしました。

11-my_school

my_schoolができました。次に「my_school」をホバーし、「+」のボタンをクリックします。すると以下のような画面が出てきます。

12-my_schoolクリック

以下の様に入力してみましょう。

13-my_school入力

上から、csvのファイルを追加、テーブル名を入れる、Schema以下は表の項目名(名前 -> name,性別 -> sex ,国語の点数 -> language_score,算数の点数 -> math_score,理科の点数 -> science_score ,社会の点数 -> social_score )、そして、「Header Row Skip」で1を指定しています(最初の1行と飛ばすということです。最初の行は項目名を入れているので、飛ばしています。)

そして、「create table」をクリックしましょう。するとテーブルが作成されるはずです。

14-create table

以上がGCP上でのBigQueryの利用となります。

 

MAGELLAN BLOCKSでBigQueryを利用する。

さて、次にMAGELLAN BLOCKSでBigQueryを利用してみましょう。その3に続きます。