【问题标题】:What is the best way to move data between postgresql and SQL Server databases在 postgresql 和 SQL Server 数据库之间移动数据的最佳方法是什么
【发布时间】:2011-09-09 06:18:33
【问题描述】:

如果我们在 Postgresql 和 SQL Server 上的数据库中具有相同的数据库架构(表、主键、索引和触发器相同),那么将数据从一个数据库移动到另一个数据库的最佳方法是什么?目前我们有一个内部 .NET 程序,它通过两个 ODBC 连接执行以下操作:

  1. 从源数据库表1中读取一行
  2. 构造插入语句
  3. 向目标数据库表 1 写入一行
  4. 如果表中有更多行,则转到 1
  5. 移动到数据库中的下一个表并转到 1

不用说:这是一个非常缓慢的过程,如果有更好/更快的解决方案,我会感兴趣吗?

【问题讨论】:

标签: sql-server database postgresql data-migration


【解决方案1】:

如果是“一次性”迁移,您可以使用 SQL Server 获得的工具在数据库之间移动数据(我现在不在 Windows 机器上,所以不能告诉您它叫什么- 诸如导入/导出工具之类的东西)。

如果是持续同步,您可以查看 MS Sync 框架,它与 SQL Server 和 Postgres 配合得很好。

【讨论】:

  • 您在考虑 SSIS,它也用于可重复的导入和导出。
【解决方案2】:

答案是批量导出和批量加载。您可以通过使用 PostgreSQL https://www.postgresql.org/docs/current/static/sql-copy.html 中的复制命令以 CSV 格式从表中转储数据,然后使用 SQLServer Import CSV file into SQL Server 中的批量插入来加快速度。经验法则是利用流程的并行性。检查您是否可以将 CSV 中的数据并行加载到 SQL Server,如果您有很多表,那么您也可以在单独的表级别上具有并行性。顺便说一句,逐行加载或迁移数据是最慢的方法之一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    相关资源
    最近更新 更多