ВольтДБ Кафка импортер
Я сейчас пользуюсь 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.
Количество разделов по теме в Кафке. VoltDB будет запускать потребительский поток для каждого раздела. Больше разделов = больше потоков.
Импортер VoltDB извлекает пакет записей из Kafka из его текущего смещения, а затем вызывает процедуру для каждой записи. Он ожидает возврата обратных вызовов процедуры, поэтому он знает, что все было обработано. Затем он перемещает смещение в Kafka и получает другую партию. Этот процесс может ограничивать скорость, с которой он может справиться. Если вы установите свойство commit.policy=10, то оно просто увеличит смещение до того, что будет прочитано каждые 10 миллисекунд. Это может позволить ускорить поток данных, рискуя иметь небольшой разрыв в случае сбоя и перезапуска (например, смещение, превышающее записи, которые были прочитаны, но не вставлены).
Параметры конфигурации см.: https://docs.voltdb.com/UsingVoltDB/exportimportkafka.php
- Производительность / масштаб процедуры, вызываемой в кластере. Если таблица секционирована, а процедура только вставляет, это, вероятно, не является ограничивающим фактором.
Раскрытие информации: я работаю в VoltDB