我想知道是否numpy可以用于构建最基本的多维数据集模型,其中存储所有交叉组合及其计算值。
让我们以以下数据为例:
AUTHOR BOOK YEAR SALES
Shakespeare Hamlet 2000 104.2
Shakespeare Hamlet 2001 99.0
Shakespeare Romeo 2000 27.0
Shakespeare Romeo 2001 19.0
Dante Inferno 2000 11.6
Dante Inferno 2001 12.6
Run Code Online (Sandbox Code Playgroud)
并且能够构建类似的东西:
YEAR TOTAL
AUTHOR BOOK 2000 2001
(ALL) (ALL) 142.8 130.6 273.4
Shakespeare (ALL) 131.2 118.0 249.2
Dante (ALL) 11.6 12.6 24.2
Shakespeare Hamlet 104.2 99.0 203.2
Shakespeare Romeo 27.0 19.0 46.0
Dante Inferno 11.6 12.6 24.2
Run Code Online (Sandbox Code Playgroud)
我希望使用类似的东西meshgrid可以让我达到 75%。基本上,我想看看是否有可能用numpy(而不是熊猫)构建所有预计算值的结构来构建一个结构,以便我可以检索所有可能组合的上述结果。为简单起见,我们仅将SUM视为唯一可能的计算。也许这是一种圆整的询问方式,但可能numpy是这样做的支柱,还是我需要使用其他东西?
最后,如果不可能, …
我正在设计数据仓库架构.在探索从生产中提取数据并放入数据仓库的各种选项时,我遇到了许多文章,主要建议采用以下两种方法 -
- 生产DB ---->数据仓库(Star Schema)----> OLAP Cube
- 生产DB ----> 临时数据库 ---->数据仓库(Star Schema)----> OLAP Cube
我仍然不确定哪个是性能方面更好的方法,并减少生产数据库的处理负荷.
在设计数据仓库时,您发现哪种方法更好?
我需要一个真正的DBA的意见.Postgres 8.3在我的Macbook Pro上执行此查询需要200 ms,而Java和Python在20 ms(350,000行)内执行相同的计算:
SELECT count(id), avg(a), avg(b), avg(c), avg(d) FROM tuples;
Run Code Online (Sandbox Code Playgroud)
使用SQL数据库时这是正常的行为吗?
模式(该表包含对调查的响应):
CREATE TABLE tuples (id integer primary key, a integer, b integer, c integer, d integer);
\copy tuples from '350,000 responses.csv' delimiter as ','
Run Code Online (Sandbox Code Playgroud)
我用Java和Python编写了一些测试用于上下文,他们粉碎了SQL(纯Python除外):
java 1.5 threads ~ 7 ms
java 1.5 ~ 10 ms
python 2.5 numpy ~ 18 ms
python 2.5 ~ 370 ms
Run Code Online (Sandbox Code Playgroud)
即使sqlite3与Postgres竞争,尽管它假设所有列都是字符串(相比之下:即使只使用切换到数字列而不是Postgres中的整数导致10x减速)
我试过没有成功的调整包括(盲目地遵循一些网络建议):
increased the shared memory available to Postgres to 256MB
increased the working memory to 2MB
disabled connection …Run Code Online (Sandbox Code Playgroud) 我们有一个庞大的POSTGRESQL事务数据库(总共大约7000万行),并且之前已经创建了一个数据仓库(每日更新)以运行报告.
为了使这更灵活(因为许多不同的用户需要不同的报告,并且不太擅长指定他们想要的东西),我们想创建一个多维OLAP多维数据集并通过Web服务向我们的客户公开,并可能外包报告创建.
我们在.NET(主要是vb.net)中编程,我相信这可以通过将XMLA用于webservice(或WCF)层来实现,但是经过一些研究(一切似乎都是固有的 - 无论是SSAS还是SQL服务器,还是Jasper Server)和贾斯珀分析等),我不确定以下内容,并想知道其他人是否有任何可以分享的经验:
可伸缩性和性能对我们来说是一个巨大的因素,以及快速开发时间和仅仅学习如何使用鼠标的用户可以使用的界面:p
注意:理想情况下,此解决方案是OpenSource和Free或不到1万英镑(大多数企业解决方案都是愚蠢的钱)
有谁知道任何优秀的开源立方体浏览器?
理想情况下,它将使用普通的javascript构建.
它甚至存在吗?
我正计划将它与经典的asp再次使用一个SQL数据库.
有没有人试图从R中访问提供XMLA API(如Mondrian)的OLAP服务器?
我喜欢从R对Mondrian运行MDX查询并检索结果集.
我有一个相当标准的OLTP规范化数据库,我已经意识到我需要做一些复杂的查询,平均值,数据中不同维度的标准偏差.
所以我转向SSAS并创建了OLAP多维数据集.
然而,为了创建立方体,我相信我的数据源结构需要采用"星形"或"雪花"配置(我认为现在不是这样).
通常的过程是使用SSIS在我的主OLTP DB上进行某种ETL过程,进入另一个具有事实和维度的正确"星形"配置的关系数据库,然后使用此DB作为OLAP多维数据集的数据源?
谢谢
我有一个MDX查询与以下计算成员:
with member [Measures].[BBOX] as
Count(
Filter(
CrossJoin([Dim Response].[Response ID].Children, [Dim Question].[Question Text].Children),
[Measures].[Question Bottom Box] > 0
)
)
Run Code Online (Sandbox Code Playgroud)
我的想法是,我想要计算维度的两个成员的组合.(请原谅我,如果我的MDX词汇量有点偏差).它也基于一些标准.
查询的其余部分如下所示:
select
{({[Measures].[TBOX], [Measures].[BBOX]},
[Dim Product].[Category Name].&[Office])} on columns,
{[Dim Question].[Question Text].Members} on rows
from H1_FY10_Revised
where ({[Dim Question].[Category Name].&[Partner]},
{[Dim Subsidiary].[Subsidiary Alias Name].&[Germany]})
Run Code Online (Sandbox Code Playgroud)
我的问题是:主查询中发生的数据切片(where子句)是否转换为计算成员?从计算成员返回的数据与主查询中的轴之间是否存在任何类型的隐式连接?
或另一种表达它的方式:计算成员中的交叉连接是否在主查询的上下文中执行?
在MySQL数据库之上使用诸如Mondrian之类的ROLAP服务器是否有任何性能优势,而不是简单地查询MySQL数据库?
我在大多数查询相对简单的上下文中询问这一点(例如在一定时间内查找所有销售),但数据库的大小相当大(数十万条目).
我的想法是使用OLAP加速查询,但现在我很困惑这是否实际上是这项技术的目的,特别是在其ROLAP形式.在尝试olap4j API时,我意识到我可以使用它来进行MDX查询,甚至没有实际的OLAP服务器(只有一个关系数据库和OLAP架构).在性能方面,这怎么可能有用呢?
谢谢
我对此很陌生,所以我可能犯了一个简单的错误.
我需要使用远程数据库创建OLAP多维数据集.在设置维度和度量并创建多维数据集后,我无法将多维数据集启动到本地服务器.我不断收到错误,"由于以下连接问题,项目无法部署到'localhost'服务器:无法建立连接.确保服务器正在运行.要验证或更新目标服务器的名称,在解决方案资源管理器中右键单击项目,选择"项目属性",单击"部署"选项卡,然后输入服务器的名称."
但是,本地SQL服务器正在运行(据我所知),我不知道如何解决这个问题.我试过用"."替换"localhost".和知识产权,但这也没有奏效.
以下是我关注的指南:http: //www.mssqltips.com/sqlservertip/1532/build-a-cube-from-an-existing-data-source-using-sql-server-analysis-services/
也许SQL Server没有真正运行?我怎么检查?或者,当我尝试处理多维数据集时,我是否正在跳过重要的内容?