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

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

準備

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

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

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

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

    API を有効にする

  4. Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。

    Cloud Shell をアクティブにする

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

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

    [インスタンス] に移動

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

    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. Google Cloud コンソールで、[重大度] が少なくとも 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
    

次のステップ