问题标签 [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.

0 投票
1 回答
50 浏览

data-modeling - 不同维度类型的相同事实

我在一家制造公司工作,并且正在处理既可以是零件(制造产品的输入)也可以是制造产品(公司随后出售的最终输出)的事实数据。我有零件和产品的单独尺寸表,因为属性不同,它们实际上是两种不同的东西。

对于事实数据,所有属性都是相同的,只是一条记录指向一个零件,另一条记录指向一个产品。一条记录不能同时指向两者。

有 2 个单独的事实表,或者有 1 个带有 PartKey 和 ProductKey 的事实表,其中一个总是指向不适用维度表中的 -1 或未知记录是否有意义?

在此先感谢您的帮助。

0 投票
0 回答
132 浏览

report - Power BI - 数据建模

我最近遇到了星型模式及其优势。我是 Power BI 和数据库建模的新手。

我正在制作 Power BI 报告。

我为每个项目的团队中的所有成员计划了时间,从而计算了他们的小时费率所花费的时间,并获得了该年度每个项目的预算。这是我的第一张桌子。我有 EmployeeName、Hours、Date、ProjectName、TotalCost

在他们包括他们的工作时间后,我从 SAP 获得了每月时间表。字段是一样的。员工姓名、发布日期、小时数、成本、项目名称。

现在,我需要制作一份报告,在其中看到计划的内容与我从时间表中得到的内容之间的差异。以及接下来两个月还剩多少预算。

我应该能够为每个员工、每个项目以及任何月份之间过滤这个。

我不知道我要制作什么事实表以及我​​的维度表是什么。

我如何在其中使用 StarSchema?

0 投票
1 回答
822 浏览

data-warehouse - 事实表和维度表

我在网上学习什么是事实表和维度表,因此建议使用真实数据集进行练习。作为示例,我下载了这个 excel 文件。在此处输入图像描述

我想尝试星型模式,据我了解可以分为多个事实表,但是所有表都不一样,是否意味着它已经是事实表并且不能分为维度?对于学分,我从这里获得数据集https://www.kaggle.com/zynicide/wine-reviews

0 投票
1 回答
33 浏览

data-warehouse - 事实表中的列问题

我正在构建一个 DW,就像 AdventureWorks 中的一样。我有一个名为 FactSales 的事实表,数据库中有一个名为 SalesReason 的表,它告诉我们某个客户购买我们产品的原因。问题是有两种类型的客户 - 经销商和在线客户 - 只有在线客户才有与他们相关的销售原因。

首先,我可以在事实中指向指向同一个 FK 的维度表吗?就像我的情况一样 - Sk_OnlineCustomer 和 SK_Resseler 都指向 FK_Customer。他们的身份证号码不重叠——

其次,我是否应该建立一个原因维度,将其与事实联系起来并拥有一个大多数时候为空或具有“虚拟原因”的 FK?

我是否应该将原因放在事实销售中而不是关键,就像可以为空的技术描述一样?

我是否应该将事实分为两个事实表,一个用于经销商,一个用于在线客户?但即使在这种情况下,我也会有一些客户不回答原因,因此 fk_reason 在新的 fact_Online_Customer 中的某些外观中将为空。

在我从冒险作品教程中看到的一个解决方案中,它创建了一个名为 fact_reason 的新事实表。它将事实销售与 DimReason 联系起来。这看起来是一个很好的解决方案,但我不知道它是如何工作的,因为我从未在课堂上学习过我可以将事实与事实联系起来,因此我无法向老师证明我的选择是合理的。

如果你能解释一下,我将不胜感激。

谢谢!

0 投票
0 回答
32 浏览

mysql - Tableau中事实表的测量值错误

我创建了一个事实表,当我部署多维数据集并在 Tableau 中可视化数据时,聚合值正在被填充。下面是我的事实表(其中 id1=1),标题为可读目的而更改。如果我根据 id2(年份维度)在 tableau 中删除收入 2 度量,则列收入 2(49,08,238)的总和将变得可视化,而不是 701177

如果我的加入错误或者我需要更改画面中的任何属性,建议我在哪里。

0 投票
2 回答
75 浏览

database - BI - 具有不相容颗粒的事实表设计

我对 BI 设计数据库很陌生,这里有些地方我不太理解。我正在尝试导入法国人口普查数据,在那里我得到了每个城市的人口。对于每个城市,我都有不同年龄分类的人口,它们之间并没有真正的联系。

例如,假设一个分类是 00 到 20 岁、21 到 59 和 60+,而另一个更精确:00 到 02、03 到 05 等,但界限永远不会与第一个相同一种分类:例如,我没有 15 到 20,而是 18 到 22。

所以这两个分类是不兼容的。如何在我的事实表中使用它们?我应该使用 2 个事实表和 2 个立方体吗?我应该为 1 个立方体使用一个事实表和 2 个维度吗?但是在这种情况下,当我总结一个城市的总人口时,我会重复计算事实,不是吗?

这是国家人口普查数据和国家分类,因此更改或估计人口以混合这些分类不是一种选择。需要明确的是,一排与一个人无关,而是与一个城市有关。我的事实不是个人,而是城市人口。所以这个表就像: 第 1 行:一个城市 - 一个人口数量 - 这个人口的模糊年龄(例如 00 到 19 岁)的一个代码 - 该人口的模糊性别的代码(m / f) - 日期人口普查第 2 行:同一个城市 - 一定数量的人口 - 该人口的模糊年龄(例如 20 到 34 岁)的一个代码 - 模糊性别的代码 (m/f) - 人口普查的日期 所以它适用于很多城市,无论是性别,还是多年。相同的

我希望这个问题足够清楚,因为英语不是我的母语,而且我在 DB 和 BI 中还很陌生!

谢谢你帮助我。

0 投票
1 回答
227 浏览

sql-server - 如何将来自两个不同数据库的事实合并到 Datawarehouse 中的事实表中?

我有两个不同的数据库 A 和 B。我想在我的 Datawarehouse 中创建 Fact 表,其中包含来自两个数据库的事实。即我想从两个数据库创建单个事实。我想在我的事实表中创建“收入”列,该列将包含来自 DB-A 的收入,即 Quantity*Product_retailprice,对于 DB-B,它将是计费金额。

我是 Datawarehouse 的新手,如果可以实现这样的事情,请提供建议/解释。

我在数据库中的属性如下所示:

0 投票
1 回答
980 浏览

data-warehouse - 时间跨度累积事实表设计

我需要设计一个星型模式来处理订单。订单进度如下所示:

  • 客户 C 订购数量为 100 的商品 I
  • F1工厂接受部分订单,数量30
  • F2工厂部分接单,数量20
  • 从市场购买 50 件商品
  • F1发货20件
  • F1发货7件
  • F1 取消合同(我们需要从市场上再购买 3 件商品)
  • F2发货20件
  • 从市场购买 3 件商品
  • 完成订单

在这种情况下如何设计事实表,由于步数不固定,事件的数据类型也不相同。

我很抱歉我的英语不好。

0 投票
1 回答
275 浏览

ssas - 来自维度表的事实表,具有 1 对 1 的关系

我有几个表格,它们是维度和事实。例如,我有 Applications 表(每天 2000 万行和 + 100 thounds),我有 Contracts 表(每天 500 万行和 + 10-20 thounds),两者都有共同的字典(客户、银行、RiskResult , etc) 一个合约可以有多个应用,所以合约应用是 Dimension,我需要分析使用应用属性,但我也需要分析应用,例如,今天创建了多少应用,有多少是删除,应用程序中的愿望和实际金额之间的差异等。有表事务,其中一个合约有很多行,所以对于事务合约是维度。我所做的,在 SSAS Tabular 的视图中,我从一个表中创建了两个表,对于应用程序表,我在所有 SK 所有维度和所有总和的地方创建了 FactApplication,然后我在放置所有属性的地方创建了 DimApplicatiom,然后链接它们,但是它们具有 1 对 1 的关系,我不知道它有多正确?对于cantracts我也做了同样的事情。

0 投票
1 回答
142 浏览

firebase - Firebase:在 NoSQL 中使用维度/事实表设计是个好主意吗

所以我想知道,我对 NoSQL 的一个缺点是:如果我的前端应用程序发生了巨大变化,那么我将有一个可怕的时间来改造我的数据库。这是因为 NoSQL 在设计时首先考虑到了前端。所以如果前端改变,后端改变(至少这是一般的想法)

所以我的想法是,将我所有的原始/纯文档副本存储在多个根集合中是否明智。然后创建“视图”集合,这些集合是我的应用程序将调用的集合。我喜欢的是,如果我需要更改前端,我的数据始终是根目录下的“SQL”。但我的“视图”实际上是我的应用程序将使用的。

这很像人们使用的维度/参考表和事实表设计。

这个想法的重要原因是:如果我的前端发生了巨大变化,那么我需要认真地将这些“视图”转换为其他“视图”。根据我的想法,您只需删除旧的“视图”并使用“sql”/“root”引用表创建新的“视图”。

我说得有道理吗?:) 我没有使用过 NoSQL(但我现在正在用它构建一些东西,所以我的大脑仍在与 SQL 到 NoSQL 作斗争哈哈)。所以如果这是一个“老兄不要担心的情​​况”,那么你也可以给出这个答案,哈哈