変更ストリームが有効になっているテーブルを作成して変更をキャプチャする
変更ストリームを有効にして Bigtable テーブルを設定し、変更ストリーム パイプラインを実行して、テーブルに変更を加えてから、ストリーミングされた変更を確認する方法について説明します。
始める前に
-
コンソールのプロジェクト セレクタページで、プロジェクトを選択または作成します。 Google Cloud Google Cloud
プロジェクトを選択または作成するために必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール
(
roles/resourcemanager.projectCreator)が必要です。これにはresourcemanager.projects.create権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
Dataflow API、Cloud Bigtable API、Cloud Bigtable Admin API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。-
コンソールで Cloud Shell をアクティブにします。 Google Cloud
変更ストリームを有効にしてテーブルを作成する
コンソールで、Bigtable の [インスタンス] ページに移動します。 Google Cloud
このクイックスタートで使用しているインスタンスの ID をクリックします。
使用可能なインスタンスがない場合は、近くのリージョンにデフォルト構成でインスタンスを作成します。
左側のナビゲーション パネルで [テーブル] をクリックします。
[テーブルの作成] をクリックします。
テーブルに
change-streams-quickstartという名前を付けます。cfという名前の列ファミリーを追加します。[変更ストリームを有効にする] を選択します。
[作成] をクリックします。
データ パイプラインを初期化して変更ストリームを取得する
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など)
コンソールで、[Dataflow] ページに移動します。 Google Cloud
changestreamquickstart で始まる名前のジョブをクリックします。
画面下部の [表示] をクリックして、ログパネルを開きます。
[ワーカーログ] をクリックして、変更ストリームの出力をモニタリングします。
Cloud Shell で、Bigtable にデータを書き込んで変更ストリーム プロセスを確認します。
cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \ import change-streams-quickstart quickstart-data.csv column-family=cfコンソールで、[Severity] が少なくとも
Infoに設定されていることを確認します。 Google Cloudワーカーログ出力ログには次のものが含まれます。
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 アカウントに課金されないようにするには、 次の手順を実施します。
テーブルで変更ストリームを無効にします。
gcloud bigtable instances tables update change-streams-quickstart --instance=BIGTABLE_INSTANCE_ID \ --clear-change-stream-retention-periodテーブル
change-streams-quickstartを削除します。cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID deletetable change-streams-quickstart変更ストリーム パイプラインを停止します。
コンソールで、Dataflow の [ジョブ] ページに移動します。 Google Cloud
ジョブリストからストリーミング ジョブを選択します。
ナビゲーションで、[停止] をクリックします。
[ジョブの停止] ダイアログでパイプラインをキャンセルし、[ジョブの停止] をクリックします。
省略可: このクイックスタートで新しいインスタンスを作成した場合は、インスタンスを削除します。
cbt deleteinstance BIGTABLE_INSTANCE_ID