データソースと宛先の使用

は、

Cloud Dataflow SQL は、Cloud Pub/Sub トピックと BigQuery テーブルからの読み取り、および BigQuery テーブルへの書き込みをサポートしています。

Cloud Dataflow SQL を使用して Cloud Dataflow ソースを追加するには、Cloud Dataflow SQL UI に切り替える必要があります。

Pub/Sub

Pub/Sub トピックからの読み取り

Cloud Dataflow SQL UI を使用すると、アクセス権があるプロジェクトの Cloud Pub/Sub データソース オブジェクトを見つけることができます。トピック名を完全に覚えておく必要はありません。

トピックを Cloud Dataflow ソースとして追加するには、そのトピックにスキーマが必要です。スキーマを割り当てる手順の例については、Cloud Pub/Sub トピックへのスキーマの割り当てをご覧ください。

Cloud Dataflow ソースとしての Pub/Sub トピックの追加

Cloud Pub/Sub トピックを左側のナビゲーション パネルの [リソース] セクションに追加するには、そのトピックを Cloud Dataflow ソースとして追加する必要があります。

  1. 左側のナビゲーション パネルで、[データを追加] プルダウン リストをクリックして [Cloud Dataflow のソース] を選択します。

    [データを追加] で、Dataflow のソースを選択する

  2. 右側に表示される [Cloud Dataflow ソースを追加] パネルで、[Cloud Pub/Sub トピック] を選択します。検索ボックスで、トピック名を検索します。トピックを選択して [追加] をクリックします。

    次のスクリーンショットは、transactions トピックの検索を示しています。

    transactions Pub/Sub トピックを検索する

  3. 左側のナビゲーション パネルの [リソース] セクションに、追加した Cloud Pub/Sub トピックが表示されます。トピックのリストを表示するには、[Cloud Dataflow のソース]、[Cloud Pub/Sub トピック] の順に展開します。

トピックのスキーマの表示

特定のトピックのスキーマを表示するには、左側のナビゲーション パネルの [リソース] セクションで [Cloud Dataflow のソース] を展開します。次に、[Cloud Pub/Sub トピック] を展開します。トピックをクリックすると、詳細パネルにスキーマなどのリソースに関する情報が表示されます。スキーマには次のフィールドが含まれています。

  • event_timestamp: ウォーターマークが追跡するフィールド
  • attributes: Cloud Pub/Sub メッセージの属性
  • payload: Cloud Pub/Sub メッセージのコンテンツ。Cloud Pub/Sub メッセージは、JSON ストリーミング ライブラリのリファレンス ページに記載されているように、JSON 形式である必要があります。たとえば、{"k1":"v1", "k2":"v2"} という形式でフォーマットしたメッセージは、データ型が文字列に指定された k1k2 という名前の 2 つのフィールドからなる BigQuery payload のネストされた行に挿入できます。フィールドの値(null または null 以外)に関係なく、スキーマ内にあるすべてのフィールドをシリアル化する必要があります。たとえば、NULLABLE フィールドの場合は、NULL 値を含む JSON 内のフィールドをシリアル化する必要があります。JSON にこのフィールドが含まれていない場合、Cloud Dataflow SQL はエラーを返します。

次のスクリーンショットは、transactions トピックのスキーマを示しています。

transactions スキーマを表示する

クエリでのトピックの使用

Cloud Pub/Sub トピックは、標準 SQL 語彙の構造に従う、完全修飾されたドット区切りの識別子のリストで指定できます。

  pubsub.topic.project-id.topic-name

特殊文字(通常の文字、数字またはアンダースコア以外)を含む識別子を囲むには、バッククォートを使用する必要があります。

たとえば、次の文字列は、プロジェクト dataflow-sql の Cloud Pub/Sub トピック daily.transactions を指定します。

  pubsub.topic.`dataflow-sql`.`daily.transactions`

左側のナビゲーション パネルの [リソース] セクションでトピックを選択して、クエリエディタにデータを入力することもできます。[Cloud Dataflow のソース]、[Cloud Pub/Sub トピック] の順に展開します。ナビゲーション パネルでトピックをクリックしてから詳細パネルの右側にある [トピックのクエリ] ボタンをクリックすると、そのトピックの基本クエリがクエリボックスに入力されます。

次のスクリーンショットは、クエリエディタに入力されたクエリを示しています。

[トピックのクエリ] ボタンをクリックすると、クエリボックスに入力される

