Архитектура коннектора

Arenadata DB (ADB) это горизонтально-масштабируемая СУБД, предназначенная для построения больших аналитических хранилищ данных (от источников до витрин данных). Такие модели требуют наличия множества соединений, развитый синтаксис ANSI SQL, транзакционность и другие возможности. С другой стороны Clickhouse предоставляет доступ к построенным широким витринам с максимальной скоростью.

Коннектор поддерживает только возможность односторонней вставки данных. Он состоит из двух компонентов – модуля PXF, непосредственно занимающегося отправкой данных с сегментов, и расширения ADB, предназначенного для того, чтобы сделать операцию загрузки данных более безопасной при отсутствии транзакций в Clickhouse.

Модуль PXF использует функциональность внешних таблиц ADB и может быть использован отдельно. Он не делает различия в типе таблиц Clickhouse и отправляет данные равномерно на те ноды, которые указаны в его конфигурации. Модуль содержит необходимую логику для регулирования скорости отправки данных, которую требует движок слияния таблиц Clickhouse. Также архитектура модуля позволяет задавать дополнительные настройки, влияющие на производительность, такие как количество сетевых потоков, длину очереди и прочие.

Расширение ADB напротив, учитывает топологию таблиц Clickhouse и создает в точности ее повторяющий промежуточный слой. Это необходимо как для обеспечения консистентности, так и для оптимальной производительности. Как только данные загружаются в промежуточный слой, расширение проверяет совпадение по количеству строк на физических таблицах и переключает куски данных из промежуточного слоя в реальные таблицы. Эта операция не требует перемещения данных. Расширение для пользователя представляет собой процедуру, в которую следует полностью передать запрос INSERT во внешнюю таблицу.