Архитектура¶
Tarantool Change Data Capture (CDC) – это механизм захвата и переноса записей в реальном времени, построенный на микросервисной архитектуре. Он действует как промежуточный слой между источниками (source) и приемниками (sink) данных.
Передача данных в Tarantool CDC производится через Универсальный Обработчик. Это микросервис, который включает в себя:
Коннектор к источнику данных (source connector) - точка интеграции, при помощи которой происходит взаимодействие с источником данных.
Коннектор к приемнику данных (sink connector) - точка интеграции, помощи которой происходит взаимодействие с приемником данных.
Single Message Transformations (SMT) - набор модулей, выполняющих различные преобразования событий (изменение структуры, добавление, удаление, переименование полей, смена их типов данных).
Ограничитель потока данных (rate limiter) - модуль управления скоростью чтения данных из источника.
Обработчик контрольных точек (offsets) - классы для хранения контрольных точек (File system, TQE, Kafka).
(architecture-integrations)
Взаимодействие с внешними системами¶
В качестве источника и приемника данных могут использоваться как базы данных, так и очереди. Для взаимодействий с внешними системами в Tarantool CDC используются коннекторы как собственной разработки, так и сторонние коннекторы:
При помощи коннекторов собственной разработки Tarantool CDC может забирать данные из следующих источников:
Tarantool DataBase 1.x (TDB1) – при помощи Tarantool Source Connector;
Tarantool DataBase 2.x (TDB2) – при помощи Tarantool Source Connector;
Tarantool Data Grid 2.x (TDG2) – при помощи Tarantool Source Connector;
Tarantool Queue Enterprise (TQE) – при помощи TQE Source Connector;
Kafka – при помощи Kafka Source Connector.
При помощи сторонних коннекторов Tarantool CDC может забирать данные из следующих источников:
PostgreSQL – при помощи PostgreSQL Debezium Source Connector;
Oracle – при помощи Oracle Debezium Source Connector.
Передача данных в следующие приемники осуществляется при помощи коннекторов собственной разработки:
Tarantool DataBase 1.x (TDB1) – при помощи Tarantool Sink Connector;
Tarantool DataBase 2.x (TDB2) – при помощи Tarantool Sink Connector;
Tarantool Queue Enterprise (TQE) – при помощи TQE Sink Connector;
Elasticsearch – при помощи Elasticsearch Sink Connector;
Kafka – при помощи Kafka Sink Connector.
Передача данных в следующие приемники осуществляется при помощи сторонних коннекторов:
Clickhouse – при помощи Clickhouse KafkaConnect;
Oracle – при помощи JDBC Debezium Sink Connector;
PostgreSQL – при помощи JDBC Debezium Sink Connector.
Одна установка Tarantool CDC может включать в себя несколько Универсальных Обработчиков и передавать данные между несколькими одинаковыми или разнородными системами, например: из Oracle в Kafka, из TQE в Elasticsearch или из Kafka в Tarantool DB. При этом одна и та же очередь или база данных может выступать одновременно как источником, так и приемником данных.
По мере необходимости в рабочую установку Tarantool CDC можно включать дополнительные Универсальные Обработчики.
Перенос данных через Tarantool CDC организован следующим образом:
Данные из источника получаются соответствующим коннектором. Механизм получения и формат данных зависит от настроек этого коннектора (а также от настроек самого источника данных).
Для каждого события применяется цепочка преобразований (SMT). В процессе некоторые события могут быть отброшены.
Ограничитель потока данных управляет скоростью чтения данных.
Преобразованные события записываются в приемник в через соответствующий коннектор. Механизм записи и формат данных зависит от настроек коннектора приемника и настроек целевой системы.
(architecture-deploy)
Архитектура развертывания¶
Установка Tarantool CDC может быть развёрнута в среде Kubernetes или при помощи инструментов ATE.
В среде Kubernetes развертывание происходит при помощью Helm-чарта. Кроме параметров пода, Helm-чарт содержит конфигурационные
параметры Универсального Обработчика, позволяющие его создать, изменить или удалить. Эти параметры определяются в файле values.yaml:
Объединенная архитектурная схема установки Tarantool CDC, развернутого в поде кластера Kubernetes (приведенная ниже), включает в себя:
Helm-чарт – в качестве точки управления.
СonfigMap – для хранения конфигурационных файлов.
Файл
values.yaml– основной конфигурационный файл.Основной поток переноса данных (жирные линии).
Управляющие взаимодействия (пунктирные линии).
Универсальный Обработчик – микросервис, включающий в себя коннекторы, преобразователь и ограничитель данных.
PostgreSQL Debezium Source Connector – в качестве примера коннектора к источнику данных.
TQE Sink Connector – в качестве примера коннектора к приемнику данных.
Также на диаграмме представлены:
PostgreSQL – в качестве примера источника данных.
TQE – в качестве примера приемника данных
В случае развертывания установки Tarantool CDC при помощи инструментов
Tarantool ATE,
Helm-чарт не используется, а конфигурационные параметры задаются в файле application.yaml.
Тогда объединенная архитектурная схема установки CDC будет выглядеть так, как показано на диаграмме:
Примечание
Конфигурационные файлы могут быть разбиты на несколько файлов application.yaml.
Более подробно об этом смотрите в статье об Универсальном Обработчике.