我当前正在使用 VoltDB kafka importer
从多个 kafka
主题导入数据。我面临加载程序的性能问题。
我阅读了 VoltDB
文档,但找不到如何微调导入程序。
如何指定主题的特定分区?
我当前的设置
6 nodes of VoltDB cluster and Kafka importers on the nodes with custom procedure for insert.
Kafka导入器配置
Host: 172.x.x.x:9092
Topic: mytopic_1,mytopic_2,...mytopic_10
Procedure: tinsert
创建过程tinsert INSERT INTO tinsert(sensor_id,column2, column3,receive_time)VALUES(?,?,?,now());
表已分区,分区键为sensor_id
问题在于导入程序无法像生成数据一样快地提取数据。
消息发布速度为每秒10,000条记录
任何帮助将不胜感激。
答案 0 :(得分:0)
您可以调整一些因素,这些因素会影响Kafka Importer可以将数据提取到VoltDB中的速度。
Kafka中主题的分区数。 VoltDB将为每个分区运行一个使用者线程。更多分区=更多线程。
VoltDB导入器从其当前偏移量中从Kafka检索一批记录,然后为每个记录调用该过程。它等待过程回调返回,以便知道所有内容都已处理。然后,它在Kafka中推进偏移量并检索另一批。此过程可能会限制它可以处理的速率。如果设置属性commit.policy = 10,则它将偏移量提前到每10毫秒读取一次。这样做可能会加快数据流的速度,如果发生故障并重新启动,则可能存在较小的间隙(例如,偏移量超出已读取但未插入的记录)。
有关配置选项,请参见:https://docs.voltdb.com/UsingVoltDB/exportimportkafka.php
披露:我在VoltDB工作