ブログ & java
2021/01/15
Apache Kafka から Google Cloud Pub/Sub へのデータ取り込みの例
このブログ記事では、Apache Kafka から単一または複数のトピックからデータを読み取り、Google Pub/Sub のトピックにデータを書き込むパイプラインを作成する例を紹介します。この例では、シンプルながら強力なパイプラインを実装するためのコードサンプルと、すぐに「プラグアンドプレイ」できる既製のソリューションを提供します。
このエンドツーエンドの例は、Apache Beam リリース 2.27 に含まれており、こちら からダウンロードできます。
この例が、Kafka と Pub/Sub 間でデータパイプラインをセットアップするのに役立つことを願っています。
例の仕様
サポートされるデータ形式
- JSON などのシリアル化可能なプレーンテキスト形式
- PubSubMessage
サポートされる入力ソース構成
- 単一または複数の Apache Kafka ブートストラップサーバー
- プレーンテキストまたは SSL 接続による Apache Kafka SASL/SCRAM 認証
- シークレットボールトサービス HashiCorp Vault
サポートされる宛先構成
- 単一の Google Pub/Sub トピック
単純なシナリオでは、この例では、ソーストピックを持つソース Kafka サーバーからメッセージを読み取り、指定された Pub/Sub 宛先トピックにテキストメッセージをストリーミングする Apache Beam パイプラインを作成します。他のシナリオでは、プレーンテキストまたは SSL 暗号化接続を介して実行できる Kafka SASL/SCRAM 認証が必要になる場合があります。この例では、提供されたソース Kafka サーバーとトピックで認証するために単一の Kafka ユーザーアカウントを使用することをサポートしています。SSL を介した SASL 認証をサポートするには、この例では SSL 証明書の場所と、現在 HashiCorp Vault をサポートしている Kafka のユーザー名とパスワードを含むシークレットボールトサービスへのアクセスが必要です。
この例はどこで実行できますか?
パイプラインを実行する方法は 2 つあります。
- ローカルで。この方法には多くのオプションがあります。IntelliJ から直接実行するか、
.jar
ファイルを作成してターミナルで実行するか、お気に入りの Beam パイプラインの実行方法を使用します。 - Google Cloud で Google Cloud Dataflow を使用
gcloud
コマンドラインツールを使用すると、この Beam 例から Flex テンプレート を作成し、Google Cloud Platform で実行できます。これには、例をテンプレートに変換するための対応する変更が必要です。- この例は、Flex テンプレートバージョン として、Google Cloud Dataflow Template Pipelines リポジトリ内に存在し、追加のコード変更なしで実行できます。
次のステップ
このBeam エンドツーエンドの例を試してみてください。Beam を初めて使用する場合は、この例でパイプラインの仕組みと外観についての理解が深まることを願っています。すでに Beam を使用している場合は、その中のコードサンプルがユースケースに役立つことを願っています。
何か問題が発生した場合は、お知らせください。