问题标签 [fact-table]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
olap - 多重事实表-Kylin
我知道 Apache Kylin 每个 OLAP 多维数据集只允许一个事实表。
有没有办法使用 OLAP 分析具有多个事实表的数据库?
或者,我们可以在 Apache Kylin 上的单个作业中同时从多个多维数据集查询吗?
问候阿尼什·迪曼
postgresql - 数据仓库事实表生成
目前,我正在构建基于我的 ODS 表和维度表的事实表。我的 ODS 表
1.dateWiseData
sid_date
总印象数
2.设备(手机,PC等)
sid_date
设备ID
设备名称
总印象数
3.AdvertiserData
sid_date
广告客户 ID
广告客户名称
总印象数
事实表
ID
sid_date
设备ID
广告客户 ID
总印象数
在这里,我们面临将所有三个表数据连接到单个事实表中的问题。在这种情况下,我们在每张桌子上都有三个不同的总印象数。但实际上表我们只是添加了单个总印象数。我们如何计算它然后加入。我们尝试了不同的连接技术人员,但没有找到完美的解决方案。
请帮助我们处理此案
data-warehouse - 如何在数据仓库中按订单将数据存储在具有多个产品的事实表中
我正在尝试为我的一个项目(销售订单)设计数据仓库的维度建模。我对这个概念很陌生。
到目前为止,我可以理解产品、客户和日期可以存储在维度表中,而订单信息将存储在事实表中。
Date_dimension 表结构将是
Product_dimension 表结构将是
order_fact 表结构将是
如果一个订单有 2 个或更多数量的产品,在 order_fact 表中是否会有相同的重复条目order_id, date_dim_id
请帮助解决这个问题。我在这里很困惑。我知道在关系数据库中,order table
每个订单都有一个条目,并且产品和订单之间的关系将保存在以 order_id 和 product_id 作为外键的不同表中。
提前致谢。
data-warehouse - 我是否可以通过不同的源查询拆分事实表?数据仓库最佳实践
我想现在是我关于 stackoverflow 的第一个问题的时候了。直到现在,我总能找到问题的答案,但现在我有一个关于事实表设计的非常具体的问题。现在我有一个事实表,问题是,我是否应该把它分成三个事实表。目前该表如下所示:
我的数据库的数据是通过三个不同的查询从源系统返回的:
- 查询 1 返回具有维度日期、客户和过滤器的数据。这个返回每个客户的总数。
- 查询 2 返回包含日期、客户、过滤器和
d_x
. - 查询 3 返回包含日期、客户、过滤器
d_x
和d_y
.
专长:查询 2 和 3 的聚合彼此不同,也与查询 1 不同。但这很好,源系统就是这样工作的。
因为我不需要所有数据集的所有维度,所以我在维度中创建了虚拟行。因此,对于查询 2,在其中有一个虚拟行d_y
,对于查询 1,在 and 中有一个虚拟d_x
行d_y
。
但是随着查询变慢,我开始阅读有关最佳实践的书籍,以及应该按粒度拆分事实表的红色书籍。也许这个问题没有真正的最佳实践,因为源系统非常奇怪,但在这种情况下,一个选项必须比另一个更好。保留一个事实表或将其拆分为三个事实表。
我希望你能理解这个问题。
database - 数据仓库 - 如何存储 created_time、created_date、complete_time、complete_date
我的任务表有 4 列要存储created_time, created_date, completed_time, completed_date
。
当我将该表转换为 OLAP 时,我想将它们存储在日期时间维度下还是可以将它们保存在事实表中。
有人可以解释一下。谢谢你。
data-warehouse - 事实表设计 - 如何捕获数据开始日期之前的事实
我们有一个事实表,它收集员工选择福利时的详细信息。我们试图解决的问题是如何计算所有员工选择的总福利。
我们确实有一个 BenefitSelectedOnDay 标志,通常我们可以对此进行求和以获得结果,但这仅适用于福利选择,因为我们开始加载数据。
例如:
- 假设客户#1 自 2016 年 10 月以来一直在使用我们的分析工具。我们在平台中有 4 个月的数据。
- 在 10 月份加载数据时,Benefits 源数据将显示:
- 员工#1 于 2016 年 4 月 4 日选择了一项福利。
- 员工#2 于 2016 年 10 月 3 日选择了一项福利
为 Employee#2 设置 BenefitSelectedOnDay 标志非常简单。
问题在于如何处理 Employee#1,因为我们无法在事实表中该客户不存在的那一天设置标志。客户#1 的数据将从 2016 年 10 月 1 日开始。
在某些情况下,计算利益选择是有问题的。如果我们按日期过滤报告并仅查看 2016 年第四季度的福利选择,我们没有问题。但是,如果我们想要总福利选择计数,我们会遇到问题,因为我们没有为 Employee#1 设置标志,因为选择日期早于 Client#1 的数据集范围(目前是 2016 年 10 月 1 日 - 2017 年 1 月 31 日)。
mysql - 定期快照事实表 - 可能缺少一些捕获
我每天在 DimPerson 维度表中跟踪员工变化,并在每个月底填写我的事实表并计算 Hires、Exits 和 Headcount。对于此示例,假设我将在 4 月 30 日月底填充事实表。现在这是我面临的问题:我在 4 月 17 日有一个员工记录,这是一个“雇用”操作,所以当时我的 DimPerson 表如下所示:
现在 2 天后,我看到同一个员工,但有一个动作“经理变更”,所以现在我的 DimPerson 表变成了这样:
因此,在月底,当我选择所有“当前”员工时,我会错过此人的招聘捕获,因为他最近的记录只是经理变更,而实际招聘发生在“当月”。在进行定期快照时,您可能会错过某些更改,这是否正常?在这种情况下,您建议我做什么来捕获 Hire 操作?
data-warehouse - 事实表的首选列数?
我有我的 Fact 表,其中包含 Policy 数据,并且我想将 Policy Products 详细信息添加到仓库中。一项政策获得不同类型的产品,并且价值也是动态的。
例如:Policy01 可能有两个产品 Building & Contents,其中保险金额分别为 1000 和 500。并且 Policy02 仅获得 750 的建筑。
有大约 30 种产品可用,我需要存储每个保单的每种产品的保额、总保费和净保费。因此,如果我将每种产品类型的单独列添加到事实表中,它将添加 120 列(目前有 23 列)。每个政策最多 5 个产品,因此只有 20 列将包含值,其他列保持为空。
事实表可以有 100 多列吗?可以连续保留这么多空值吗?或者有没有其他方法可以解决这个问题?
我是 DWH 的新手,希望有人能告诉我如何将这些添加到我的事实表中。