В настоящее время я работаю консультантом в стартапе в области электронной коммерции. И одна из моих важных обязанностей — синхронизировать данные в реальном времени между разными базами данных.

Проблема

У стартапа две платформы. Одно из них — веб-приложение, использующее базу данных mysql, а второе — мобильная версия первого, использующая Postgresql.

Дело было в том, чтобы автоматически сделать такие данные, как предпочтения пользователей, доступными независимо от того, к какому приложению они подключены.

В качестве отказа от ответственности, то, чем я собираюсь поделиться, является лишь частью стратегии синхронизации, которую я предложил стартапу и которая, как я обнаружил, будет очень полезна для технического сообщества.

Если вы не являетесь поклонником истории, сразу переходите к шагу 3.

Шаг 1. SymmetricDS Pro действительно профессионален

Перед ReplicaDB я провел несколько исследований на YouTube и обнаружил SymmetricDS.

SymmetricDS — это программное обеспечение для репликации баз данных с открытым исходным кодом, ориентированное на функции и кросс-платформенную совместимость.

SymmetricDS — очень мощный инструмент, поскольку его можно использовать с широким спектром баз данных, и он работает как CDC (сбор данных об изменениях), который представляет собой процесс идентификации и фиксации изменений, внесенных в данные в базе данных, а затем доставки этих изменений в в режиме реального времени для последующего процесса или системы. SymmetricDs — это инструмент, основанный на триггерах.

Он имеет две версии: версию с открытым исходным кодом, которая позволяет любому выполнять таможенные операции, и версию Pro или Commercial, которая больше похожа на графическую версию версии с открытым исходным кодом. Для работы версии Pro требуется лицензионный ключ, и именно на этом я остановился, потому что сказал своему клиенту, что инструмент синхронизации данных будет бесплатным. (Я знаю: ошибка !!)

Шаг 2: Один шаг к ReplicaDB

Я мог бы просто сказать клиенту, чтобы он использовал профессиональную версию SymmetricDS, но я хотел, чтобы инструмент был действительно бесплатным, и я также хотел делать все сам (а не просто нажимать кнопку «Далее», лол).

Затем я начал реализовывать логику синхронизации, но остановился после двух недель работы на полставки по двум причинам: у меня заканчивалось отведенное время и, честно говоря, мне было трудно понять документацию SymmetricDS (возможно, это было давление из-за отсутствия времени, можете поделиться своим опытом, если вы это сделали).

Шаг 3: Репликация ReplicaDB

В поисках альтернатив SymmetricDS я наткнулся на эту статью, которая привела меня к репозиторию ReplicaDB.

ReplicaDB — это инструмент репликации данных, разработанный на Java. ReplicaDB — это очень легкий и простой в использовании инструмент, который можно установить в Linux или Windows, в отличие от SymmetricDs, который требует некоторого обслуживания баз данных.

И самое главное, ReplicaDB может выполнять репликацию между ядрами баз данных SQL, NoSQL или другими постоянными хранилищами, такими как CSV, Amazon S3 или Kafka.

Вы можете скачать его .tar.gz, .zip или исходную версию здесь.

Перейдите по ссылке на репозиторий ReplicaDB, чтобы выполнить процедуру установки и получить всю информацию о ней.

После установки самое важное, что нужно сделать, это настроить файл конфигурации для репликации данных.

Для этого вам действительно нужно указать:

  1. Драйверы баз данных для использования как для исходной, так и для целевой баз данных.
  2. Имена пользователей баз данных и их пароли.
  3. Имена соответствующих таблиц в обеих частях (исходной и целевой).
  4. Имена соответствующих столбцов для исходной и целевой таблиц.

Шаг 4: ReplicaDB в картинках

Давайте синхронизируем две таблицы, источник на Mysql и источник на Postgresql. Приемник здесь означает целевую таблицу.

Первая строка предназначена для режима репликации. ReplicaDB имеет три типа режимов репликации, которые раскрывают разные сценарии. Подробнее об этом можно прочитать на странице документации.

Это пример файла конфигурации ReplicaDB. Вы также можете сгенерировать файл конфигурации здесь.

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

$ replicadb --options-file replicadb.conf 

«replicadb.conf» — это имя файла конфигурации.

Когда выполнение завершится успешно, вы должны получить что-то похожее на это.

Шаг 5: Автоматизация процесса.

В то время, когда я пишу эту статью, я еще не автоматизировал этот процесс, но я твердо верю, что это можно сделать разными способами.

Просто поделитесь со мной своим опытом работы с ReplicaDB или другим инструментом репликации.

Подпишитесь на меня, чтобы быть в курсе будущих идей. Спасибо !