我想在SSIS/SSAS中填充星型模式/多维数据集.
我准备了所有维度表和事实表,主键等.
源是一个'平面'(项目级别)表,我现在的问题是如何将其拆分并从一个表中获取到相应的表中.
我做了一些谷歌搜索,但找不到令人满意的问题解决方案.可以想象这是BI开发中一个相当常见的问题/情况?!
谢谢,亚历克斯
我正在尝试建立一个数据集市.
我有很多维度和一些措施 - 事实.每项措施都与业务方面的所有维度相关联.有一种标准方法,将有一个包含所有措施的重要事实表.
但我有一个想法:如果每个度量都有单独的事实表,该怎么办?它将如何处理数据库性能,解决方案扩展性等?
编辑:::在非常复杂的企业环境中,基于olap立方体的巨大解决方案.因此,首先需要的是易于扩展和维护,然后是性能
extensibility database-design data-warehouse fact-table business-intelligence
我计划呈现一个数据库,该数据库以 E/R 方式将多个节点的父权关联为 OLAP 多维数据集。我的模型考虑了一个需要动态、可配置的树。
为了最终得到数据库的维度表示,我必须将我的 E/R 数据库转换为星型模式,而表示我的树的自然方法是将其映射到维度层次结构。
当动态树需要可配置时,我的问题就出现了,至于现在,我只能得出结论,每次树更改时,整个维度表都需要根据新的树模式进行非规范化
**FACT_TABLE** **DIM_TABLE**
DIM_TREE METRIC NODE_LEVEL1 NODE_LEVEL2 NODE_LEVEL3
dim_id leaf1_value dim_id1 root_1 intermediate_1 leaf_1
dim_id2 leaf2_value dim_id2 root_1 leaf_2
Run Code Online (Sandbox Code Playgroud)
如果我想改变树状结构(即增加一个层次,改变它的语义……)怎么办?我是否必须再次更改维度模式来定义新的字段和层次结构?
此外,有时我会被要求提供几个逻辑树来映射常见的叶子集。这意味着我要么为新的逻辑聚合创建一个新维度,要么在 DIM_TABLE 中对其进行非规范化。在这两种情况下,我都需要修改架构并打破粒度,因为该值的计数次数与聚合树引用它的次数一样多。我对吗?
维度/OLAP 建模是否适合这些要求?如果是这样,除了为每个聚合树建模数据库模式和更改层次结构/分类法之外,最好的方法是什么?
tree olap dimensional-modeling olap-cube business-intelligence
我的报告采用两个参数,@FromDate和@ToDate。
我想简单地获取这些并将它们传递到 SQL 查询中,从而限制这些值之间的结果。在配置这些参数的输入时会出现问题。今天的值按预期和期望显示,en-GB,dd/MM/yyyy。如果我选择此值,它会在日期显示框中更改为en-US MM/dd/yyyy。
如果它保持en-US格式,这不会是一个需要处理的问题,但开始发生的错误是,当我点击“查看报告”时,格式从参数中的MM/dd/yyyy切换为dd/MM/yyyy每次我重新运行报告时都会发生变化。
我已将报告和字段的语言更改为en-GB,没有任何更改。我还查看了报告.rsd,看看是否有任何方法可以格式化所看到的值,但没有结果。
date reporting-services business-intelligence ssrs-2012 visual-studio-2013
我想在商业智能的背景下使用 influxdb:ETL、连接来自其他数据库的数据、创建实时仪表板。目前,我们正在使用标准 BI 工具,例如 QLIK 或 Microsoft PowerBI。
根据文档,HTTP API应该用于查询(https://docs.influxdata.com/influxdb/v1.2/guides/querying_data/)我的问题是API的输出似乎只是JSON。这意味着每个分析师首先必须弄清楚如何将 JSON 转换为表格格式,然后再加入其他数据等。
是否可以告诉 API 生成类似 csv 的表输出?您是否建议使用哪些工具来制作良好的仪表板?我尝试了 grafana,但在加入其他数据时似乎不够。
我如何在DAX中进行左连接?当我尝试添加关系或使用左外连接DAX函数时,我得到以下错误(见下文).任何想法将不胜感激!
作为参考,我正在尝试创建损益表的计算行.
例:
我的表格如下:
Fact table: ???????????????????????????????????????????? ? YearMonth ? StoreID ? AccountID ? Amount ? ???????????????????????????????????????????? ? 2017-01 ? A ? 1 ? 100 ? ? 2017-01 ? B ? 1 ? 200 ? ? 2017-01 ? A ? 2 ? -50 ? ? 2017-01 ? B ? 2 ? -50 ? ? 2017-02 ? A ? 1 ? 20 ? ? 2017-02 ? B ? 1 ? 150 ? ? 2017-02 …
考虑下表
我需要生成一个类别组 =“国家”的条形图。该图表应仅显示基于国家/地区记录计数的前 3 个组。我已经为类别组应用了一个过滤器,将 Count(Country) 的前 N 个条件指定为 3。生成的图表根据计数按预期应用过滤器,但即使存在具有重复值的条,我也只需要显示 3 个条。
下面是我得到的图表。
预期结果
现在我知道了,我可以在我的数据集中用排名值创建一个额外的列,然后在该列上应用过滤器以获得预期的结果(我已经尝试过这个,并且它有效)
有没有办法在不改变底层数据集的情况下达到预期的结果?
注意:上面显示的数据集是我的数据集的高度简化版本。实际上,我有一个包含很多列的庞大数据集。相同的数据集已用于各种图表(在不同的列上分组)。
sql-server reporting-services business-intelligence sql-server-2016 ssrs-2016
我正在开发一个数据仓库项目,并且想知道如何(最好是在数据流中的派生列组件中)从SQL日期时间记录中删除日期.
一旦我将日期时间转换为一段时间,我将在时间维度表中查找相关时间记录的时间.
有人能给我一个简单的函数来在派生列转换中完成这个吗?
示例:将日期时间(例如"12/02/2008 11:32:21 AM")转换为"11:32:21 AM".
我需要帮助创建BIRT报告; 情况是我有多个查询,但报告所有列应按一列分组(例如)(运算符)类似:
op1 | ## | ## | ## | ## |
op2 | ## | ## | ## | ## |
op3 | ## | ## | ## | ## |
我怎么能做到这一点?我试图让运营商独立的数据集,并把它放在第一列,并在所有奎雷斯即添加参数(其中(运营商=?)),从运营商的当前行得到了运营商column..But我可以不将每个数据集中的参数值附加到Operator数据集数据集.这个策略对吗?如果是的话......我怎么能这样做.如果不是,那么正确的策略是什么?百万提前谢谢,
我正在尝试计算DAX表达式[对于Excel 2010中的MS PowerPivot],以便在应用的范围内均匀分配值的总和,并在给定的时间跨度/周期内对其进行重新求和.在SQL服务器中交叉应用是微不足道的,尽管每次尝试都会导致相同的错误结果.
我已将MS Project的输出保存为Excel并使用PowerQuery导入/转换,因此开始和结束/结束日期是正确的日期,{X} h和{Y} d是整数,以及日历之间的持续时间它们已经为模型计算/格式化.我还创建了一个日期表,其中包含从第一个日期到最后一个日期的连续日期,以及一个年份表,其中包含我想要汇总的4位数年份的字符串表示.
模型看起来像这样:

我已经在ResourceQuery,TaskQuery和AssignmentQuery表上创建了计算列(所有这些都直接来自MS Project输出),以及ServiceAreaQuery(来自TaskQuery的唯一值......基本上是子项目).每个还有一个简单的度量,它是Assigned hours列的总和.
数据本身看起来像您期望的Project 2010文件,并具有{start_date},{finish_date}和小时.任务的日期可以跨越1天到5年......这就是我的问题所在.
如何为长时间运行的任务拆分/分块预先求和的值以匹配我正在寻找的时间间隔?
即使我使用日期表中的年份列,时间智能也没有抓住它并且我已经没有计算CALCULATE(SUM(FILTER(COUNTROWS(DATESBETWEEN)))类型的东西了.
有两个中间步骤,我试图找出无济于事.我认为它们都是通过相同的有效功能来解决,以达到小时的最终目标,服务区域,资源,年份.
透视表显示
为了显示最终目标
您可以在下面的输出中看到该问题.

请注意,当使用分配的小时总数和AssignmentQuery中的资源名称时,我得到正确的总和,但是当使用任何日期值时...我只得到开始日期的小时数(模型中的活动关系).我需要的是这些时间在它们适用的时期内均匀分布(因此,如果在2016年1月1日至1月1日之间有1000小时的话,我希望每年有333小时的时间显示) .
我最初的想法是选择器/过滤器/计算功能需要执行以下操作:
任何想法都非常感谢!我愿意做一些额外的ETL /数据创建作为PowerQuery步骤,但是我真的想为此找出正确的DAX表达式,因此它可以作为项目的时间切片器/过滤器.
提前致谢.
**编辑发布修改后的答案**
[Hours Apportioned Raw] :=
DIVIDE (
CALCULATE (
[Hours],
FILTER (
AssignmentQuery,
AssignmentQuery[Start_Date] <= MAX ( Dates[Date] )
&& AssignmentQuery[Finish_Date] >= MAX ( Dates[Date] )
)
)
, ( COUNTROWS (
DATESBETWEEN (
Dates[Date]
, FIRSTDATE ( AssignmentQuery[Start_Date] )
, …Run Code Online (Sandbox Code Playgroud) excel-formula cross-join business-intelligence powerpivot dax