【发布时间】:2018-07-27 00:13:20
【问题描述】:
我们正在从头开始构建一个新的近实时(每 10 分钟刷新一次)医院数据仓库。数据位于 Oracle 数据库中,我们计划使用 SSIS 包从 Oracle 中提取数据并加载到 SQL Server 数据库中。我是 DWHousing 的新手,需要有关构建 DWH 的建议。
问题:
- 从 Oracle 提取数据时,我应该导入完整的表还是应该只获取我想要的选定列? 例如:如果我有 person、address、facility_hist 表,我应该将它们加入提取包中并且只获取选定的列吗?或者我应该在暂存区分别提取所有三个表,然后将它们组合并加载到 SQL Server 中。
2)应该在目标表上或在提取数据时创建索引?
-
我计划通过使用 create_dt_tm 来分批进行初始加载,并在几个月内加载数据。加载完所有内容后,我们计划使用 updt_dt_tm 并加载过去 10 分钟内完成的所有更新。
-
连接到数据库每 10 分钟获取一次数据是个好主意吗?
图片显示了我计划使用的 DWH ETL SSIS 包(而不是平面文件,我将把它连接到 oracle DB)
【问题讨论】:
-
对于十分钟的刷新周期,您肯定会想出一种增量数据加载方法。最简单的方法是识别源中的现有字段,该字段在记录更改时进行记录。如果你有这个,那么你的增量负载将更快,更有可能适应十分钟的窗口。你设计过数据仓库模型吗?医疗数据仓库很棘手,因为数据源非常“键/值”,这不是最容易建模的东西。
-
感谢您的回复尼克。我们处于非常初始的阶段,但我已经设计了数据模型。我还确定了一个日期字段,每次向表中添加新行或更新任何旧行时都会更新该字段。(我是 DWH 的新手,但我曾在同一个健康数据库上工作过,我们需要为其设计 DWH ) 我现在只需要计划流程并尝试创建一个可能包含 2-3 个表的临时 DWH,以测试我们如何从 Oracle 中提取数据并使用 SSIS 包将它们加载到 SQL Server DWH 中。您对我的问题有什么建议吗?
-
我已经添加了一些细节,但这个问题真的太宽泛了
标签: sql-server ssis etl data-warehouse