我正在设置我的日志服务器。我正在使用Fluentd将日志转发到Kafka,然后将其存储在Cassandra中以备后用。为此,我正在使用kafka-cassandra接收器连接器。我必须按时间顺序存储数据,为此我需要在cassandra中为消息添加时间戳。该怎么办?
Datamountaineer连接器使用kcql,我认为它不支持在日志中插入时间戳。
我的连接器配置如下:
name=cassandra-sink
connector.class=com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraSinkConnector
tasks.max=1
topics=test_AF1
connect.cassandra.kcql=INSERT INTO test_event1 SELECT now() as id, message as msg FROM test_AF1 TIMESTAMP=sys_time()
connect.cassandra.port=9042
connect.cassandra.contact.points=localhost
connect.cassandra.key.space=demo
答案 0 :(得分:1)
Kafka Connect的单一消息转换可以做到这一点。这是一个示例:
Array
(
[0] => MongoDB\Model\BSONDocument Object
(
[storage:ArrayObject:private] => Array
(
[_id] =>
[total_amount] => 1000.0000
[total_count] => 100
)
)
)
这会在带有Kafka消息时间戳的{
"connector.class": "com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraSinkConnector",
"topics": "test_AF1",
…
"transforms": "addTS",
"transforms.addTS.type": "org.apache.kafka.connect.transforms.InsertField$Value",
"transforms.addTS.timestamp.field": "op_ts"
}'
消息有效载荷中添加一个字段。
我不知道它如何与KCQL交互;您可能想查看我知道的其他两个Cassandra水槽: