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

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

0 голосов
/ 07 сентября 2018

В настоящее время я использую 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 голосов
/ 26 сентября 2018

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

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

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

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

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

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

...