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