Індивідуалізоване рішення ETL для Standalone MongoDB

Якщо ваш сервіс працює на інфраструктурі вашої компанії, а MongoDB клієнта X знаходиться на його окремому сервері в standalone режимі, виникає проблема інтеграції. У X Company є репліка-сет з трьох екземплярів MongoDB, де зберігається колекція Page. Вона містить 25 полів і понад мільйон вставок на день. У цій колекції є TTL індекс на поле Created, що автоматично видаляє дані через 24 години. Клієнт потребує лише три з цих полів.

Основні проблеми, з якими ми зіткнулися, це обмежений час і неможливість додати клієнта як secondary node, оскільки йому потрібні конкретні дані. Через це варіанти з ETL не підходять, бо клієнт не потребує великих пошукових запитів, йому достатньо коротких звітів.

У режимі ReplicaSet MongoDB підтримує можливість використання ChangeStream, але в standalone режимі ця функція недоступна. Оскільки необхідно постійно передавати дані клієнту, вирішили використовувати механізм відслідковування операцій Insert / Update для потрібної колекції.

Це рішення виявилося ефективним: наш сервер працює стабільно, а клієнт залишився задоволений результатом.

Перекладено з: Standalone Bir MongoDB’ye Customize ETL Çözümü