使用Kafka在Cassandra中自动生成表连接Cassandra Sink

时间:2018-11-29 11:58:35

标签: cassandra apache-kafka apache-kafka-connect confluent

我是using confluent.connect.cassandra.CassandraSinkConnector,因为kafka连接了cassandra sink。

我想知道是否可以使用io.confluent.connect.cassandra.CassandraSinkConnector作为连接器从kafka主题自动生成cassandra表。

如果可能的话,请您建议设置什么配置以启用此功能。我已经尝试了文档中提到的所有配置,但是创建表没有成功。

这是我正在使用的配置:

{
  "name": "cassandra-test4",

  "config": {

    "connector.class": "io.confluent.connect.cassandra.CassandraSinkConnector",

    "tasks.max": "3",

    "topics": "orders-topic2",

    "cassandra.contact.points": "my_ip",

    "cassandra.keyspace": "test_cas",

    "cassandra.write.mode": "Insert",

    "cassandra.table.manage.enabled": "true",

    "cassandra.sink.route": "test_cas.orders",

    "key.converter.schema.registry.url": "http://localhost:8081",

    "value.converter.schema.registry.url": "http://localhost:8081",

    "value.converter": "io.confluent.connect.avro.AvroConverter",

    "key.converter": "org.apache.kafka.connect.storage.StringConverter",

    "flush.size": "1",

    "cassandra.keyspace.create.enabled": "true",

    "name": "cassandra-test4"

  },

  "tasks": [

    {

      "connector": "cassandra-test4",

      "task": 0

    },

    {

      "connector": "cassandra-test4",

      "task": 1

    },

    {

      "connector": "cassandra-test4",

      "task": 2

    }

  ],

  "type": null

}

1 个答案:

答案 0 :(得分:1)

这应该通过将cassandra.keyspace.create.enabledcassandra.table.manage.enabled属性设置为true来完成。参见documentation

但是要非常小心-在集群中很容易出现架构分歧,然后您需要执行其他步骤以从中恢复。最好在启动连接器之前预先创建表...