我正在使用RDBMS构建一个穷人的数据仓库.我已经确定了要记录的关键"属性":
我的要求是能够运行'OLAP'查询,允许我:
在阅读了这个主题领域之后,普遍的共识似乎是最好使用维度表而不是规范化表来实现.
假设这个断言是正确的(即最好使用事实和维度表来实现解决方案),我想在这些表的设计中寻求一些帮助.
'自然'(或明显)维度是:
哪个具有分层属性.但是,我正在努力如何建模以下字段:
我正在努力解决这些领域的原因是:
也许我上面使用的启发式太粗糙了?
我将举例说明我希望在数据仓库中进行的分析类型 - 希望这将进一步澄清事情.
我想按性别和人口统计分类汇总和分析数据 - 例如回答以下问题:
等等
任何人都可以澄清性别和人口统计分类是否属于事实表,或者它们是否(我怀疑)是维度表.
还假设它们是维度表,有人可以详细说明表结构(即字段)吗?
'明显'架构:
CREATE TABLE sex_type (is_male int);
CREATE TABLE demographic_category (id int, name varchar(4));
Run Code Online (Sandbox Code Playgroud)
可能不是正确的.
我正在为一家运行基于MS SQL数据库服务器的软件产品的公司工作,多年来我用PHP开发了20-30个非常先进的报告,直接从数据库中获取数据.这非常成功,人们对此很满意.
但它有一些缺点:
我正在考虑逐步采用基于OLAP的方法,可以从Excel或某些基于Web的服务查询.但我想以一种在IT环境中引入最少量新复杂性的方式来实现这一点 - 最少量的不同服务,同步工作等!
我在这方面有一些问题:
1)与工作流程相关:
2)ETL:
3)发展:
我对任何涵盖其中一部分的答案感到满意 - 即使它是一个MS环境,我也很想知道其他技术的优势.
我们正在将ActivePivot应用程序迁移到新服务器(4个插槽Intel Xeon,512GB内存).在部署之后,我们启动了我们的应用程序基准测试(这是大型OLAP查询与实时事务并发的混合).测量的性能几乎是我们以前的服务器的两倍,它具有类似的处理器,但内核少两倍,内存少两倍.
我们调查了两台服务器之间的差异,看起来大型服务器有一个NUMA架构(非统一内存访问).每个CPU插槽在物理上接近内存的1/4,但远离其余部分...运行我们的应用程序的JVM分配一个大的全局堆,每个NUMA节点上有一个随机的堆.我们的分析是内存访问模式非常随机,CPU内核经常浪费时间访问远程内存.
我们正在寻找有关在NUMA服务器上利用ActivePivot的更多反馈.我们可以配置ActivePivot多维数据集或线程池,更改查询,配置操作系统吗?
现实描述:我们有一个项目列表.在每个项目中都有很多账户.您可以对每个帐户执行大量操作.我确实有以下维度和事实表定义(简化):
Dimensions and attributes:
Project
project_key
project_name
industry
number_of_accounts
Distance
distance_key
distance_in_months
distance_in_quarters
Account
account_key
project_key
account_id
Fact Table and attributes:
Action_Fact_Table
project_key
distance_key
account_key
action_id
Run Code Online (Sandbox Code Playgroud)
现在,我想使用径流三角形方法来分析数据(它可能不是真正的径流三角形,但方法是相同的).最简单的三角形看起来像:
Distance in Months
Project name| 1 2 3 4 5 6 7 8 9 10
-------------------------------------------------------------------------
Project1 | 5 10 15 20 25 30 35 40 45 50
Project2 | 7 14 21 28 35 42 49 56 63
Project3 | 2 5 8 11 14 20 25 30
Project4 | 0 2 …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序需要针对不同级别的聚合进行分析,这就是OLAP工作负载.我也想经常更新我的数据库.
例如,这是我的更新看起来像(架构看起来像:时间,目标,源IP,浏览器 - >访问)
(15:00-1-2-2010, www.stackoverflow.com, 128.19.1.1, safari) --> 105
(15:00-1-2-2010, www.stackoverflow.com, 128.19.2.1, firefox) --> 110
...
(15:00-1-5-2010, www.cnn.com, 128.19.5.1, firefox) --> 110
Run Code Online (Sandbox Code Playgroud)
然后我想问一下上个月从firefox浏览器访问www.stackoverflow.com的访问量是多少.
我知道Vertica系统可以以相对便宜的方式实现这一点(明智的性能和可扩展性,但可能不是成本方面的).我这里有两个问题.
1)是否有可以构建的开源产品来解决这个问题?特别是,蒙德里安系统的运作情况如何?(可扩展性和性能)2)是否有HBase或Hypertable基础解决方案(显然,裸HBase/Hypertable不能这样做)? - 但如果有基于HBase/Hypertable的项目,可扩展性可能不会成为IMO的问题)?
谢谢!
内存中是否有OLAP(切片和骰子数据)Java库.(相当于Microsoft Analytic Services).特别想听听是否有人使用过一个真实的.
我们有一个拥有Oracle Standard的客户端,以及一个使用OLAP轻松解决十倍的项目.但是,Oracle仅支持企业版中的OLAP .
迁移到企业是不是有可能
我正在考虑对OLAP进行一些手动模拟,创建关系表来模拟该技术.
你知道我能做到的其他方式吗?也许是OLAP的开源工具?有任何想法吗?
在SSAS多维数据集中,如何为非时间维度创建聚合为LastChild的度量?
源数据在任何给定日期都有相同业务记录的许多版本.时间维度的粒度为DATE,而不是秒和毫秒.
事实记录具有时间戳和增量(标识)主键.实际上,我想要的是将度量计算为给定日期所有编辑的最后一个值.
到目前为止,我看到的选项分为两类:
要么
是否有解决这个问题的最佳位置或替代技术?
数据的自然层次结构是:
我需要在现有的spring boot Web应用程序中添加OLAP报告支持.我遇到过多种BI工具,如BIRT,JasperServer Report和Saiku,但对于所有这些工具,我必须使用已经创建的多维数据集.如果数据有任何修改,它将不会反映在我的报告中.
是否有任何第三方工具可以帮助我在运行时创建多维数据集或通过在运行时向多维数据集添加数据来生成报表?
我有Azure分析服务实例,使用表格模型,我需要通过DAX或MDX从python脚本查询数据.
我从Azure获得了一个看起来像这样的连接字符串:
Provider=MSOLAP;Data Source=asazure://eastus.asazure.windows.net/mymodel;Initial Catalog=mycatalog;User ID=myuser@mail.com;Password=mypass;Persist Security Info=True;Impersonation Level=Impersonate
Run Code Online (Sandbox Code Playgroud)
我试图用pyodbc连接到该连接字符串:
import pyodbc
connection_str = "Provider=MSOLAP;Data Source=asazure://eastus.asazure.windows.net/mymodel;" \
"Initial Catalog=mycatalog;User ID=myuser@mail.com;Password=mypass;" \
"Persist Security Info=True;Impersonation Level=Impersonate"
my_connection = pyodbc.connect(connection_str)
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
Traceback (most recent call last):
File "C:/workspace/test.py", line 7, in <module>
my_connection = pyodbc.connect(connection_str)
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)