3.1.2 ローカルKafkaクラスタの活用
ローカルKafkaクラスタをGGSAパイプラインでソースまたはターゲットとして使用できます。インスタンスでは、ローカルKafkaからデータの読取りと書込みを行うめに一連のKafkaユーティリティが提供されます。これらのユーティリティは、/u01/app/osa/utilities/kafka-utils
フォルダのREADME.txt
ファイルにあります。簡単に参照できるようにスクリプトの説明を次に示します:
- Kafka関連のヘルプを確認するには、
./kafka.sh help
と入力します。 - Kafkaのトピックをリストするには、
./kafka-topics.sh
を実行します。 - Kafkaのトピックをリスニングするには、
./kafka-listen.sh {topic-name}
と入力します。 -
csvファイルをKafkaにフィードするには、次を実行します
cat {your-csv-file} | ./csv2json.sh | ./sampler.sh 1 1 | ./kafka.sh feed {your-topic-name}
-
jsonファイルをフィードするには、
cat {your-json-file} | ./sampler.sh 1 1 | ./kafka.sh feed {your-topic-name}
を実行します -
csvファイルをループ処理するには、
./loop-csv.sh {your-csv-file} | ./csv2json.sh | ./sampler.sh 1 1 | ./kafka.sh feed {your-topic-name}
を実行します -
コマンド
sampler.sh {n} {t}
は、{n}行を{t}秒おきにSTDINから読み取り、STDOUTに書き込みます。デフォルト値: n=1 t=1 -
コマンド
csv2json.sh
は、CSVをSTDINから読み取り、JSONをSTDOUTに書き込みます。1行目はCSVヘッダーである必要があります。 -
GoldenGateのキャプチャをシミュレートするデータ・ファイルがあります:
cat ./gg_orders.json | ./sampler.sh | ./kafka.sh feed goldengate
-
ネストされたjson構造をシミュレートするデータ・ファイルがあります:
./loop-file.sh ./complex.json | ./sampler.sh 1 1 | ./kafka.sh feed complex
-
バスの移動をシミュレートするデータ・ファイルがあります:
cat ./30-min-at-50-rps.json | ./sampler.sh 20 1 | kafka.sh feed buses
-
一般に、実行中のkafkaインストールにテスト・データをフィードするには、
{your-shell-script} | kafka.sh feed {your-topic-name}
を実行しますノート:
your-shell-script
は、JSON形式でデータを生成します。サンプル出力:
{"price":284.03,"symbol":"USDHUF=x","name":"USD/HUF"}
{"price":316.51,"symbol":"EURHUF=x","name":"EUR/HUF"}
{"price":0.8971,"symbol":"USDEUR=x","name":"USD/EUR"}