我想设置从kafka主题到cassandra的kafka连接
问题很简单:说我在kafka中有一个带有json数据的演示主题,如
{"id":"1", "name":"Alex", "clicks":2}
我想自动将其推入带有列ID,名称和点击次数的cassanra表。
我正在研究kafka-connect-cassandra,但我能找到的唯一例子就是从卡桑德拉读书并通过中间的卡夫卡写到另一张卡桑德拉表。
我的问题是如何从卡夫卡而不是卡桑德拉读取它? 我正在寻找一些连接器开源的例子来做这件事。
答案 0 :(得分:1)
您所指的示例是同时展示连接器的源和接收器功能。如果您的用例是将数据从Kafka主题推送到Cassandra表,那么您只需要一个接收器。请按照以下步骤操作
my-sink.properties
CLASSPATH=<<path-to-connector-jar>> ./bin/connect-standalone connect-standalone.properties my-sink.properties
如果您对更详细步骤的示例感兴趣,请参阅此处:https://github.com/yaravind/kafka-connect-jenkins#standalone-mode(完全披露:我为Jenkins维护该连接器。)
答案 1 :(得分:0)
我遇到了同样的问题,我按照https://www.confluent.io/blog/kafka-connect-cassandra-sink-the-perfect-match/上的内容进行了操作。我使用DataMountaineer驱动程序(http://docs.datamountaineer.com/en/latest/cassandra-sink.html),并以分布式模式进行设置。
设置完成后,cassandra连接器的配置Json(通过REST API上传以进行汇合连接)应如下所示:
{
"name": "cassandra.sink.yourConfigName",
"config": {
"connector.class": "com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraSinkConnector",
"tasks.max": "1",
"topics": "<your topic>",
"connect.cassandra.sink.kcql": "INSERT INTO <your_table> SELECT * FROM <your_kafka_topic>;",
"connect.cassandra.contact.points": "<cassandra nodes>",
"connect.cassandra.port": "<cassandra port>",
"connect.cassandra.key.space": "<cassandra keyspace>",
"connect.cassandra.username": "cassandra",
"connect.cassandra.password": "cassandra"
}}