Sobes.tech
Junior — Middle
114

PostgreSQLda ikki ma'lumotlar bazasi o'rtasida ma'lumotlarni qanday o'tkazish mumkin?

Qaerda so'ralgan kompaniyalar
Рольф ТехРольф Тех

AIdan javob

sobes.tech AI

Для передачи данных между двумя базами данных PostgreSQL из Python можно использовать несколько подходов:

  1. Использование библиотеки psycopg2: подключиться к обеим базам, считать данные из первой, затем вставить во вторую.

  2. Использование инструмента dblink или postgres_fdw: если базы доступны из одной, можно настроить внешние соединения и выполнять SQL-запросы напрямую.

  3. Экспорт и импорт через файлы: выгрузить данные из первой базы в CSV, затем загрузить во вторую.

Пример с psycopg2:

import psycopg2

# Подключение к первой базе
conn_src = psycopg2.connect(dbname='db1', user='user', password='pass', host='host1')
cursor_src = conn_src.cursor()

# Подключение ко второй базе
conn_dst = psycopg2.connect(dbname='db2', user='user', password='pass', host='host2')
cursor_dst = conn_dst.cursor()

# Чтение данных из первой базы
cursor_src.execute('SELECT id, name FROM table1')
rows = cursor_src.fetchall()

# Вставка данных во вторую базу
for row in rows:
    cursor_dst.execute('INSERT INTO table2 (id, name) VALUES (%s, %s)', row)

conn_dst.commit()

cursor_src.close()
cursor_dst.close()
conn_src.close()
conn_dst.close()

Такой подход подходит для небольших объемов данных. Для больших объемов лучше использовать специализированные инструменты или потоковую передачу.