work

展达OLAP框架说明

2017-04-13  本文已影响0人  gunner_51cb

Cube

Fact Table

Fact

Dimension

Level


OlapReporter#report函数


Example

Order Table

id price cost customer_id sale_date status
1 1520 1023 93 2017-05-03 6
2 2785 1972 1172 2017-05-03 6
3 582 179 11237 2017-05-03 8

Customer Table

id customer_name is_internal city province country
1 张三 T 杭州 浙江 中国
2 李四 F 上海 上海 中国
3 王五 F 洛杉矶 加利福尼亚 美国

Date Table

date day month year
2015-01-01 1 1 2015
2015-01-02 2 1 2015
2015-01-03 3 1 2015

Fact

语法

avg|sum|count|max|min(fact_field)

说明

Fact的计算,要求只做一次统计预算,fact_field是已有的字段。不允许在统计操作符里再做额外的计算。例如sum(case when enter_type = 1 then 1 then 0 end)是不允许的。这就要求有计算字段(computed field),而且已经提前计算好。计算字段的方式可以有两种方式实现:


Dimension

例子

{ "dimension_name": "sa", "table": "employee_buser", "key": "id", "foreign_key": "sa_id", "levels": [{ "name": "sa_level", "label": "b_user_name", "key": "id", "order": 1 }, { "name": "section_level", "label": "section_name", "key": "section_id", "order": 2 }] }

说明

dimension因为包含levels,比较复杂,所以采用json的格式。注意:除了foreign_key是fact的字段,其他的都是dimension的字段


Filter

语法

dimension_name:level_name operator value AND|OR ...
或者
fact_field operator value AND|OR

例子

sa:sa_level in (35,47,56)
created_time_dimension:month = '2017-04'
order_status != (8)

说明

operator支持以下操作符

上一篇 下一篇

猜你喜欢

热点阅读