変更ストリームが有効になっているテーブルを作成して変更をキャプチャする
変更ストリームを有効にして Bigtable テーブルを設定し、変更ストリーム パイプラインを実行して、テーブルに変更を加えてから、ストリーミングされた変更を確認する方法について説明します。
始める前に
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataflow, Cloud Bigtable API, and Cloud Bigtable Admin API APIs.
-
In the Google Cloud console, activate Cloud Shell.
変更ストリームを有効にしてテーブルを作成する
Google Cloud コンソールで、Bigtable の [インスタンス] ページに移動します。
このクイックスタートで使用しているインスタンスの ID をクリックします。
使用可能なインスタンスがない場合は、近くのリージョンでデフォルト構成でインスタンスを作成します。
左側のナビゲーション パネルで [テーブル] をクリックします。
[テーブルの作成] をクリックします。
テーブルに
change-streams-quickstart
という名前を付けます。cf
という名前の列ファミリーを追加します。[Enable change stream] を選択します。
[作成] をクリックします。
データ パイプラインを初期化して変更ストリームを取得する
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
など)
Google Cloud コンソールの [Dataflow] ページに移動します。
changestreamquickstart で始まる名前のジョブをクリックします。
画面下部の [表示] をクリックして、ログパネルを開きます。
[Worker logs] をクリックして、変更ストリームの出力をモニタリングします。
Cloud Shell で、Bigtable にデータを書き込んで変更ストリーム プロセスを確認します。
cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \ import change-streams-quickstart quickstart-data.csv column-family=cf
Google Cloud コンソールで、[Severity] が少なくとも
Info
に設定されていることを確認します。ワーカーログ出力ログには次のものが含まれます。
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
変更ストリーム パイプラインを停止します。
Google Cloud コンソールで、Dataflow の [ジョブ] ページに移動します。
ジョブリストからストリーミング ジョブを選択します。
ナビゲーションで、[停止] をクリックします。
[ジョブの停止] ダイアログでパイプラインをキャンセルし、[ジョブの停止] をクリックします。
省略可: このクイックスタートで新しいインスタンスを作成した場合は、インスタンスを削除します。
cbt deleteinstance BIGTABLE_INSTANCE_ID