ВольтДБ Кафка импортер

Я сейчас пользуюсь VoltDB kafka importer импортировать данные из нескольких kafka темы. Я столкнулся с проблемой производительности с загрузчиком. Я прочитал VoltDB документация, но не могу найти, как точно настроить импортер.

Как можно указать конкретный раздел темы?

Моя текущая настройка

6 nodes of VoltDB cluster and Kafka importers on the nodes with custom procedure for insert.

Кафка импортер конфиг

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

Проблема в том, что импортер не тянет данные так быстро, как они генерируются.

Скорость публикации сообщений - 10000 записей в секунду.

Любая помощь будет оценена.

1 ответ

Есть несколько вещей, которые вы можете настроить, чтобы повлиять на скорость, с которой Kafka Importer может загружать данные в VoltDB.

  1. Количество разделов по теме в Кафке. VoltDB будет запускать потребительский поток для каждого раздела. Больше разделов = больше потоков.

  2. Импортер VoltDB извлекает пакет записей из Kafka из его текущего смещения, а затем вызывает процедуру для каждой записи. Он ожидает возврата обратных вызовов процедуры, поэтому он знает, что все было обработано. Затем он перемещает смещение в Kafka и получает другую партию. Этот процесс может ограничивать скорость, с которой он может справиться. Если вы установите свойство commit.policy=10, то оно просто увеличит смещение до того, что будет прочитано каждые 10 миллисекунд. Это может позволить ускорить поток данных, рискуя иметь небольшой разрыв в случае сбоя и перезапуска (например, смещение, превышающее записи, которые были прочитаны, но не вставлены).

Параметры конфигурации см.: https://docs.voltdb.com/UsingVoltDB/exportimportkafka.php

  1. Производительность / масштаб процедуры, вызываемой в кластере. Если таблица секционирована, а процедура только вставляет, это, вероятно, не является ограничивающим фактором.

Раскрытие информации: я работаю в VoltDB

Другие вопросы по тегам