如何将数据放入事实表中?
Posted
技术标签:
【中文标题】如何将数据放入事实表中?【英文标题】:how to put data in fact table? 【发布时间】:2015-09-13 20:59:15 【问题描述】:我是商业智能的新手 我设计了一个星型模式来实现数据集市,以帮助分析师对学生成绩做出决定 尺寸表: - 包含有关模块信息的模块(模块代码,模块名称) - 包含模型信息的学生(代码、名字、姓氏……) - 学校科目(代码,姓名,教授姓名......) - 学位(代码,libelle) - 专业(代码,libelle) - 时间(年,半年) - 地理(大陆,国家,城市) 事实表: - 结果(分数,模块分数,年份分数) 数据源是excel文件: 在每个文件中,我都有一组表格,每张表格他都会在“Niveau 'X'、Specialite 'Y'、Year and Half-Year 'Z'、Module 'U'、City 'A'... 我的问题是: 我怎么不能把数据从 excel 到我的维度和事实 我想这很容易,但我需要你的提议 其实我不知道
对不起我的英语不好
【问题讨论】:
您已标记 etl。您需要选择一个 etl 工具。这有时取决于您正在构建的数据库是......什么? 感谢您的回复,我使用的 ETL 是 TALEND Open Studio,我使用的数据仓库实现是 ssas microsoft 当我用数据填充我的维度时,我将使用 talend 并给 talend 指令以生成每个维度的自动增量 PK,但我的问题是如何放置数据(score、module_score、 year_score)在事实表中以及如何将此值与维度关联的真正问题(使用 FK-PK 关联) 维度表包含代理键(自动递增的 PK),但它还包含用于匹配回您正在导入的数据的“源键”。因此,您的模块维度实际上将包含模块代码。当您加载事实时,您会查找模块代码并提取代理键并将其写入事实。确保您用于查找的键具有唯一约束 事实表中的尺寸 FK 应手动放置,否则它们会退出自动放置的机制,感谢您的帮助 【参考方案1】:最基本的答案,选择一个 ETL 工具并开始移动数据。 您通常需要:
首先加载维度表。这些表中的 ID 列将链接到事实表。
在您的 ETL 包/例程中填充事实表,
从源/暂存中选择要放置在事实表中的数据。 针对这些数据在每个维度表上进行查找,以获取每个维度值的 ID。 最后做一些重复检测,看看是否有任何行已经在事实表中。 插入数据。无论您使用哪种 ETL 工具,此过程都大体相似。有一些教程介绍了一些细节(使用 google),但基本技术是查找以获取维度键。
【讨论】:
当您严格按照维度建模规则工作时,这是一个非常好的答案。从我的角度来看,我会使用 HKEYs 而不是代理键来并行摄取,因为我正在使用支持将全部插入到许多表中的 Snowflake。这是一件好事还是我应该遵守规则并只使用代理键?以上是关于如何将数据放入事实表中?的主要内容,如果未能解决你的问题,请参考以下文章