変更ストリームが有効になっているテーブルを作成して変更をキャプチャする

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

始める前に

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

    プロジェクトを選択または作成するために必要なロール

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

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

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

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

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

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

    API を有効にする

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

    Cloud Shell をアクティブにする

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

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

    [インスタンス] に移動

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

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

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

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

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

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

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

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

データ パイプラインを初期化して変更ストリームを取得する

  1. Cloud Shell で、次のコマンドを実行してコードをダウンロードし、実行します。

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
    cd java-docs-samples/bigtable/beam/change-streams
    mvn compile exec:java -Dexec.mainClass=ChangeStreamsHelloWorld \
    "-Dexec.args=--project=PROJECT_ID --bigtableProjectId=PROJECT_ID \
    --bigtableInstanceId=BIGTABLE_INSTANCE_ID --bigtableTableId=change-streams-quickstart \
    --runner=dataflow --region=BIGTABLE_REGION --experiments=use_runner_v2"
    

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

    • PROJECT_ID: 使用しているプロジェクトの ID
    • BIGTABLE_INSTANCE_ID: 新しいテーブルを含むインスタンスの ID
    • BIGTABLE_REGION: Bigtable インスタンスが存在するリージョン(us-east5 など)
  2. コンソールで、[Dataflow] ページに移動します。 Google Cloud

    Dataflow に移動

  3. changestreamquickstart で始まる名前のジョブをクリックします。

  4. 画面下部の [表示] をクリックして、ログパネルを開きます。

  5. [ワーカーログ] をクリックして、変更ストリームの出力をモニタリングします。

  6. Cloud Shell で、Bigtable にデータを書き込んで変更ストリーム プロセスを確認します。

    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \
    import change-streams-quickstart quickstart-data.csv column-family=cf
    
  7. コンソールで、[Severity] が少なくとも Info に設定されていることを確認します。 Google Cloud

  8. ワーカーログ出力ログには次のものが含まれます。

    Change captured: user123#2023,USER,SetCell,cf,col1,abc
    Change captured: user546#2023,USER,SetCell,cf,col1,def
    Change captured: user789#2023,USER,SetCell,cf,col1,ghi
    

クリーンアップ

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

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

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

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

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

      [ジョブ] に移動

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

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

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

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

    cbt deleteinstance BIGTABLE_INSTANCE_ID
    

次のステップ