2015-09-15 6 views
-1

У меня есть таблица Redshift Amazon, которая работает на PostgreSQL. Эта таблица ежедневно обновляется с пользовательскими данными в больших количествах.INSERT INTO Таблица MySQL SELECT FROM PostgreSQL таблица

Мне нужно запустить процесс CRON, чтобы каждый день импортировать некоторые данные из таблицы в другую базу данных MySQL. Я работаю в PHP. Пожалуйста, помогите мне, как я мог бы достичь этого программно.

+1

Извините, что mallik SO ** не является бесплатным ресурсом кодирования ** Вам необходимо запустить этот процесс, а затем, если у вас есть конкретные проблемы с конечной частью кода, мы более чем готовы помочь. ** Но мы не работаем со спецификацией ** – RiggsFolly

ответ

3

Вы должны экспортировать из Redshift в ведро S3 с помощью команды UNLOAD, а затем загрузить этот файл (CSV - хороший выбор) в MySQL. Все это можно сделать из задания cron. Это, безусловно, самый быстрый и безопасный способ сделать это.

http://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html

P.S. Redshift на самом деле не работает на PostgresSQL. Конечно, Redshift был вилкой Postgres, но они совершенно разные звери.

1

Пробовал ли вы получать данные из post-db и создавать массив из этого и после этого с помощью этого массива вставлять в mysql. (Я предполагаю, что вы знакомы с синтаксисом запросов postgress и mysql)

+0

Да, у меня была эта идея, но поскольку данные довольно большие (~ 1,00,000 строк x 10 колод), рекомендуется хранить их во временных переменных. – mallik1055

+1

Нет, это не рекомендуется хранить в переменной, так как это может иметь проблемы с ограничением памяти, вместо этого извлекайте это в кусках по 250 записей за раз из каждой таблицы и выполните cron с меньшей разницей в минуту, чтобы не было быть много изменений в postgress db – Arpita

Смежные вопросы