如何将数据导入星型数据仓库。

Posted

技术标签:

【中文标题】如何将数据导入星型数据仓库。【英文标题】:How to import data into star schema data warehouse. 【发布时间】:2014-07-04 05:59:44 【问题描述】:

我在网络上到处搜索以了解如何将数据导入星型模式数据仓库。网上很多东西都解释了星型模式和数据仓库的设计,但没有一个解释数据是如何准确地加载到 DW 中的。这是我到目前为止所做的:

我正在尝试为每个球员应用高中篮球统计数据。

我有:

    所有球员姓名、身高、位置和号码的列表 所有高中列表 所有时间表的列表 会议列表 本年度每位球员的统计数据(得分、篮板、抢断、出场次数等)。

我假设统计数据是我的事实表,其余的是我的暗表。

现在是百万美元的问题——世界上如何正确地将数据转换为该格式?

我尝试将它们简单地导入到各自的表中,但不知道它们是如何连接的。

示例:有 800 名玩家和 400 所学校。每所学校都有一个唯一的 id(主键)。我将玩家上传到昏暗的玩家和学校到昏暗的学校。现在如何连接它们?

请帮忙。提前致谢。很抱歉漫无边际:)

【问题讨论】:

如果您将数据放入暗表中,并且我希望每个暗表都有一个主列,那么在您的事实表中,引用那些暗表主键(这是一种外键)。 【参考方案1】:

将数据导入数据库的方法有很多:使用内置加载程序、脚本,或者最常用于 DW 环境的 ETL 工具。

关于您的事实表,我认为统计数据是指标,而不是事务。换句话说,您衡量的是交易,而不是指标本身。

【讨论】:

【参考方案2】:

使用 ETL 工具(E- 从源中提取数据,T- 转换数据或根据需要操作数据,L- 在 DW 中加载数据),您可以安全可靠地加载数据你的 DW。

您可以使用 ETL 工具,例如:SSIS、Talend 等。

【讨论】:

【参考方案3】:

是的,“星”、“昏暗”、“事实”和“数据仓库”是合适的术语,但我更愿意从“实体”和“关系”来处理......

您基本上定义了 5 个“实体”。每个实体(通常)表现为一个数据库表。写CREATE TABLEs。确保每个都包含一个PRIMARY KEY;它将唯一标识表中的每一行。

现在想想关系。想想 1:many,比如 1 所高中有“很多”玩家。想想很多:很多。

对于 1:many,例如,您将高中的 id 作为一列放在 player 表中。

对于很多:很多你需要一个 extra table 。为您可能需要的任何人写CREATE TABLEs

现在,读取数据,并将INSERTs 输入到相应的表中。

之后,您可以考虑使用SELECTs 来提取有趣的数据。同时,决定什么INDEX(es) 会有用。但这是另一个讨论。

当你全部完成后,你会学到很多关于 SQL 的知识,并且可能会意识到有些事情应该以不同的方式完成。所以,准备好重新开始。将其视为一种学习练习。

【讨论】:

【参考方案4】:

您可以为此项目使用 SQL Server 数据工具。 SQL server 数据工具由 SSIS、SSAS 和 s-s-rS 组成。

使用 SSIS 为数据库中的数据创建 ETL 过程。 使用 SSAS 创建维度、事实表和多维数据集(您可以在其中做更多事情)。 使用 s-s-rS 以用户友好的方式呈现数据。

YouTube 上有很多视频。

【讨论】:

以上是关于如何将数据导入星型数据仓库。的主要内容,如果未能解决你的问题,请参考以下文章

如何将excel中的数据导入hive仓库中

如何使用 postgresql 为数据仓库星型模式制作简单的日维度表?

数据仓库星型模式的维度表和事实表中的数据如何?

数据仓库三大数据模式

一招教你数据仓库如何高效批量导入与更新数据

星型设计[关闭]