【问题标题】:What is the best way to import standalone data into a database?将独立数据导入数据库的最佳方法是什么?
【发布时间】:2011-02-19 13:20:43
【问题描述】:

一点背景:

我有一个远程、独立的 SQL Server 数据库,它在每个周末结束时被截断。这些数据几乎没有关系,根本没有标准化,而且处理起来很烦人。最重要的是,这个数据库的模式根本无法修改,因为它是由第三方应用程序重新创建的。在每周销毁数据库之前,会为该周的数据创建备份。每个数据库平均有 500,000 到 2,000,000 条记录。

我的任务是创建这个数据库的历史版本,它是所有这些数据库备份的超集。它应该与我们包含相关信息集的其他数据库相关联。我已经开始使用一个应用程序来执行此任务,并且我已经能够将数据与我们的其他数据库进行匹配,但我想知道是否有任何最佳实践来处理这种导入。

如何确保我在这个数据库的历史版本中有唯一的 ID? SQL Server 中是否有任何功能可以为我完成一些繁重的工作?

感谢您抽出宝贵时间。

【问题讨论】:

    标签: sql-server database import


    【解决方案1】:

    SQL Server 中肯定有一项功能可以帮助您,该功能称为 SSIS(SQL Server 集成服务)。 SSIS 的主要用途之一是用于 ETL(提取、转换、加载),这意味着从多个不同的源中提取数据,将其转换为您需要进入目标数据库的任何内容(例如数据仓库 - 与现有的任何链接)数据也将在此处发生),最后将其加载到您的目标数据库中。

    我认为最好的入门方式当然是拿起一本关于 SSIS 的好书并通读一遍。阅读时,不要忘记使用 BIDS(商业智能开发工作室 - SQL Server 工具之一)来创建一些测试包。 此外,在互联网上,您会发现大量“入门”文章。

    对于你的情况,我会做的是:

    • 创建一个通用包,该包可以从源数据库(您的每周数据库之一)导入数据并将其插入目标数据库 - 可以使用父包配置对该包进行参数化。
    • 创建一个主包,循环遍历特定文件夹中的所有备份,逐个还原它们,并为每次还原调用通用导入包。每次成功导入后,控制流都会删除之前恢复的数据库。

    我想我已经为你提供了足够的材料来进行调查:-)

    祝你好运, 华伦天奴。

    【讨论】:

    • 补充一下 Valentino 所说的,是的,创建您自己的 id 并暂存表,这样您就可以在为每个父记录获得新 id 后更新所有子表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2018-11-01
    • 2013-04-05
    相关资源
    最近更新 更多