我需要从命令行执行MDX查询(MS AS 2005).我听说有一个名为ascmd的程序可以做到这一点.不幸的是,当我去codeplex页面时,我发现应该提供ascmd的页面不起作用.如果您知道任何其他页面,请帮助我,我可以在命令行中下载ascmd或任何其他执行MDX的程序.谢谢你的答复!
我正在开发我的大学毕业设计项目,我想要包含一个基于OLAP的报告模块.
在过去,我使用Mondrian和JPivot作为Java项目的OLAP解决方案,我正在寻找类似于.NET的东西.棘手的部分是我的项目应该运行在Mono和MySQL(安装环境是Linux机器)上,因此MSSQL OLAP是不可能的.
任何人都知道我可以使用的类似Mondrian/JPivot的东西吗?我不介意自己创建大多数聚合表,只要我的aspx页面有某种交叉表/数据透视控件
我需要一个心理过程来设计OLAP数据库......
基本上对于标准关系,它(松散地):
Identify Entities
Identify Relationships
Identify Properties of Entities
Run Code Online (Sandbox Code Playgroud)
对于每个属性:
Ensure property can be related to only one entity
Ensure property is directly related to entity
Run Code Online (Sandbox Code Playgroud)
对于OLAP数据库,我理解术语,动机和结构; 但是,我不知道如何将我的关系模型分解为OLAP模型.
我想知道,如果有,可以使用SQL Express(因此不需要分析服务)的任何桌面OLAP解决方案
我一直在负责寻找一种方法来让我们的客户做到"点对点"的报道,但绝大多数都是在SQL Express,在以前的工作,客户有分析服务和一般COGNOS或水晶报表,所以所需要的只是设计立方体.
简介:我见过的MDX连接的大多数示例都涉及加入相对较小的集合,例如每个集合数十或数百个项目.但我发现自己也想尝试加入(特别是"非空加入")集合,每个集合包含数千或数万个项目,到目前为止它还不能正常运行.我想知道这是否可以使用,或者我是否需要考虑使用除Mondrian/OLAP之外的其他东西.
具体来说,我有一个记录公司(n = 7000)和客户(n = 27000)之间互动的立方体.目前公司和客户都是完全扁平化的层次结构; 有所有级别和个人 - 公司级别,其间没有其他级别.有一个中央事实表,以及公司和客户的单独维度表.
我的用户至少似乎想要沿着这些方向获取摘要报告,聚合公司和客户之间的所有非空交互:
select
[Measures].[Amount] on columns,
NonEmptyCrossJoin([Firm].Children,
[Client].Children) on rows
from MyCube
Run Code Online (Sandbox Code Playgroud)
但是这个查询及其变体在我的测试Mondrian设置中不起作用.要么我得到一个OutOfMemoryException(在2GB的Java堆上),要么Java似乎花了不可思议的长时间在mondrian.rolap.RolapResult $ AxisMember.mergeTuple(TupleCursor).(如果有帮助的话,我可以提供更完整的堆栈跟踪.)"不可思议的长"我的意思是Java在我放弃之前会在数小时内停留在查询中.
我最初的预期上面的查询进行确定,因为从概念上讲它可以做一定程度的只是在做沿着这些路线的SQL查询有效:
select Firm, Client, Sum(Amount) as n
from fact, firm, client
where fact.firmid = firm.firmid and fact.clientid = client.clientid
group by Firm, Client
Run Code Online (Sandbox Code Playgroud)
(事实上,如果我直接在MySql中执行这样的操作,则执行时间不会超过15秒.)
但是从调试日志来看,Mondrian似乎没有尝试这种优化.相反,它似乎是在内部进行连接,并且最终变得特别慢.我在我的mondrian.properties中设置了mondrian.native.crossjoin.enable = true,但这似乎不是Mondrian能够"生成本机"的连接类型之一.(如果我打开mondrian.native.unsupported.alert = ERROR,那么我得到相应的异常.)
我想知道我是否需要阻止我的用户尝试加入如此大的尺寸/集合,或者Mondrian是否可能不是我在这里寻找的工具.但也许我只是做错了什么.
在OLAP-cubes中,可以对大量聚合数据进行快速查找.这样做的主要原因是一个预先聚合操作中的数据,这些数据易于向上组合(主要是+, - ,mean,std,max,min等等).
如何在clojure中获得这种"反懒惰"行为?
我正在考虑类似的事情
(def world-population {:africa 4e8 ;;this is an aggregation!
:africa/liberia 3.4e6
:africa/ethiopia 7.4e7
...})
Run Code Online (Sandbox Code Playgroud)
如何更新这样的数据结构并确保实体的父级也更新?有人必须推出自己的ref实现吗?
我的数据库团队使用MySQL数据库建立了一个数据库Cube.我需要从PHP连接到此Cube并使用MDX查询获取数据.
我找不到怎么做.有人可以尽快帮助我吗?
我有一个SSAS 2008多维数据集,用于存储来自股票市场的一天结束的财务数据.该多维数据集仅在市场收盘后每天处理一次,因此它从未获得有关当前日内交易数据的任何信息.我还有一个关系数据库,其中包含当前股票的日内交易信息.我试图找到一种方法来组合这两个数据源,以便我可以执行计算,例如基于当前价格的库存的30天移动平均值,以及之前29天的历史数据.我正在使用SSAS标准版,因此我无法访问主动缓存或多个分区等功能,以帮助我近乎实时地处理当前数据.
对于单个查询的上下文,有什么方法可以以某种方式动态地将我的SQL数据库中的行包含到我的事实表中?基本上只是暂时将一小部分数据引入到多维数据集中以处理某个计算?
乍一看,似乎使用Elasticsearch作为后端,可以轻松快速地构建具有类似枢轴功能的报表,如传统商业智能环境中所使用的那样.
通过"类似枢轴",我的意思是,在SQL术语中,数据按一到两个维度进行分组,过滤,按一维或二维排序,并通过多个指标聚合,例如总和或计数.
"简单"是指对于足够大的集群,不需要预先聚合数据,这样可以节省ETL和数据工程时间.
"快速"是指由于Elasticsearch的近实时功能报告,与传统商业智能系统相比,在许多情况下可以减少延迟.
是否有任何理由,不将Elasticsearch用于上述目的?
我正在使用SSAS构建多维多维数据集,我根据日期列创建了分区,并为每天定义了一个分区。源数据大小大于2 TB。
在部署和处理多维数据集时,如果发生错误,则不会保存所有已处理分区,并且它们的状态仍未处理。
搜索了一段时间后,我发现以下文章提到了这一点:
并行(处理选项):用于批处理。此设置导致Analysis Services派生处理任务以在单个事务中并行运行。如果发生故障,则结果是所有更改都将回滚。
搜索之后,我发现了一种替代方法,可以从SSIS包中一步一步处理分区,如以下文章中所述:
但是处理时间增加了400%以上。有没有一种有效的方法可以并行处理分区,而不会在发生错误时丢失所有进度?
olap ×10
ssas ×3
mdx ×2
mondrian ×2
mysql ×2
sql-server ×2
.net ×1
aggregation ×1
ascmd ×1
clojure ×1
command-line ×1
cross-join ×1
jdbc ×1
join ×1
mono ×1
php ×1
pivot ×1
reporting ×1
sql ×1
ssis ×1