トピックのスキーマを使用して SQL クエリを作成します。Cloud Dataflow SQL UI でクエリを入力すると、クエリ検証ツールによりクエリ構文が検証されます。クエリが有効な場合、緑色のチェックマーク アイコンが表示されます。クエリが無効な場合は、赤色の感嘆符アイコンが表示されます。クエリ構文が無効な場合は、検証ツールアイコンをクリックすると、修正が必要な箇所に関する情報が表示されます。

次のデータ拡充クエリは、Cloud Pub/Sub のイベント ストリーム(transactions)に sales_region フィールドを追加します。販売地域は、州を販売地域にマッピングする BigQuery テーブル(us_state_salesregions)のものです。

エディタにクエリを入力する

BigQuery

BigQuery テーブルからの読み取り

Cloud Dataflow ソースとしての BigQuery テーブルの追加

左側のナビゲーション パネルの [リソース] セクションにデータセットとテーブルを追加するために、Cloud Dataflow ソースとして BigQuery テーブルを追加する必要はありません。[リソース] セクションで固定プロジェクトを展開すると、BigQuery のデータセットとテーブルを表示できます。BigQuery テーブルが [リソース] セクションに表示されていないプロジェクトに属している場合は、そのプロジェクトを固定してリストに追加できます。

テーブルのスキーマの表示

特定のテーブルのスキーマを表示するには、左側のナビゲーション パネルの [リソース] セクションでプロジェクトを見つけます。プロジェクトの横にある データセットの展開アイコン アイコンをクリックすると、そのプロジェクトのデータセットが表示されます。次に、データセットの横にある データセットを展開する アイコンをクリックすると、データセットが展開され、そのデータセット内のテーブルが表示されます。検索ボックスを使用して、特定のデータセットまたはテーブルを検索することもできます。

テーブルをクリックすると、詳細パネルにスキーマなどのリソースに関する情報が表示されます。

クエリでのテーブルの使用

BigQuery テーブルは、標準 SQL 語彙の構造に従う、完全修飾されたドット区切りの識別子のリストで指定できます。

  bigquery.table.project-id.my_dataset.my_table

特殊文字(通常の文字、数字またはアンダースコア以外)を含む識別子を囲むには、バッククォートを使用する必要があります。

たとえば、次の文字列は、プロジェクト dataflow-sql の BigQuery データセット dataflow_sql_dataset と BigQuery テーブル us_state_salesregions を指定します。

  bigquery.table.`dataflow-sql`.dataflow_sql_dataset.us_state_salesregions

左側のナビゲーション パネルの [リソース] セクションでテーブルを選択して、クエリエディタにこの文字列を入力することもできます。[リソース] セクションでプロジェクトを見つけ、そのプロジェクトを展開し、使用するテーブルを含むデータセットを展開します。ナビゲーション パネルでテーブルをクリックしてから詳細パネルの右側にある [テーブルをクエリ] ボタンをクリックすると、そのテーブルの基本クエリがクエリボックスに入力されます。

次のスクリーンショットは、クエリエディタに入力されたクエリを示しています。

[テーブルをクエリ] ボタンをクリックすると、クエリボックスに入力される

テーブルのスキーマを使用して SQL クエリを作成します。Cloud Dataflow SQL UI でクエリを入力すると、クエリ検証ツールによりクエリ構文が検証されます。クエリが有効な場合、緑色のチェックマーク アイコンが表示されます。クエリが無効な場合は、赤色の感嘆符アイコンが表示されます。クエリ構文が無効な場合は、検証ツールアイコンをクリックすると、修正が必要な箇所に関する情報が表示されます。

次のデータ拡充クエリは、州を販売地域にマッピングする BigQuery テーブル(us_state_salesregions)を使用して、Cloud Pub/Sub のイベント ストリームにフィールド(sales_region)を追加します。

エディタにクエリを入力する

BigQuery テーブルへの書き込み

Cloud Dataflow ジョブを作成して SQL クエリを実行する場合は、結果の送信先の BigQuery テーブルを指定する必要があります。次の前提条件と考慮事項に注意してください。

  • 宛先データセットは、[Cloud Dataflow ジョブを作成] をクリックする前に作成しておきます。
  • 宛先テーブルが存在しない場合、ジョブは指定された名前で新しいテーブルを作成します。
  • 宛先テーブルがすでに存在する場合、そのテーブルは空である必要があります。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。