несколькими СУБД. Например, между MongoDB/ClickHouse. К примеру, данные о пользователях хранятся в MongoDB, а данные об их покупках - в CH. Есть задача: выбрать айдишники всех пользователей, которые старше 23 года (эти данные находятся в MongoDB) И которые накупили товаров на сумму больше 12000РУБ (в ClickHouse). Есть вариант сначала запустить запрос в MongoDB, выгрузить айдишники людей, старше 23 года, и добавлять параллельно в временную таблицу в ClickHouse (tmp_table). После этого в CH выполнить запрос, похожий на
SELECT user_id, SUM(price) FROM ... AND user_id IN tmp_table
Нормальная ли это практика? Или есть какие-то более удобные хитрости?)
Привет. Самый правильный вариант - хранить данные о покупках в максимально денормализованном виде. Т.е в таблице с покупками уже должны присутствовать возраст . Если это невозможно обеспечить на этапе etl, есть другие варианты- менее производительные.
Обсуждают сегодня