3.1.2 Utilizing the Local Kafka Cluster
You can use the local Kafka cluster as a source or target in GGSA pipelines. The instance provides a range of Kafka utilities to read and write data from local Kafka. These utilities are in the README.txt file in the/u01/app/osa/utilities/kafka-utils folder. Below is the description of the scripts for quick reference:
- For Kafka-related help, type
./kafka.sh help. - To list Kafka topics, run
./kafka-topics.sh. - To listen to a Kafka topic, type
./kafka-listen.sh {topic-name}. -
To feed a csv file into Kafka, run
cat {your-csv-file} | ./csv2json.sh | ./sampler.sh 1 1 | ./kafka.sh feed {your-topic-name} -
To feed a json file, run
cat {your-json-file} | ./sampler.sh 1 1 | ./kafka.sh feed {your-topic-name} -
To loop through your csv file, run
./loop-csv.sh {your-csv-file} | ./csv2json.sh | ./sampler.sh 1 1 | ./kafka.sh feed {your-topic-name} -
The command
sampler.sh {n} {t}reads {n} lines in each {t} seconds from STDIN and writes to STDOUT. Default values: n=1 t=1 -
The command
csv2json.shreads the CSV from the STDIN and writes JSON to STDOUT. First line must be the CSV header. -
There are data files to simulate GoldenGate capture:
cat ./gg_orders.json | ./sampler.sh | ./kafka.sh feed goldengate -
There are data files to simulate nested json structures:
./loop-file.sh ./complex.json | ./sampler.sh 1 1 | ./kafka.sh feed complex -
There are data files to simulate movement of buses:
cat ./30-min-at-50-rps.json | ./sampler.sh 20 1 | kafka.sh feed buses -
In general to feed test data to your running kafka installation, run
{your-shell-script} | kafka.sh feed {your-topic-name}Note:
your-shell-scriptgenerates data in JSON format.Sample output:
{"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"}