INSERT INTO MySQL 表 SELECT FROM PostgreSQL 表

Posted

技术标签:

【中文标题】INSERT INTO MySQL 表 SELECT FROM PostgreSQL 表【英文标题】:INSERT INTO MySQL table SELECT FROM PostgreSQL table 【发布时间】:2015-09-15 09:45:56 【问题描述】:

我有一个在 PostgreSQL 上运行的 Amazon Redshift 表。该表每天都会更新大量用户数据。

我必须运行一个 CRON 进程来每天从表中导入一些需要的数据到不同的 mysql 数据库中。我在 php 中工作。请帮助我如何以编程方式实现这一目标。

【问题讨论】:

抱歉 mallik SO 不是免费的编码资源您必须开始该过程,然后如果您对有限的代码有特定问题,我们非常愿意提供帮助. 但我们不按照规范工作 【参考方案1】:

您应该使用 UNLOAD 命令从 Redshift 导出到 S3 存储桶,然后将该文件(CSV 是一个不错的选择)加载到 MySQL 中。这一切都可以通过 cron 作业完成。这是迄今为止最快、最安全的方法。

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

附: Redshift 并没有真正“在 PostgresSQL 上运行”。当然,Redshift 是 Postgres 的一个分支,但两者是完全不同的野兽。

【讨论】:

【参考方案2】:

您是否尝试过从 postgress db 获取数据并从中创建一个数组,然后在该数组的帮助下将其插入 mysql。 (我假设你熟悉 postgress 和 mysql 查询的语法)

【讨论】:

是的,我有这个想法,但由于数据非常大(~1,00,000 行 x 10 列),建议存储在临时变量中。 不建议将其存储在变量中,因为这会产生内存限制问题,而是一次从每个表中获取 250 条记录的块并执行 cron,但差异可能更短每分钟,这样postgress db不会有太大变化

以上是关于INSERT INTO MySQL 表 SELECT FROM PostgreSQL 表的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL insert into select 锁表问题

MySQL复制表-INSERT INTO SELECT

MySQL中insert into语句的6种写法

INSERT INTO MySQL 表 SELECT FROM PostgreSQL 表

mySQL::insert into table,来自另一个表的数据?

无法在 php 中使用 MYSQL INSERT INTO