【问题标题】:How to insert a tables 600mln rows into another table如何将6亿行的表插入另一个表
【发布时间】:2015-05-14 15:38:01
【问题描述】:

设置: 主服务器,收集点 4个二级服务器,数据导入

导入服务器有更多的表。每个数据库大约 500GB 大,总共有超过 150 亿条记录

我们在尝试将表从导入的数据库导入到主服务器时遇到了问题。

我该怎么办?

【问题讨论】:

  • 你可以复制需要的表。
  • 表格的构建方式相同。但是我们想将它们结合在一起。
  • 不明白。您可以结合复制。还是双方数据不同?
  • @sidux 两边数据不同

标签: sql-server sql-server-2012


【解决方案1】:

你可以使用SSIS

使用 2 个组件创建常规数据流 - OLE DB 源和 OLE DB 目标(我假设您使用的是 MS SQL Server,一般来说,使用您公司用来连接数据库的任何组件)。

如果有 2 个 DB,则创建 2 个连接管理器,每个都指向其 DB。将 OLE DB Source 指向配置为指向数据源的第一个连接管理器,将 OLE DB Destination 指向配置为指向目标 DB 的第二个连接管理器。

现在将 OLE DB Source 指向源 DB 中的源表,保持所有字段不变。连接源组件和目标组件,绿色箭头最初离开源组件。现在将 OLE DB Destination 指向目标 DB 中的目标表。双击目标,转到映射并确保它们正确(SSIS 尝试使用严格名称匹配自动映射),否则(如果名称不同)手动连接源和目标字段。就是这样,您只是不为目标表无法容纳的字段提供映射。

或者,您可以在源组件中省略不需要的列 - 双击它,转到 Columns 并取消选中您不需要的列。

问这个问题的更好的地方是:https://dba.stackexchange.com/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 2021-11-17
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多