【发布时间】:2012-10-25 09:20:34
【问题描述】:
我正在尝试在一个非常简单的数据库上使用 python 的 olap 框架 cubes,但在连接表时遇到了一些问题。
我的架构如下所示:
Users table
ID | name
Products table
ID | name | price
Purchases table
ID | user_id | product_id | date
还有立方体模型:
{
'dimensions': [
{'name': 'user_id'},
{'name': 'product_id'},
{'name': 'date'},
],
'cubes': [
{
'name': 'purchases',
'dimensions': ['user_id', 'product_id', 'date'],
'measures': ['price']
'mappings': {
'purchases.user_id': 'users.id',
'purchases.product_id': 'products.id',
'purchases.price': 'products.price'
},
'joins': [
{
'master': 'purchases.user_id',
'detail': 'users.id'
},
{
'master': 'purchases.product_id',
'detail': 'products.id'
}
]
}
]
}
现在我想显示所有购买,显示产品名称、用户名称和购买日期。我似乎找不到办法做到这一点。文档有点稀缺。
谢谢
【问题讨论】:
-
OLAP 不是为连接而设计的。或许可以改用 SQL 数据库。
-
@AaronWatters Python 的 Cubes 框架提供了这个功能。它是一个 MySQL 后端。
-
澄清一下:连接对最终用户是隐藏的,它们是逻辑到物理映射的一部分,并在逻辑模型中指定。此外,Cubes 有许多关系数据库后端,不仅是 MySQL - 所有后端SQLAlchemy 支持的。其中包括:PostgreSQL、Oracle、SQLite 等等。
标签: python database olap star-schema