Kafka Connect,Cassandra Sink:如何指定分区键和集群键?

时间:2020-04-04 13:14:12

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

我经历了Cassandra Sink doc,但看不到如何指定分区键和集群键。

医生说:

您可以配置此连接器以管理Cassandra上的架构 簇。更改现有表时,将忽略键。这是 避免围绕更改主键的潜在问题 现有表格。密钥架构用于为 创建表时的表。

如果它是一个新表,则连接器将使用Key模式(假设我来自KStream)来创建主键。对于分区密钥可能没问题,但对于群集密钥却没有。

那么我们是否被迫在运行Streaming应用之前用正确的键创建所有表,还是有办法进行调整?

1 个答案:

答案 0 :(得分:1)

Confluent的连接器要求主键中的所有列都应位于主题的键中(作为结构,如果我没有记错的话)。这是它的局限性之一,因为它可能与应用程序的输出不匹配。在这种情况下,您需要转换主题以符合此要求。

我建议使用经过精心设计的DataStax's Kafka Connector而不是Confluent的连接器,以有效地将数据加载到Cassandra / DSE中。它具有以下功能(更多信息为in the following blog post):

  • 将一个主题的数据存储到一个或多个Cassandra表中(以支持数据非规范化);
  • 将主题中的数据映射到Cassandra列中是由配置文件定义的,因此您可以获取消息的任何键或值,然后映射到列中;
  • 在可能的情况下使用轻巧的未记录批次非常有效;
  • 支持Cassandra / DSE的不同安全功能;

Connector免费用于DSE(从DSE 4.8开始)和Cassandra(从2.1开始)。