Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

初めに

何故、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提供のテンプレート

shuichiro
社内の研修を企画したり、新しいものを試したりしています。 悩んだことを残していこうと思います。 投稿する記事の内容は個人の意見であり、所属する企業の見解を代表するものではありません。
japan-systems
「2019年に50周年を迎えたIT企業です。最先端の技術により全国の企業、官公庁、自治体に多くの実績があります。」
https://www.japan-systems.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした