标签: business-intelligence

从Transactional Flat DB填充事实和维度表的最佳实践

我想在SSIS/SSAS中填充星型模式/多维数据集.

我准备了所有维度表和事实表,主键等.

源是一个'平面'(项目级别)表,我现在的问题是如何将其拆分并从一个表中获取到相应的表中.

我做了一些谷歌搜索,但找不到令人满意的问题解决方案.可以想象这是BI开发中一个相当常见的问题/情况?!

谢谢,亚历克斯

database ssas ssis etl business-intelligence

5
推荐指数
1
解决办法
7656
查看次数

一个或多个事实表?

我正在尝试建立一个数据集市.

我有很多维度和一些措施 - 事实.每项措施都与业务方面的所有维度相关联.有一种标准方法,将有一个包含所有措施的重要事实表.

但我有一个想法:如果每个度量都有单独的事实表,该怎么办?它将如何处理数据库性能,解决方案扩展性等?

编辑:::在非常复杂的企业环境中,基于olap立方体的巨大解决方案.因此,首先需要的是易于扩展和维护,然后是性能

extensibility database-design data-warehouse fact-table business-intelligence

5
推荐指数
1
解决办法
7497
查看次数

动态树关系结构的维度建模

我计划呈现一个数据库,该数据库以 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

5
推荐指数
0
解决办法
239
查看次数

SSRS 日期参数输入在英国和美国日期格式之间切换

我的报告采用两个参数,@FromDate@ToDate

我想简单地获取这些并将它们传递到 SQL 查询中,从而限制这些值之间的结果。在配置这些参数的输入时会出现问题。今天的值按预期和期望显示,en-GBdd/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

5
推荐指数
1
解决办法
2498
查看次数

如何从 InfluxDB 的 HTTP API 获取 CSV 而不是 JSON?

我想在商业智能的背景下使用 influxdb:ETL、连接来自其他数据库的数据、创建实时仪表板。目前,我们正在使用标准 BI 工具,例如 QLIK 或 Microsoft PowerBI。

根据文档,HTTP API应该用于查询(https://docs.influxdata.com/influxdb/v1.2/guides/querying_data/)我的问题是API的输出似乎只是JSON。这意味着每个分析师首先必须弄清楚如何将 JSON 转换为表格格式,然后再加入其他数据等。

是否可以告诉 API 生成类似 csv 的表输出?您是否建议使用哪些工具来制作良好的仪表板?我尝试了 grafana,但在加入其他数据时似乎不够。

csv json business-intelligence influxdb

5
推荐指数
1
解决办法
8967
查看次数

在PowerBI中使用DAX进行左外连接(多对多关系)

我如何在DAX中进行左连接?当我尝试添加关系或使用左外连接DAX函数时,我得到以下错误(见下文).任何想法将不胜感激!

创建关系时出错: 您无法在这两列之间创建关系,因为其中一列必须具有唯一值.

尝试NaturalLeftOuterJoin()时出错 未检测到公共连接列. 连接函数'NATURALLEFTOUTERJOIN'至少需要一个公共连接列.

作为参考,我正在尝试创建损益表的计算行.

例:

  • 收入:100
  • 费用:80
  • 利润:20(收入 - 成本)

我的表格如下:

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 …

sql join business-intelligence dax powerbi

5
推荐指数
1
解决办法
3279
查看次数

SSRS - 仅显示前 N 个类别组,不包括条形图中末尾的重复组

考虑下表

在此处输入图片说明

我需要生成一个类别组 =“国家”的条形图。该图表应仅显示基于国家/地区记录计数的前 3 个组。我已经为类别组应用了一个过滤器,将 Count(Country) 的前 N ​​个条件指定为 3。生成的图表根据计数按预期应用过滤器,但即使存在具有重复值的条,我也只需要显示 3 个条。

下面是我得到的图表。

在此处输入图片说明

预期结果

在此处输入图片说明

现在我知道了,我可以在我的数据集中用排名值创建一个额外的列,然后在该列上应用过滤器以获得预期的结果(我已经尝试过这个,并且它有效)

有没有办法在不改变底层数据集的情况下达到预期的结果?

注意:上面显示的数据集是我的数据集的高度简化版本。实际上,我有一个包含很多列的庞大数据集。相同的数据集已用于各种图表(在不同的列上分组)。

sql-server reporting-services business-intelligence sql-server-2016 ssrs-2016

5
推荐指数
1
解决办法
770
查看次数

如何从SQL SSIS中删除日期时间字符串的日期?

我正在开发一个数据仓库项目,并且想知道如何(最好是在数据流中的派生列组件中)从SQL日期时间记录中删除日期.

一旦我将日期时间转换为一段时间,我将在时间维度表中查找相关时间记录的时间.

有人能给我一个简单的函数来在派生列转换中完成这个吗?

示例:将日期时间(例如"12/02/2008 11:32:21 AM")转换为"11:32:21 AM".

sql t-sql ssis business-intelligence

4
推荐指数
3
解决办法
3万
查看次数

如何基于多个数据集创建BIRT报告

我需要帮助创建BIRT报告; 情况是我有多个查询,但报告所有列应按一列分组(例如)(运算符)类似:

运营商| Expr1 | Expr2 | Expr3 | Expr4 |

op1 | ## | ## | ## | ## |

op2 | ## | ## | ## | ## |

op3 | ## | ## | ## | ## |


我怎么能做到这一点?我试图让运营商独立的数据集,并把它放在第一列,并在所有奎雷斯即添加参数(其中(运营商=?)),从运营商的当前行得到了运营商column..But我可以不将每个数据集中的参数值附加到Operator数据集数据集.这个策略对吗?如果是的话......我怎么能这样做.如果不是,那么正确的策略是什么?百万提前谢谢,

sql birt report reporting-services business-intelligence

4
推荐指数
1
解决办法
3万
查看次数

DAX/PowerPivot查询功能可在一段时间内传播聚合值

我正在尝试计算DAX表达式[对于Excel 2010中的MS PowerPivot],以便在应用的范围内均匀分配值的总和,并在给定的时间跨度/周期内对其进行重新求和.在SQL服务器中交叉应用是微不足道的,尽管每次尝试都会导致相同的错误结果.

我已将MS Project的输出保存为Excel并使用PowerQuery导入/转换,因此开始和结束/结束日期是正确的日期,{X} h和{Y} d是整数,以及日历之间的持续时间它们已经为模型计算/格式化.我还创建了一个日期表,其中包含从第一个日期到最后一个日期的连续日期,以及一个年份表,其中包含我想要汇总的4位数年份的字符串表示.

模型看起来像这样:

PowerPivot模型

我已经在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

4
推荐指数
1
解决办法
2568
查看次数