Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 插入到星型模式中_Database_Data Warehouse_Star Schema - Fatal编程技术网

Database 插入到星型模式中

Database 插入到星型模式中,database,data-warehouse,star-schema,Database,Data Warehouse,Star Schema,我已经读了很多关于星型模式的书,关于事实/维度表,用于快速报告数据的select语句,但是对于我来说,将数据输入星型模式的问题似乎很遥远。理论上如何将数据输入星型模式数据库?同时维护事实表。是巨型存储过程中的一系列INSERT INTO语句,其中包含20个参数,这是我唯一的选项,以及如何填充事实表。 非常感谢。首先从尺寸开始-一个接一个。使用ECCD提取、清洁、符合、交付方法 确保每个维度都有一个BusinessKey,该BusinessKey唯一地标识维度行所描述的对象,就像个人的电子邮件一样

我已经读了很多关于星型模式的书,关于事实/维度表,用于快速报告数据的select语句,但是对于我来说,将数据输入星型模式的问题似乎很遥远。理论上如何将数据输入星型模式数据库?同时维护事实表。是巨型存储过程中的一系列INSERT INTO语句,其中包含20个参数,这是我唯一的选项,以及如何填充事实表。
非常感谢。

首先从尺寸开始-一个接一个。使用ECCD提取、清洁、符合、交付方法

确保每个维度都有一个BusinessKey,该BusinessKey唯一地标识维度行所描述的对象,就像个人的电子邮件一样

加载尺寸后,准备键查找管道。通常,对于每个维度表,您可以准备一个键查找表BusinessKey,PrimaryKey。有些设计人员选择直接查找维度表,但键查找通常可以轻松地缓存到内存中,从而加快事实加载速度

事实数据也使用ECCD。ECC部分发生在暂存区域,您可以根据自己的喜好为ECC的每个步骤选择帮助表或平面文件

在交付事实表时,将事实行中的每个BusinessKey替换为从键查找表中获得的匹配PrimaryKey。将所有BusinessKey替换为匹配的PrimaryKey后,将该行插入事实表

不要浪费时间,使用ETL工具。你可以免费下载Pentaho Kettle社区版-它拥有实现这一目标所需的一切

通常情况下,您不会将数据插入到星型模式中,这与将数据插入到普通形式中的方式相同,即使用一个存储过程在单个事务中插入/更新所有适当的表。请记住,星型模式通常是一个只读的非规范化数据模型,很少进行事务处理,通常从已经非规范化的平面数据加载,通常每个星型一个平面文件

正如Damir指出的,通常情况下,加载所有维度来处理缓慢变化的etc,然后加载事实,连接到适当的当前维度,以使用业务键查找维度ID