LoginSignup
10
12

More than 5 years have passed since last update.

Google Cloud PlatformのPub/SubからDataflow経由でBigQueryにデータを流す。

Last updated at Posted at 2017-11-23

初めに

何故、Google Cloud PlatformのIoT Coreを使用するか。

自宅でセンシングしたデータをサーバレスでWEBから表示出来るようにしたかったため。

何故、GoogleCloudPlatformか。

Google Cloud Next Tokyo'17に参加して興味を持ったため。

目標

Pub/Subでメッセージを公開して、Dataflow経由でBigQueryにデータを入れるところまでやってみます。

前提

2017年11月時点の情報です。

使用するまでの手順

1.BigQueryを有効にしデータセットを作成する

GCPのコンソールでビッグデータのBigQueryを選択する。プロジェクト名の右にある▼を押して、データセットを作成する。
入力内容は以下の通り。

フィールド 入力内容
Dataset ID (適当なID)
Data location US
Data expiration Never

2.データセット内にテーブルを作成する

先ほど作成したデータセットの右にある+を押します。
入力内容は以下の通り。

フィールド 入力内容
Source Data Create Source Table
Destination Table
Table name (適当なテーブル名)
Table type Native table
Schema (スキーマは後述)
Options
Partitioning None

スキーマは以下の通り。入力したらAdd Fieldを押してください。

Name Type Mode
TEST_MESSAGE STRING NULLABLE

最後にCreate Tableボタンを押します。

3.バケットを作成する

GCPのコンソールでストレージのStrageを選択し、バケットを作成します。APIを有効化するか問われたら有効化します。
一時的に使用する領域になります。入力内容は以下の通り。

フィールド 入力内容
名前 (適当なバケット名)
デフォルトのストレージ クラス Regional
Regional のロケーション us-central1

最後に作成を押します。

4.Dataflowを有効にする

GCPのコンソールでビッグデータのDataflowを選択し、テンプレートからジョブの作成を押します。APIを有効化するか問われたら有効化します。

5.ジョブを作成する

次に、ジョブを作成します。テンプレートからジョブを作成を押して以下の通り入力します。

フィールド 入力内容
ジョブ名 (適当なジョブ名)
Table name (適当なテーブル名)
Cloud Dataflow リージョン エンドポイント us-central1
Cloud Dataflow テンプレート PubSub to BigQuery
パラメータ
Cloud Pub/Sub input topic projects/(プロジェクトID)/topics/(Pub/SubのトピックID)
BigQuery output table (プロジェクトID):(データセットID).(テーブル名)
一時的なロケーション gs://(先ほど作成したバケット名)/temp

最後にジョブの実行を押します。

6.メッセージを公開してBigQueryにデータが入っているか確認する

Pub/Subコンソールのトピックに移動し、メッセージの公開を押します。。

メッセージに以下の通り入れて公開を押します。

{"TEST_MESSAGE":"これはメッセージです。"}

BigQueryのコンソールに移動し、SELECT *なQueryを発行するとデータが入っていることが確認できます。
WS000022.JPG

終わりに

Dataflowにテンプレートが用意されていたので簡単にPub/SubからBigQueryへデータを流し込むことができました。また、WEBコンソールだけで実装できるのは楽でいいですね。
数値型や日付型等への型変換をどこで実施するのかが気になるところです。
次回はBigQueryに入れたデータをDataStudioで見たいと思います。

参考にしたサイト

GCP公式 Google提供のテンプレート

10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12