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"}