VoltDB Kafka进口商

时间:2018-09-07 13:33:26

标签: voltdb

我当前正在使用 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条记录

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以调整一些因素,这些因素会影响Kafka Importer可以将数据提取到VoltDB中的速度。

  1. Kafka中主题的分区数。 VoltDB将为每个分区运行一个使用者线程。更多分区=更多线程。

  2. VoltDB导入器从其当前偏移量中从Kafka检索一批记录,然后为每个记录调用该过程。它等待过程回调返回,以便知道所有内容都已处理。然后,它在Kafka中推进偏移量并检索另一批。此过程可能会限制它可以处理的速率。如果设置属性commit.policy = 10,则它将偏移量提前到每10毫秒读取一次。这样做可能会加快数据流的速度,如果发生故障并重新启动,则可能存在较小的间隙(例如,偏移量超出已读取但未插入的记录)。

有关配置选项,请参见:https://docs.voltdb.com/UsingVoltDB/exportimportkafka.php

  1. 在群集上调用的过程的性能/规模。如果表已分区,并且过程仅在插入,则可能不是限制因素。

披露:我在VoltDB工作