【发布时间】:2017-07-23 08:03:04
【问题描述】:
我们如何在不使用 Confluent 框架的情况下将 Kafka Connect 与 Cassandra 结合使用。
【问题讨论】:
标签: cassandra apache-kafka apache-kafka-connect
我们如何在不使用 Confluent 框架的情况下将 Kafka Connect 与 Cassandra 结合使用。
【问题讨论】:
标签: cassandra apache-kafka apache-kafka-connect
Kafka Connect 是框架。 Confluent 仅提供连接器。如果您不想使用 Confluent Open Source(但为什么不呢?),您也可以将所有这些连接器与 vanilla Apache Kafka 一起使用。
有多个 Casandra 连接器可用:https://www.confluent.io/product/connectors/
顺便说一句:列出的 Casandra 连接器都不是由 Confluent 维护的。
当然,您也可以编写自己的连接器或使用任何其他第三方连接器。
【讨论】:
DataMountaineer Stream Reactor 具有可与 Kafka Connect 一起使用的 Cassandra Source 和 Sink 解决方案。
将 jar 文件 (download) 放入 Kafka libs 文件夹,然后按如下方式指定您的连接器:
{
"name": "cassandra-NAME",
"config": {
"tasks.max": "1",
"connector.class": "com.datamountaineer.streamreactor.connect.cassandra.source.CassandraSourceConnector",
"connect.cassandra.key.space": "KEYSPACE",
"connect.cassandra.source.kcql": "INSERT INTO KAFKA_TOPIC SELECT column1, timestamp_col FROM CASSANDRA_TABLE PK timestamp_col",
"connect.cassandra.import.mode": "incremental",
"connect.cassandra.contact.points": "localhost",
"connect.cassandra.port": 9042,
"connect.cassandra.import.poll.interval": 10000
}}
启动 Kafka Connect
bin/connect-distributed.sh config/connect-distributed.properties
并通过上面提到的 JSON 属性文件将 Cassandra 连接器加载到 Kafka Connect(假设它的名称为 connect-cassandra-source.json)
curl -X POST -H "Content-Type: application/json" -d @config/connect-cassandra-source.json localhost:8083/connectors
您将需要创建一个具有 timeuuid 列作为集群键的表。这被描述为here。
【讨论】: