2010-05-14 101 views
0

小背景:将独立数据导入数据库的最佳方法是什么?

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

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

如何确保我在此数据库的历史版本中具有唯一ID? SQL Server中有没有什么功能可以为我做一些繁重的工作?

感谢您在此上的时间。

回答

1

SQL Server中肯定有一项功能可以帮助您,并且该功能被称为SSIS(SQL Server Integration Services)。对于ETL(提取,转换,加载)来说,SSIS的主要用途之一就是提取来自多个不同来源的数据,将其转换为您需要进入目标数据库的任何内容(例如数据仓库 - 与现有的任何链接数据也会在这里发生),并最终将其加载到目标数据库中。

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

特别是对于我还能做什么你的情况是:

  • 创建一个通用的软件包,可以从源数据库(你每周DB的一个)导入数据,并将其插入到目标数据库 - 这包可以使用父包配置进行参数化。
  • 创建一个主要程序包,它可以遍历某个文件夹中的所有备份,逐个还原它们并为每个还原调用通用导入程序包。每次成功导入后,控制流将删除以前恢复的数据库。

我想我已经给了你足够的材料来调查现在:-)

祝你好运, 华伦天奴。

+0

要添加到Valentino所说的内容,请创建您自己的标识并对表格进行舞台布置,以便您可以在为每条父记录添加新标识后更新所有子表格。 – HLGEM 2010-05-14 18:16:46

相关问题