Python Cubes Olap 框架日期切入点
Posted
技术标签:
【中文标题】Python Cubes Olap 框架日期切入点【英文标题】:Python Cubes Olap Framework Date PointCut 【发布时间】:2014-09-26 11:48:15 【问题描述】:所以我正在尝试使用 Python Cubes Framework 实现一些 BI,但遇到了一些问题。
基本上我正在尝试做一个“简单的”切入点/切片和骰子,但我没有任何运气。我正在使用带有 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"
]
]
如果我尝试在切片器上用日期切入
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
的问题吗?
【问题讨论】:
【参考方案1】:我发现向模型中的日期添加更多信息解决了这个问题:
"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"
【讨论】:
以上是关于Python Cubes Olap 框架日期切入点的主要内容,如果未能解决你的问题,请参考以下文章