|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
Имеется несколько баз, находящихся в разных местах, в которых много данных. Есть идея из каждой базы выгружать маленький агрегированный слепок данных для аналитики и загружать в другую центральную базу для дальнейшего анализа. У кого-то есть опыт решения таких задач? Данные должны быть в центральной базе не старее одного часа от других. В postgresql не нашёл такого механизма (там либо вообще всё либо целая таблица), в MySQL вроде есть materialized view, которую вроде тоже можно реплицировать ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 20:29 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61MySQL вроде есть materialized viewГде вы это вычитали? А вообще - делайте обычную таблицу. Обычные таблицы почти любая приличная СУБД реплицировать умеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 20:52 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61Есть идея из каждой базы выгружать маленький агрегированный слепок данных для аналитики и загружать в другую центральную базу для дальнейшего анализа. У кого-то есть опыт решения таких задач? Каких именно задач? Сразу скажу: твоя "идея" задачей не является. Для перемещения данных между БД обычно используют ETL или репликацию. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 22:44 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
miksoft, Проблема в том, что агрегированные данные каждый раз пересчитываются полностью. То есть вся таблица пересоздается. Как при этом этом будет работать репликация? Вряд ли она проанализирует, что изменилось и это пошлёт. Репликация просто скопирует всю очередь DML и все эти команды пошлёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2019, 10:46 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Да, понятно, что через ETL это всё сделать можно. Но хотелось бы избежать дополнительной работы и сделать, используя готовые механизмы ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2019, 10:48 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61Проблема в том, что агрегированные данные каждый раз пересчитываются полностью. То есть вся таблица пересоздается. Как при этом этом будет работать репликация? Вообще-то это зависит от конкретного инструмента репликации. Но чудаку, который каждый раз пересчитывает агрегаты, надо оторвать руки по самую задницу. ilin61хотелось бы избежать дополнительной работы и сделать, используя готовые механизмы ETL это и есть "готовые инструменты". А серебряной кнопки "сделать всё как я хочу" - нету. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2019, 11:23 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61То есть вся таблица пересоздается.Пересоздавать не надо, надо только очищать, если никакие прежние данные не нужны (хотя это тоже вызывает сомнение). ilin61Как при этом этом будет работать репликация? Вряд ли она проанализирует, что изменилось и это пошлёт. Репликация просто скопирует всю очередь DML и все эти команды пошлёт.В MySQL есть два способа репликации - передача измененных записей и передача DML-команд. Пока не очевидно, какой из них подойдет лучше в вашем случае. ilin61каждый раз пересчитываются полностьюЕсли алгоритм очень сложный и требует многократного чтения-записи из таблицы, то заведите еще одну таблицу, в которую только пишите готовый результат, и ее реплицируйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2019, 12:59 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Буду рад, если подскажете, какие есть средства репликация и инструменты подойдут в моем случае, может, у вас был опыт какой-то . Также вопрос, по поводу расчета агрегатов, как обрабатывать сложные кейсы, когда мне, к примеру, нужно посчитать count distinct по определённым полям, мне же в любом случае нужно пройтись по всей таблице заново и посчитать эти значения? Как обычно такие кейсы решаются? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 13:02 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
miksoft, Спасибо за ответ, но вот этот готовый результат же будет постоянно полностью пересылаться ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 13:03 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61miksoft, Спасибо за ответ, но вот этот готовый результат же будет постоянно полностью пересылаться ?Это уже зависит от бизнес-требований. Если данные нужно видеть за вчерашние сутки, то сутки закончились-агрегаты пересчитались-репликация отработала-ждем следующих суток. Если нужно практически в онлайне, то есть вариант модифицировать все места в коде, которые пишут в базу детальные данные, чтобы они же модифицировали и агрегированную таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 14:17 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61Как обычно такие кейсы решаются? Обычно это решается разборками типа "а назачем нужен этот count(distinct) и нужен ли он тут вообще". Может внезапно оказаться, что это совершенно ненужная свистоперделка. Или что достаточно прохода по одной записи, а не всем. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 15:39 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61Буду рад, если подскажете, какие есть средства репликация и инструменты подойдут в моем случае, может, у вас был опыт какой-то . Также вопрос, по поводу расчета агрегатов, как обрабатывать сложные кейсы, когда мне, к примеру, нужно посчитать count distinct по определённым полям, мне же в любом случае нужно пройтись по всей таблице заново и посчитать эти значения? Как обычно такие кейсы решаются? обычно такие кейсы решаются банальным DWH и ETL процессами по дороге. реплицируйте нужные таблицы целиком и по копиям считайте ваши агрегаты, kpi и прочее, типичное для dwh ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 23:04 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
H5N1, У нас исходные таблицы содержат на порядки больше информации, чем агрегированные данные. Более того каналы связи оставляют желать лучшего :( ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 11:11 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
Каналы тут ни при чём. "Всё решают кадры." (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 12:23 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61Dimitry Sibiryakov, Да, понятно, что через ETL это всё сделать можно. Но хотелось бы избежать дополнительной работы и сделать, используя готовые механизмы Готовые механизмы, типа Goldengate, стоят весьма больших денег. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 23:10 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61Имеется несколько баз, находящихся в разных местах, в которых много данных. Есть идея из каждой базы выгружать маленький агрегированный слепок данных для аналитики и загружать в другую центральную базу для дальнейшего анализа. довольно часто встречаемая задача. ilin61Данные должны быть в центральной базе не старее одного часа от других. А это уже нюанс. Ибо в большинстве видимых мною задач данные выгружались "за день". Т.Е. за вчера. Происходила агрегация данных, их передача, прием и пересчет кубов в центральной базе. А подобная оперативность требует неких механизмов, напрямую зависящих от специфика задачи. И универсального решения тут нет. Кроме прямой и полной репликации. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2019, 07:24 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61, Как это нет. Делаете агрегированную таблицу, заполняете ее данными хотите сразу триггером, хотите по cron'у Берете логическую реплику, и все. Дешево и сердито. Результат у вас данные при стабильном онлайне отличаться будут не более 10с. Плюс фейловер из коробки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2019, 21:38 |
|
Реплицирование агрегированной информации
|
|||
---|---|---|---|
#18+
ilin61Имеется несколько баз, находящихся в разных местах, в которых много данных. Есть идея из каждой базы выгружать маленький агрегированный слепок данных для аналитики и загружать в другую центральную базу для дальнейшего анализа. У кого-то есть опыт решения таких задач? Данные должны быть в центральной базе не старее одного часа от других. В postgresql не нашёл такого механизма (там либо вообще всё либо целая таблица), в MySQL вроде есть materialized view, которую вроде тоже можно реплицировать Э-э-э есть же hadoop для такого. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2019, 05:30 |
|
|
start [/forum/topic.php?fid=32&fpage=4&tid=1539899]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 238ms |
total: | 368ms |
0 / 0 |