我面临着需要访问来报告Oracle中的一些数据以及SQL Server 2000数据库中的其他数据的情况。由于各种原因,它们存在于防火墙的不同侧面。现在我们正在寻找从sql server到oracle的导出/导入,我想了解最佳方法的一些建议...该过程需要完全自动化并且每晚运行,因此不包括使用SQL开发人员工具。我也无法在我们(oracle)端的数据库之间建立实时链接,因为防火墙阻碍了。需要在流程中将数据从星型模式转换为准备报告的非规范化表。
我正在考虑的是为SQL Server编写一个怪物查询(我大部分都已经这样做)将使用sqlplus等效的sql server作为计划任务,将SQL Server中的数据反规范并读出到平面文件中,转储到一个熟知的位置,然后在oracle端有一个cron作业,复制文件并使用sql loader加载它并重建索引等。
这都是可行的,但非常手动。是否有一个或组合的FOSS或标准的oracle / SQL Server工具可以为我自动化这个?不可简化的复杂性是一方面的查询和另一方面构建索引,但我希望不必编写CSV转储详细信息或SQL加载程序脚本,只需将此视图转储为CSV一侧,并且其他截断并从CSV插入此表,而不用担心映射列名和所有其他神秘的sqlldr voodoo ......
最佳做法?想法?评论
编辑:我的数据集中有大约50多个不同类型和长度的列,这就是为什么我不想写出如何生成和映射每个列...
答案 0 :(得分:3)
“数据需要在流程中从星型模式转换为非规范化表格,以备报告。”
您真的在寻找ETL工具。如果您没有钱,我建议您查看开源Talend和Pentaho产品。