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

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

始める前に

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Dataflow, Cloud Bigtable API, and Cloud Bigtable Admin API APIs.

    Enable the APIs

  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

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

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

    [インスタンス] に移動

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

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

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

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

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

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

  7. [Enable change stream] を選択します。

  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. Google Cloud コンソールの [Dataflow] ページに移動します。

    Dataflow に移動

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

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

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

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

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

  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. Google Cloud コンソールで、Dataflow の [ジョブ] ページに移動します。

      ジョブに移動

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

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

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

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

    cbt deleteinstance BIGTABLE_INSTANCE_ID
    

次のステップ