维度设定
本文主要介绍如何自定义维度相关的概念,以及如何设定自定义维度。
自定义维度概念
自定义维度是指用户可以为一个成交对象 TradeObject
设置任意的属性,使得这些对象可以按照用户定义的维度分组。
对于每个成交对象,包含 TradeObject
和 InstrumentObject
的全部字段。
TradeObject.content
和 InstrumentObject.content
完整的字段信息可以参考 对象模型。
设定自定义维度
系统使用 SQL 语法设定自定义维度。 有两种不同类型的维度,分别是 表达式 和 维度项。
自定义维度 - 表达式
表达式类型,是指用户直接给定一个维度的定义。
例如,用户可以定义一个维度,表示成交时交易日是星期几。可以这样定义:
EXTRACT('dow' from TO_TIMESTAMP("TradeObject".content->>'trading_day', 'YYYY-MM-DD'))
得到的数据结构为
id |
columns |
星期 |
1 |
... |
1 |
2 |
3 |
定义品种维度,表示成交时的品种。可以这样定义:
"TradeObject".content->>'product_id'
得到的数据结构为
id |
columns |
品种 |
1 |
... |
rb |
2 |
rb |
定义板块维度,表示成交时合约所在的板块。可以这样定义:
"TradeObject".content->>'categories_name'
得到的数据结构为
id |
columns |
板块 |
1 |
... |
金属 |
2 |
金属 |
自定义维度 - 维度项
维度项类型,是指用户需要穷举定义维度下的所有项,其余值会归到 OTHERS 中。
例如,为不同的用户分组。可以这样定义:
组A:
"TradeObject".content->>'investor_name' = 'ringo' or "TradeObject".content->>'investor_name' = 'ringo001'
组B:
"TradeObject".content->>'investor_name' = 'shinny' or "TradeObject".content->>'investor_name' = 'shinny001'
组C:
"TradeObject".content->>'investor_name' = 'tech' or "TradeObject".content->>'investor_name' = 'tech001'
得到的数据结构为
id |
columns |
用户组 |
1 |
... |
组A |
2 |
组A |
|
3 |
组B |
|
4 |
组C |