BigQuery テンプレートへの Bigtable 変更ストリームを使用する

このクイックスタートでは、変更ストリームを有効にして Bigtable テーブルを設定し、変更ストリーム パイプラインを実行して、テーブルに変更を加えてから、ストリーミングされた変更を確認する方法について説明します。

始める前に

  1. Google Cloud コンソールのプロジェクト セレクタページで、 Google Cloud プロジェクトを選択または作成します。

    プロジェクトの選択または作成に必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。ロールを付与する方法を確認する

    プロジェクト セレクタに移動

  2. Google Cloud プロジェクトに対して課金が有効になっていることを確認します

  3. Dataflow API、Cloud Bigtable API、Cloud Bigtable Admin API、BigQuery API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    API を有効にする

  4. Google Cloud コンソールで Cloud Shell をアクティブにします。

    Cloud Shell をアクティブにする

BigQuery データセットを作成する

Google Cloud コンソールを使用して、データを保存するデータセットを作成します。

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、プロジェクト名をクリックします。

  3. [アクション] オプションを開いて、[データセットを作成] をクリックします。

  4. [データセットの作成] ページで、次の操作を行います。

    1. [データセット ID] に「bigtable_bigquery_quickstart」と入力します。
    2. 残りのデフォルトの設定は変更せず、[データセットを作成] をクリックします。

変更ストリームを有効にしてテーブルを作成する

  1. Google Cloud コンソールで、Bigtable の [インスタンス] ページに移動します。

    [インスタンス] に移動

  2. このクイックスタートで使用しているインスタンスの ID をクリックします。

    使用可能なインスタンスがない場合は、近くのリージョンにデフォルト構成でインスタンスを作成します。

  3. 左側のナビゲーション パネルで [テーブル] をクリックします。

  4. [テーブルの作成] をクリックします。

  5. テーブルに bigquery-changestream-quickstart という名前を付けます。

  6. cf という名前の列ファミリーを追加します。

  7. [変更ストリームを有効にする] を選択します。

  8. [作成] をクリックします。

  9. Bigtable の [テーブル] ページで、テーブル bigquery-changestream-quickstart を見つけます。

  10. [変更ストリーム] 列で、[接続] をクリックします。

  11. ダイアログで [BigQuery] を選択します。

  12. [Dataflow ジョブを作成] をクリックします。

  13. 表示されたパラメータ フィールドに、パラメータ値を入力します。省略可能なパラメータを指定する必要はありません。

    1. Bigtable アプリケーション プロファイル ID を default に設定します。
    2. BigQuery データセットを bigtable_bigquery_quickstart に設定します。
  14. [ジョブを実行] をクリックします。

  15. ジョブのステータスが「開始中」または「実行中」になったら処理を続行します。ジョブがキューに追加されてから約 5 分かかります。

  16. リソースをクリーンアップするときにジョブを停止できるように、タブでジョブを開いたままにします。

Bigtable にデータを書き込む

  1. Cloud Shell で数行を Bigtable に書き込み、変更ログが一部のデータを BigQuery に書き込めるようにします。ジョブの作成後にデータが書き込まれていれば、変更が表示されます。ジョブのステータスが「running」になるのを待つ必要はありません。

    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \
        set bigquery-changestream-quickstart user123 cf:col1=abc
    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \
        set bigquery-changestream-quickstart user546 cf:col1=def
    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \
        set bigquery-changestream-quickstart user789 cf:col1=ghi
    

    次のように置き換えます。

    • PROJECT_ID: 使用しているプロジェクトの ID
    • BIGTABLE_INSTANCE_ID: bigquery-changestream-quickstart テーブルを含むインスタンスの ID

BigQuery で変更ログを表示する

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] ペインで、プロジェクトとデータセット bigtable_bigquery_quickstart を開きます。

  3. [bigquery-changestream-quickstart_changelog] テーブルをクリックします。

  4. 変更ログを表示するには、[プレビュー] をクリックします。

    BigQuery での変更ログのプレビュー

クリーンアップ

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。

  1. テーブルで変更ストリームを無効にします。

    gcloud bigtable instances tables update bigquery-changestream-quickstart \
    --project=PROJECT_ID --instance=BIGTABLE_INSTANCE_ID \
    --clear-change-stream-retention-period
    
  2. テーブル bigquery-changestream-quickstart を削除します。

    cbt --instance=BIGTABLE_INSTANCE_ID --project=PROJECT_ID deletetable bigquery-changestream-quickstart
    
  3. 変更ストリーム パイプラインを停止します。

    1. Google Cloud コンソールで、Dataflow の [ジョブ] ページに移動します。

      [ジョブ] に移動

    2. ジョブリストからストリーミング ジョブを選択します。

    3. ナビゲーションで、[停止] をクリックします。

    4. [ジョブの停止] ダイアログで [キャンセル] を選択し、[ジョブの停止] をクリックします。

  4. BigQuery データセットを削除します。

    1. Google Cloud コンソールで、[BigQuery] ページに移動します。

      BigQuery に移動

    2. [エクスプローラ] パネルで、データセット bigtable_bigquery_quickstart を見つけてクリックします。

    3. [削除] をクリックして「delete」と入力し、[削除] をクリックして確定します。

  5. 省略可: このクイックスタートで新しいインスタンスを作成した場合は、インスタンスを削除します。

    cbt deleteinstance BIGTABLE_INSTANCE_ID
    

次のステップ