将大数据迁移到新数据库

异常现象

我想使用我在C#中编写的解决方案将大量数据从SQL Server传输到MongoDB(大约8000万条记录)。我想一次传输20万条记录,但是我的问题是跟踪已传输的内容。通常我会按如下方式进行:

Gather IDs from destination to exclude from source scope
Read from source (Excluding IDs already in destination)
Write to destination
Repeat

问题是我在C#中构建了一个字符串,其中包含目标中存在的所有ID,目的是将这些ID从源选择中排除。

select * from source_table where id not in (<My large list of IDs>)

现在您可以想象,当我已经插入了60万条以上的记录,然后构建具有所有ID的字符串时,会发生什么情况,它变大了,甚至放慢了速度,所以我正在寻找一种方法来遍历20万条一次像光标一样进行记录,但是我从未做过这样的事情,所以我在这里寻求建议。

作为参考,我的阅读如下

    SqlConnection conn = new SqlConnection(myConnStr);
    conn.Open();
    SqlCommand cmd = new SqlCommand("select * from mytable where id not in ("+bigListOfIDs+")", conn);
    SqlDataReader reader = cmd.ExecuteReader();
    if (reader.HasRows)
    {
        while (reader.Read())
        {
            //Populate objects for insertion into MongoDB
        }
    }

因此,基本上,我想知道如何遍历大量数据而无需一次选择所有数据,也不必使用大型字符串过滤数据。任何帮助,将不胜感激。

杰森·凯瑟史密斯

有许多不同的方法可以做到这一点,但我首先建议您不要尝试重新发明轮子,而要研究现有程序。有许多旨在在不同数据库之间导出和导入数据的程序,有些程序非常灵活且昂贵,但是有些程序带有免费选项,大多数DBMS程序都包含一些功能。

选项1:

使用SQL Server Management Studio(SSMS)导出向导。

这使您可以导出到其他来源。如果需要,您甚至可以编写复杂的查询。此处的更多信息:

https://www.mssqltips.com/sqlservertutorial/202/simple-way-to-export-data-from-sql-server/

选项2:

以ID升序导出数据。将最后导出的ID存储在表中。

导出ID> lastExportedID的下一组数据

选项3:

在备份表中创建数据的副本。从该表中导出,并在导出记录时将其删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将WordPress数据库迁移到新服务器时出错

无法将数据库迁移到AWS Elastic Beanstalk

将内置模型迁移到数据库

将数据库从本地Django迁移到heroku

将SQL Server 2008数据库迁移到2016

从关系数据库迁移到大数据

将SQL数据库迁移到Azure时的控制数据库问题

MongoDB将所有现有索引迁移到新数据库

将SQL Server迁移到新的AWS Aurora数据库

将数据从MarkLogic 7上的数据库迁移到MarkLogic 9上的数据库

将数据库日志模式从DELETE迁移到WAL

如何将旧的magento(2.1.5)数据库迁移到新的magento2.3.3

将模型迁移到数据库Prisma时出错

将装置迁移到Django测试数据库

将本地数据库迁移到AWS Aurora

将数据从关系数据库迁移到NoSQL

将MS Word表迁移到数据库

Asp.NET,MVC4。将数据从数据库迁移到新数据库

Postgres:将数据从一个数据库的公共架构迁移到另一数据库的新架构的最佳方法

如何将数据从生产数据库迁移到开发数据库(第4条)?

将数据从非规范化数据库迁移到设计良好的数据库

将生产数据库迁移到与开发数据库相同的结构

将巨大的oracle数据库迁移到cassandra

当Excel中有许多引用时,将数据库迁移到新服务器

将数据库迁移到新服务器时,MySQL 错误字段列表中的未知列 (Windows)

如何将现有的 Dexie 数据库迁移到新的 Dexie 数据库或如何重命名 Dexie 数据库?

使用 Webapp 时将 Azure SQL 数据库流量迁移到较新的网关-->Azure SQL

如何将 Azure MySql 数据库迁移到 Azure MS SQL 数据库

将 MongoDB 数据库从 Raspberry Pi 迁移到 Mac