Создать денормализованное представление нормализованных реляционных данных - PullRequest
0 голосов
/ 06 февраля 2020

Я являюсь частью проекта, который разрабатывает приложение на основе CQRS. Приложение получит все свои данные из хранилища № SQL, где оно получит их в денормализованном формате. Однако фактические данные находятся в реляционной системе. Хранилище № SQL служит для просмотра реляционных данных. Это представление должно обновляться через регулярные промежутки времени (вероятно, каждые несколько минут).

Я не уверен, какую технологию следует использовать для автоматизации этой процедуры обновления. Денормализованное представление - JSON, которое может быть сгенерировано в запросе SQL, но из-за этого поставщик базы данных процедуры обновления определит c, что станет проблемой. Я пытался использовать Pentaho Kettle, но создание действительно денормализованной структуры оказалось невероятно утомительным и отнимало много времени.

Какая технология уместна, учитывая, что она должна легко обслуживаться и адаптироваться?

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

Хранилище No SQL - это Couchbase, а СУРБД, используемая для разработки, - MariaDB.

1 Ответ

0 голосов
/ 06 февраля 2020

Решение, которое, кажется, работает хорошо, - это использование Pentaho Kettle исключительно для запросов к базе данных и обновления хранилища № SQL. JSON генерируется как часть запроса (большинство JSON функций стандартизированы между RDBMS, так что это нормально). Поскольку мой пользователь БД не может использовать JSON_ARRAYAGG, все подзапросы выражаются в сериализованном JSON, который анализируется и заменяется фактическим JSON в преобразовании Kettle.

...