172 похожих чатов

Друзья, как лучше в postgresql скопировать данные из одной db.table

в другую db.table, с учетом того, что эти бд находятся в одном кластере?

15 ответов

12 просмотров

pg_dump, fdw, dblink. Сильно других опцый нет.

whois- Автор вопроса
Ilya Anfimov
pg_dump, fdw, dblink. Сильно других опцый нет.

Вопрос. А нельзя ли это сделать запросами? Типо INSERT INTO db2.table2 ( SELECT FROM db1.table1) CONCURENTLY?

whois- Автор вопроса
Дмитрий Лукьянов
Через copy ещё

Есть проблема с COPY. Если делать COPY, то команда будет падать, когда столкнется с похожими id-шниками. Т.е. во второй таблице есть часть данных(свеженькие), которые присутствуют в обеих таблицах.

whois
Есть проблема с COPY. Если делать COPY, то команда...

Как я люблю, когда ТЗ обретает новые подробности в процессе решения задачи. Какие ещё неозвученные нюансы существуют? 🤷‍♂️🤦‍♂️

whois- Автор вопроса
Дмитрий Лукьянов
Как я люблю, когда ТЗ обретает новые подробности в...

Сорян, про это забыл сказать. Что во второую таблицу переодически добавляются новые данные, которые также добавляются в первую. Т.е. по идее, в первой таблице есть несколько миллионов строк, которые отсутствуют во второй. Т.к. добавлены раньше. И, получается, что надо как-то между базами данных выделить эти несколько миллионов запписей. SELECT * FROM t1 JOIN t2 ON t1.id != t2.id; И это дело скопировать с помощью COPY в файл, например. Затем закинуть во вторую таблицу с помощью COPY. Но есть одно НО! Данных дофига. И, если сделать COPY, я боюсь это заблокирует таблицу t1 и положит все. Т.е. хотелось бы это сделать конкурентно.

whois
Сорян, про это забыл сказать. Что во второую табли...

Ну, можно сперва через copy скопировать одну таблицу в другую БД целиком, положить рядом со второй под другим именем. А затем обычными запросами делать с данными все, что надо. Тут же перенос данных и их обработка - это независимые этапы. Декомпозируйте.

whois- Автор вопроса
Дмитрий Лукьянов
Ну, можно сперва через copy скопировать одну табли...

Скажите плз, а COPY блокирует таблицу? Или берет самую не приоритетную блокировку?

whois
Скажите плз, а COPY блокирует таблицу? Или берет с...

А в чем проблема блокировок? У вас переносимая таблица ещё и обновляться продолжает? А что вы будете делать с дельтой по данным, накопленным с момента выгрузки? Вы уже ответили на этот вопрос? Это ещё один нюанс?

whois- Автор вопроса
Дмитрий Лукьянов
А в чем проблема блокировок? У вас переносимая таб...

Возможно я плохо объяснил. Смотри есть 2 таблицы в разных бд. В обще таблицы сыпятся одни и те же данные, но первая таблица появилась раньше и у нее в начале есть несколько лямов записей, которые отсутствуют во второй таблице, соответстввенно. Ведь вторая появилась позже и в нее данные стали добавляться позже. Т.е. допустим с записи id=99000000 обе таблицы идентичны и дельты не может быть, т.к. даныне в обе добавляются одни и те же. Но первые 99000000 записей присутствуют в таблице t1, но отсутствуют в таблице t2/

whois
Возможно я плохо объяснил. Смотри есть 2 таблицы в...

Тогда в той бд, где записи есть, создайте через create table as select таблицу с выгрузкой нужных записей, и перенесите ее в целевую бд.

whois
Вопрос. А нельзя ли это сделать запросами? Типо IN...

Через fdw -- можно. Да и через dblink в общем тожэ. Вы, кстати, точно базы и схемы не путаете? А то db2.table2 -- это синтаксис для обращения к таблицэ table2 в схеме db2, совсем другое дело.

whois
Сорян, про это забыл сказать. Что во второую табли...

Вообще, COPY блокирует только DDL (изменение схемы таблицы) и вымарывание старых туплов вакуумом (зато вот это -- во всей базе).

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Привет всем. Не знаю, удачный ли чатик я выбрал для вопроса, но он как будто в целом про концепцию фп и конкретно про Haskell. Прочитал, что в целом в мире фп нет идеи мутабел...
Gellert Cringewald
15
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Как добавить ссылку в Быстрый доступ в Проводнике windows 10? Нашёл, как на power shell сделать, но может есть способ через Дельфи?
А
31
@helgispbru @Dreamer_0x01 @Pathologic93 @webber_12 Не уверен, что вам всем это жутко интересно, но в продолжение недавнего диалога отправлю свои наброски. Хочу понять, правил...
Андрей [aharito] Харитонов
13
Всем, привет! Подскажите, пожалуйста, самую лёгкую, быструю, лаконичную и адаптивную тему для WP? Бесплатно или чтобы можно было в РФ оплатить доступ к теме. Раньше брал на...
Евгений Грак
14
Подскажите, пожалуйста, как с массивами данных в 1.4 работать? Есть сниппет, который возвращает массив объектов. В 3 все понятно на блейде, а здесь ..
Никита Ковалёв
12
Карта сайта