- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在从头开始构建一个新的近乎实时(每 10 分钟刷新一次)的医院数据仓库。数据位于 oracle 数据库中,我们计划使用 SSIS 包从 Oracle 中提取数据并加载到 SQL Server 数据库中。我是 DWHousing 的新手,需要有关构建 DWH 的建议。
问题:
2)应该在目标表上创建索引还是在提取数据时创建索引?
我计划通过对记录使用 create_dt_tm 来分批进行初始加载,并在几个月内加载数据。加载所有内容后,我们计划使用 updt_dt_tm 并加载最近 10 分钟内完成的所有更新。
连接到数据库以每 10 分钟获取一次数据是个好主意吗?
图像显示了我计划使用的 DWH ETL SSIS 包(而不是平面文件,我将把它连接到 oracle 数据库)
最佳答案
这是一个非常广泛的问题,您还没有深入了解将源医疗数据映射到业务友好的星型模式。
数据仓库要求和十分钟要求从何而来?业务的更重要驱动因素是什么:只有十分钟的延迟,还是具有一致的正确信息?我想重点是运营(准入等),而不是财务或人力资源?
When extracting the data from Oracle should I import the complete tables or should I get only selected columns which I want? For example : If I have person,address,facility_hist tables should I join them in the extracting package and only get the selected columns? or should I extract all three tables separately in staging area and then combine them and load them in SQL Server.
在“ODS 层”方法中,SQL 数据库中有 Oracle 表的完整副本(通常在不同的 SQL Server 架构中。注意 Oracle 和 SQL Server 中的“架构”含义略有不同)
ODS 基本上是源系统的副本。如果您想要 10 分钟的刷新,那么您需要将增量(仅更改)加载到您的 ODS 中。为此,您需要知道自上次加载 ODS 以来源代码发生了什么变化。如果源中有“最后更改”字段,这很容易。否则会变得非常困难。
当数据按层批处理时,ODS 方法符合“批量加载”模式。 ODS 允许您在不同层进行测试和故障排除。
ODS 方法不同于“流”方法,后者支持实时报告,但在整个流中都包含孤立的转换规则。
Indexes should be created on the target tables or while extracting the data?
通常应该在数据加载之前在表上禁用/删除索引,然后再重建
I am planning to do the initial load in batches by using the create_dt_tm for the records and load the data in months. Once everything is loaded, we are planning to use the updt_dt_tm and load any updates done in last 10 minutes.
我不知道 updt_dt_tm
是什么,但这听起来是个好主意
Is connecting to the database a good idea to get the data every 10 minutes?
是的。否则您将如何获取数据?
总而言之,专注于让一个十分钟的 ODS 副本工作,基于增量负载。然后下一步是将数据从 ODS 转换为星型模式。
how we can extract the data from Oracle and load them in SQL Server DWH using SSIS Packages.
同样,这是一个非常宽泛的问题,我可以在这里为您提供完整的方法,但我认为我的付费客户不会喜欢它
有许多设计模式。我更喜欢 ELT(Extract Load Transform)ODS 方法,它很重 T-SQL,但根据我的经验,这是最好的方法。在这种方法中,您加载和暂存最近几天更新的记录,然后使用 SQL 将它们合并到 ODS 表中
只有一件事情:我在你的历史问题中看到你问的是条件拆分。我只需要警告你,如果你开始在 SSIS 中使用条件拆分和查找来加载你的数据,你的包可能不会执行得很好,你最终会得到一些非常复杂的东西,它会用完你的十分钟。
这实际上归结为 ETL 与 ETL 方法。如果您对 SQL 不熟悉,那么您可能不得不使用 ELT(SSIS 包中的所有登录)方法。但根据我的经验,它变得缓慢且难以维护
关于sql-server - 在数据仓库中加载数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51549093/
我一直在阅读有关汇编函数的内容,但对于是使用进入和退出还是仅使用调用/返回指令来快速执行,我感到很困惑。一种方式快而另一种方式更小吗?例如,在不内联函数的情况下,在汇编中执行此操作的最快(stdcal
我正在处理一个元组列表,如下所示: res = [('stori', 'JJ'), ('man', 'NN'), ('unnatur', 'JJ'), ('feel', 'NN'), ('pig',
最近我一直在做很多网络或 IO 绑定(bind)操作,使用线程有助于加快代码速度。我注意到我一直在一遍又一遍地编写这样的代码: threads = [] for machine, user, data
假设我有一个名为 user_stats 的资源,其中包含用户拥有的帖子、评论、喜欢和关注者的数量。是否有一种 RESTful 方式只询问该统计数据的一部分(即,对于 user_stats/3,请告诉我
我有一个简单的 api,它的工作原理是这样的: 用户创建一个请求 ( POST /requests ) 另一个用户检索所有请求 ( GET /requests ) 然后向请求添加报价 ( POST /
考虑以下 CDK Python 中的示例(对于这个问题,不需要 AWS 知识,这应该对基本上任何构建器模式都有效,我只是在这个示例中使用 CDK,因为我使用这个库遇到了这个问题。): from aws
Scala 中管理对象池的首选方法是什么? 我需要单线程创建和删除大规模对象(不需要同步)。在 C++ 中,我使用了静态对象数组。 在 Scala 中处理它的惯用和有效方法是什么? 最佳答案 我会把它
我有一个带有一些内置方法的类。这是该类的抽象示例: class Foo: def __init__(self): self.a = 0 self.b = 0
返回和检查方法执行的 Pythonic 方式 我目前在 python 代码中使用 golang 编码风格,决定移动 pythonic 方式 例子: import sys from typing imp
我正在开发一个 RESTful API。其中一个 URL 允许调用者通过 id 请求特定人员的记录。 返回该 id 不存在的记录的常规值是什么?服务器是否应该发回一个空对象或者一个 404,或者其他什
我正在使用 pathlib.Path() 检查文件是否存在,并使用 rasterio 将其作为图像打开. filename = pathlib.Path("./my_file-name.tif") 但
我正在寻找一种 Pythonic 方式来从列表和字典创建嵌套字典。以下两个语句产生相同的结果: a = [3, 4] b = {'a': 1, 'b': 2} c = dict(zip(b, a))
我有一个正在操裁剪理设备的脚本。设备有时会发生物理故障,当它发生时,我想重置设备并继续执行脚本。我有这个: while True: do_device_control() device
做组合别名的最pythonic和正确的方法是什么? 这是一个假设的场景: class House: def cleanup(self, arg1, arg2, kwarg1=False):
我正在开发一个小型客户端服务器程序来收集订单。我想以“REST(ful)方式”来做到这一点。 我想做的是: 收集所有订单行(产品和数量)并将完整订单发送到服务器 目前我看到有两种选择: 将每个订单行发
我知道在 Groovy 中您可以使用字符串调用类/对象上的方法。例如: Foo."get"(1) /* or */ String meth = "get" Foo."$meth"(1) 有没有办法
在 ECMAScript6 中,您可以使用扩展运算符来解构这样的对象 const {a, ...rest} = obj; 它将 obj 浅拷贝到 rest,不带属性 a。 有没有一种干净的方法可以在
我有几个函数返回数字或None。我希望我的包装函数返回第一个不是 None 的结果。除了下面的方法之外,还有其他方法吗? def func1(): return None def func2(
假设我想设计一个 REST api 来讨论歌曲、专辑和艺术家(实际上我就是这样做的,就像我之前的 1312414 个人一样)。 歌曲资源始终与其所属专辑相关联。相反,专辑资源与其包含的所有歌曲相关联。
这是我认为必须经常出现的问题,但我一直无法找到一个好的解决方案。假设我有一个函数,它可以作为参数传递一个开放资源(如文件或数据库连接对象),或者需要自己创建一个。如果函数需要自己打开文件,最佳实践通常
我是一名优秀的程序员,十分优秀!