【发布时间】:2021-07-06 06:09:50
【问题描述】:
如何使用 kafka-console-producer 将 json 文件数据插入 kafka 主题? 每个json数据集可以存储为消息吗?
例子-
{
"id": 1,
"first_name": "John",
"last_name": "Lindt",
"email": "jlindt@gmail.com",
"gender": "Male",
"ip_address": "1.2.3.4"
}
如果你使用这个命令-
cat sampledata.json|kafka-console-producer --broker-list localhost:9092 --topic stream-test-topic
每一行都被视为一个单独的消息。
这样做的正确方法是什么?
谢谢!
ps-
Elastic 搜索正在读取该主题。示例 json 消息文件 -
[{
"id": 1,
"first_name": "John",
"last_name": "Lindt",
"email": "jlindt@gmail.com",
"gender": "Male",
"ip_address": "1.2.3.4"
}, {
"id": 2,
"first_name": "Peter",
"last_name": "Friz",
"email": "Friz3@gmail.com",
"gender": "Male",
"ip_address": "4.5.6.7"
}, {
"id": 3,
"first_name": "Dell",
"last_name": "Chang",
"email": "Dellc@gmail.com",
"gender": "Female",
"ip_address": "8.9.10.11"
}, {
"id": 4,
"first_name": "Lolita",
"last_name": "John",
"email": "LolitaJ@gmail.com",
"gender": "Female",
"ip_address": "12.13.14.15"
}, {
"id": 5,
"first_name": "Pele",
"last_name": "Wang",
"email": "Pele@gmail.com",
"gender": "Male",
"ip_address": "16.17.18.19"
}, {
"id": 6,
"first_name": "Rene",
"last_name": "Charm",
"email": "Rene3@gmail.com",
"gender": "Male",
"ip_address": "20.21.22.23"
}]
【问题讨论】:
-
你的消息分隔符是什么?简单地创建一个新的 JSON 对象? JSON 来自哪里?
-
用示例 json 文件更新了我的问题。
-
所以您有一个包含单个 JSON 数组的文件,并且您想将该数组分解为单独的消息?对吗?
-
和;这些数据来自哪里?几乎可以肯定,这里更好的模式是构建 JSON 数组并写入该文件的过程,而不是将其直接发送到 Kafka
-
如果您真的想从文件中获取一些虚拟数据并将其塞入主题以进行测试,那么只需将其从数组中取出,并在每一行放置一个对象。就是这样。
标签: apache-kafka