所以我试图用Python Cubes Framework实现一些BI,但我遇到了一些问题。
基本上我正在努力做一个简单的" PointCut /切片和骰子,我没有任何运气。我正在使用PostGis的PostgreSQL数据库。
我的model.json
是:
{
"dimensions": [
{"name": "user", "attributes": ["id", "username"]},
{"name": "resources", "attributes": ["id", "resource_simple_name"]},
{"name":"created_on", "role": "time"}
],
"cubes": [
{
"name": "users_resources_likes",
"dimensions": ["user", "resources", "created_on"],
"mappings": {
"user.id": "auth_user.id",
"user.username": "auth_user.username",
"resources.id": "resources.id",
"resources.resource_simple_name": "resources.resource_simple_name",
"created_on": "created_on"
},
"joins": [
{
"master": "user_id",
"detail": "auth_user.id"
},
{
"master": "resource_id",
"detail": "resources.id"
}
]
}
]
}
如果我尝试用切片机上的日期做一个pincut
aggregate?drilldown=created_on&cut=created_on:2012
我得到DataError: (DataError) invalid input syntax for type timestamp with time zone: "2012"
搜索一段时间后,我读到可能是因为我的postgresql数据库有时间戳:
created_on timestamp with time zone NOT NULL DEFAULT '2014-02-10 00:00:00+00'::timestamp with time zone,
所以我试图这样做:
?drilldown=created_on&cut=created_on:2012-09-15T09:37:59+00:00
我得到了:
{
error: "unknown_user_error",
message: "Wrong dimension cut string: 'created_on:2012-09-15T09:37:59 00:00'"
}
我做错了什么?是model.json
中的问题吗?
答案 0 :(得分:4)
我发现在模型中向日期添加更多信息可以解决问题:
{
"name": "created_on",
"label": "Date Created",
"role": "time",
"info": {
"cv-datefilter": true,
"cv-datefilter-hierarchy": "weekly"
},
"levels": [
{
"name":"year",
"label":"Year",
"info": { "cv-datefilter-field": "year" }
},
{
"name":"quarter",
"label":"Quarter"
},
{
"name":"month",
"label":"Month"
},
{
"name":"week",
"label":"Week",
"info": { "cv-datefilter-field": "week" }
}
],
"hierarchies": [
{
"name": "weekly",
"label": "Weekly",
"levels": [ "year", "week"]
},
{
"name": "monthly",
"label": "Monthly",
"levels": [ "year", "quarter", "month"]
}
]
}
和映射:
"mappings": {
"created_on.year": {"column":"created_on", "extract":"year"},
"created_on.month": {"column":"created_on", "extract":"month"},
"created_on.week": {"column":"created_on", "extract":"week"},
"created_on.day": {"column":"created_on", "extract":"day"},
"created_on.quarter": {"column":"created_on", "extract":"quarter"}
}