|
|
|
Репликация/выгрузка данных из нескольких БД по правилу
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожулуйста,как решить данную задачку на Postgres для Linux: Еcть несколько офисов, каждый офис пишет данные в свою отдельную БД1. А есть БД2, каждый офис должен сливать (несколько раз в день) данные из БД1 в БД2 (какие-то таблицы целиком, у других таблиц - некоторые столбцы, правило отбора данных из БД1 для всех офисов одно). Таким образом БД2 содержит объединение отобранных данных БД1 всех офисов. С Postgres работаю недавно. Есть ли готовые средства/утилиты/пакеты или нужно писать нечто своё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2013, 00:23:36 |
|
||
|
Репликация/выгрузка данных из нескольких БД по правилу
|
|||
|---|---|---|---|
|
#18+
Могу ошибиться, но в этой задаче основная проблема не в копировании (pgdump/pgrestore, скорее всего, решат задачу), что можно настроить по крону, а в уникальности и не пересечении ключевого поля. Я сейчас стараюсь везде применять uuid вместо int, что позволяет в будущем делать такие вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 00:28:26 |
|
||
|
Репликация/выгрузка данных из нескольких БД по правилу
|
|||
|---|---|---|---|
|
#18+
Stan_1, с uuid согласен, так и делаю. А вот pg_restore/pg_dump не умеет отдельные столбцы пулять. Напрашивается вариант через расширение postgres_fdw. Пишешь скрипт выгрузки и используешь pgAgent (ставится отдельно). Что думаете про этот вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 12:07:17 |
|
||
|
Репликация/выгрузка данных из нескольких БД по правилу
|
|||
|---|---|---|---|
|
#18+
Что-то у меня по прочитыванию топика вопрос возник. Что, если надо выгружать фильтрованные строки, а не столбцы? Интересно, может ли pg_dump работать с вьюхами, чтобы выгрузить в дамп только определенные строки? С партицированными таблицами, чтобы выгрузить только данные за определенные дни?... тут вроде как да без вопросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 12:44:12 |
|
||
|
Репликация/выгрузка данных из нескольких БД по правилу
|
|||
|---|---|---|---|
|
#18+
Stan_1Могу ошибиться, но в этой задаче основная проблема не в копировании (pgdump/pgrestore, скорее всего, решат задачу), что можно настроить по крону, а в уникальности и не пересечении ключевого поля. Я сейчас стараюсь везде применять uuid вместо int, что позволяет в будущем делать такие вещи. накой вам uuid этот? PK = два поля: id, id филиала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2013, 15:44:40 |
|
||
|
Репликация/выгрузка данных из нескольких БД по правилу
|
|||
|---|---|---|---|
|
#18+
Ivan Durak, можно и два поля PK = два поля: id, id филиала. Но с uuid не нужно помнить какой филиал следующий. А в целом как на ваш взгляд предложенной решение с pgAgent'ом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2013, 19:48:31 |
|
||
|
Репликация/выгрузка данных из нескольких БД по правилу
|
|||
|---|---|---|---|
|
#18+
Ivan DurakStan_1Могу ошибиться, но в этой задаче основная проблема не в копировании (pgdump/pgrestore, скорее всего, решат задачу), что можно настроить по крону, а в уникальности и не пересечении ключевого поля. Я сейчас стараюсь везде применять uuid вместо int, что позволяет в будущем делать такие вещи. накой вам uuid этот? PK = два поля: id, id филиала. Согласен с zyke. Если можно проблему уникальности и дурокаустойчивости перевести на инструментальное средство - всегда стараюсь это делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 08:27:33 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=1998938]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
201ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 519ms |

| 0 / 0 |
