将数据从未知结构的数据库传输到已知结构的数据库

时间:2010-12-01 23:29:10

标签: sql database data-structures database-connection data-transfer

我有一些需要帮助的挑战。我需要从任意来源将数据提取到我的SQL数据库。 细节是:我知道我的数据库的确切结构,结构不会改变。当我接收新数据时,在我设置数据库实例时,它只会发生一次。我将创建我的数据库的许多实例,每次它必须从不同的源提取数据,并且这些源将以不同的方式构建。 数据很可能包含数千行记录。数据源很可能会保存在Excel,Access,更罕见的Word中,甚至更罕见,它将保存在SQL数据库中。 我可以假设大多数核心数据都是相同的,只是放在不同的位置。尽管如此,他们仍会遵循一般的分组。 本质上,我将数据从遗留系统传输到SQL系统,这必须为许多组完成,并且他们需要自己的数据库私有实例。 有关如何做到这一点的任何想法?编写一个能为我完成大部分工作的程序有多难?

4 个答案:

答案 0 :(得分:2)

这绝对是一个现实世界的问题。是否有可能编写一个可以完成大部分工作的程序?我想,这不是大部分,但也许是其中的一部分。

对于目标系统中的每个表,创建一个显示您希望能够插入的源数据的视图。选择列名称可以轻松判断要执行的操作;您很可能会选择与INSERT语句中的目标列匹配的列名。将INSERT语句保存为存储过程。

现在,当您以新格式获得新的数据源时,仍然需要重新创建视图,但是一旦视图在您选择的列名下显示正确的数据,您就可以运行存储过程而不用变化

答案 1 :(得分:2)

我有一个类似的项目类型,从Access,.ini文件,文件修改日期和MySql中检索数据。我每天早上都会抓取这些数据,并基本上附加到一个SqlServer架构集。

我创建了一个DataTable,当我迭代一组目录时,将数据插入到每个新行中。完成DataTable后,我执行批量复制以附加到数据库。

我希望能帮到你一点点。我知道我的项目并不涵盖你问题的所有方面;但也没有DBA提供视图,存储过程等。我也没有额外的时间来投入这些事情。不是最有利的条件,但就是这样。

... HTH

答案 2 :(得分:0)

解决此问题的最佳方法是使用和ETL(Extract-Transform-Load)解决方案。 SSIS是一个很好的选择,它通过微软的BI套件实现。

答案 3 :(得分:0)

这是意识或基地的基石......

1一个数据库,用于组织数千个类似于dna的文件,

2个用户界面

隐藏了3个部分,防止系统崩溃/崩溃