kafka(3)--インポート、エクスポートデータの接続


一部のシーンでは、Kafkaは他のソースのデータを使用するか、Kafkaのデータを他のシステムにエクスポートする必要があるが、多くのシステムがカスタム統合コードを作成する必要があるよりも、Kafkaを使用してシステムに接続してデータをインポートまたはエクスポートするのが簡単である.
Kafka Connectは、Kafkaにエクスポートデータをインポートするためのツールです.外部システムと対話するためのカスタムロジックを実行するconnectorsの拡張可能なツールです.この文書では、Kafka Connectを使用して、あるファイルからKafkaのトピックにデータをインポートし、トピックデータを別のファイルにエクスポートする方法について説明します.
1.元のデータファイルの作成
echo -e "foo/bar" > test.txt     #       

test.txtファイルの内容はkafkaにインポートするデータです.
2.起動コネクタ独立モードで動作する2つのコネクタを起動し、コネクタは単一、ローカル、専用のプロセスで動作する.パラメータとして3つのプロファイルが必要です.最初のパラメータは、Kafkaに接続するプロキシサーバの構成やデータのシーケンス化フォーマットの構成など、Kafka接続中の共通プロファイルです.残りの2つのプロファイルは、指定したコネクタを作成するために使用されます.これらのファイルには、一意のコネクタ名、インスタンス化が必要なコネクタクラス、およびそのコネクタを作成するために必要なその他の構成が含まれます.
bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

これらのKafkaの構成ファイルの例を使用して、前に起動したローカルクラスタのデフォルト構成を使用して、2つのコネクタを確立します.1つ目はソースコネクタで、入力ファイルから各行の内容を読み出し、公開されたKafkaトピックと2つ目はsinkコネクタで、Kafkaトピックからメッセージを読み出し、生成されたメッセージを行ごとにファイルに出力します.
3.データの読み込み、書き出しを確認する起動中にコネクタが実例化された情報を見ることができ、Kafka Connectプロセスが開始すると、ソースコネクタはtestから出る.txtは各行のメッセージを読み出し、その本番をトピックconnect-testにパブリッシュし、sinkコネクタはトピックconnect-testからメッセージを読み出し、ファイルtestに書き込む.sink.txt.出力ファイルの内容を確認することで、パイプ全体でデータが転送されたことを確認できます.
#cat test.sink.txt
  foo
  bar

Kafka topic connect-testにデータが格納されているため、コンソール消費者消費topicのデータを実行したり、消費者論理消費メッセージをカスタマイズしたりすることもできます.
# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
{"schema":{"type":"string","optional":false},"payload":"foo"}
{"schema":{"type":"string","optional":false},"payload":"bar"}
...

コネクタがデータを処理し続けるため、testにデータを追加し続けることができる.txtファイルは、パイプを介してデータが移動するのを見ることができます.
echo 111 >> test.txt
cat test.sink.txt

次へ:Streamsによるデータ処理