ActivePivot:将多维 Cellset 数据解析为 JSON 用于 React-vis 图表
ActivePivot: Parsing Multidimensional Cellset data into JSON for React-vis Charts
我刚刚开始使用 MDX 查询,所以我不是专家。我们已经获得了通过 Web 套接字连接从前端应用程序触发的 MDX 查询。收到的响应是一个多维数据集,而不是像这样的标准 JSON。
{
"type": "cellSetData",
"streamId": "cb6fdd98-d528-44fb-8f14-366970e574b5",
"queryId": "cb6fdd98-d528-44fb-8f14-366970e574b5",
"data": {
"axes": [
{
"id":0,
"hierarchies": [
{
"dimension": "Measures",
"hierarchy": "Measures"
}
],
"positions": [
[ { "namePath": [ "5-Day ADV" ] } ],
[ { "namePath": [ "Target Value" ] } ],
[ { "namePath": [ "Performance Vs VWAP (Targ. Val. W.A.)" ] } ]
],
"maxLevelPerHierarchy": [1]
},
{
"id":1,
"hierarchies": [
{
"dimension": "Order",
"hierarchy": "OrderId"
}
],
"positions": [
[ { "namePath": [ "AllMember" ] } ],
[ { "namePath": [ "AllMember", "20180829-142357889-114-29" ] } ],
[ { "namePath": [ "AllMember", "20180829-142357896-775-32" ] } ],
[ { "namePath": [ "AllMember", "20180829-142357897-394-35" ] } ]
],
"maxLevelPerHierarchy": [2]
}
],
"cells": [
{
"ordinal": 0,
"value": 1.8702095375E7
},
{
"ordinal": 1,
"value": 41461.2
},
{
"ordinal": 2,
"value": 0.0
},
{
"ordinal": 3,
"value": 1968021.375
},
{
"ordinal": 4,
"value": 17719.2
},
{
"ordinal": 5,
"value": 0.0
},
{
"ordinal": 6,
"value": 1043997.0
},
{
"ordinal": 7,
"value": 10328.4
},
{
"ordinal": 8,
"value": 0.0
},
{
"ordinal": 9,
"value": 1.5690077E7
},
{
"ordinal": 10,
"value": 13413.6
},
{
"ordinal": 11,
"value": 0.0
}
]
}
}
- 我们是否有任何开源解析器来帮助我们获得如下 JSON 响应:
{"Stock_Percentage":"1.8702095375E7","Stock_Quantity":"21997538","Stock_Price":"333"}
{"Stock_Percentage":"1968021.375","Stock_Quantity":"17719.2","Stock_Price":"0.0"}
我们能否在 MDX 级别进行调整以 return 类似的响应,而不管聚合级别如何。
查询ActiveViam,基于React的Active Pivot Live如何解析这些数据。欢迎任何 gitlinks 或参考资料。
我能想到的唯一粗略的方法是获取 "positions" 的计数并通过 "Cells" 上的 MOD 函数将其用作计算。这可能只是一个漫无边际的随意跳过这个。
非常感谢任何信息!
此致!
MDX 是为多维分析而设计的,结果不能看起来像一个简单的 table,无法反映这种多维特征,尤其是层次结构。
据我所知,没有开源解析器可以将此类响应转换为 table,也没有接近您的格式的东西。但是,您可以尝试将任何 MDX 查询导出为 CSV http://server:port/pivot/rest/v4/cube/export/mdx/download
的 REST 调用。根据您的 JSON cellset,它将提供如下内容:
[Order].[OrderId].[OrderId];[Measures];VALUE
;"5-Day ADV";1.8702095375E7
;"Target Value";41461.2
;"Performance Vs VWAP (Targ. Val. W.A.)";0.0
20180829-142357889-114-29;"5-Day ADV";1.8702095375E7
20180829-142357889-114-29;"Target Value";41461.2
20180829-142357889-114-29;"Performance Vs VWAP (Targ. Val. W.A.)";0.0
...
最后,你总是可以自己解析结果。这个想法是,单元格序号表示立方体中的给定位置。它们是通过迭代轴位置来计算的,从具有较高 id 的轴到具有最低 id 的轴开始。
例如,
- 序数
0
用于 "5-Day ADV"|"AllMember"
、
- 序数
1
用于 "Target Value"|"AllMember"
- 序数
3
用于 "5-Day ADV"|"AllMember"180829-142357889-114-29
干杯
PS: 我在ActiveViam工作
我刚刚开始使用 MDX 查询,所以我不是专家。我们已经获得了通过 Web 套接字连接从前端应用程序触发的 MDX 查询。收到的响应是一个多维数据集,而不是像这样的标准 JSON。
{
"type": "cellSetData",
"streamId": "cb6fdd98-d528-44fb-8f14-366970e574b5",
"queryId": "cb6fdd98-d528-44fb-8f14-366970e574b5",
"data": {
"axes": [
{
"id":0,
"hierarchies": [
{
"dimension": "Measures",
"hierarchy": "Measures"
}
],
"positions": [
[ { "namePath": [ "5-Day ADV" ] } ],
[ { "namePath": [ "Target Value" ] } ],
[ { "namePath": [ "Performance Vs VWAP (Targ. Val. W.A.)" ] } ]
],
"maxLevelPerHierarchy": [1]
},
{
"id":1,
"hierarchies": [
{
"dimension": "Order",
"hierarchy": "OrderId"
}
],
"positions": [
[ { "namePath": [ "AllMember" ] } ],
[ { "namePath": [ "AllMember", "20180829-142357889-114-29" ] } ],
[ { "namePath": [ "AllMember", "20180829-142357896-775-32" ] } ],
[ { "namePath": [ "AllMember", "20180829-142357897-394-35" ] } ]
],
"maxLevelPerHierarchy": [2]
}
],
"cells": [
{
"ordinal": 0,
"value": 1.8702095375E7
},
{
"ordinal": 1,
"value": 41461.2
},
{
"ordinal": 2,
"value": 0.0
},
{
"ordinal": 3,
"value": 1968021.375
},
{
"ordinal": 4,
"value": 17719.2
},
{
"ordinal": 5,
"value": 0.0
},
{
"ordinal": 6,
"value": 1043997.0
},
{
"ordinal": 7,
"value": 10328.4
},
{
"ordinal": 8,
"value": 0.0
},
{
"ordinal": 9,
"value": 1.5690077E7
},
{
"ordinal": 10,
"value": 13413.6
},
{
"ordinal": 11,
"value": 0.0
}
]
}
}
- 我们是否有任何开源解析器来帮助我们获得如下 JSON 响应:
{"Stock_Percentage":"1.8702095375E7","Stock_Quantity":"21997538","Stock_Price":"333"} {"Stock_Percentage":"1968021.375","Stock_Quantity":"17719.2","Stock_Price":"0.0"}
我们能否在 MDX 级别进行调整以 return 类似的响应,而不管聚合级别如何。
查询ActiveViam,基于React的Active Pivot Live如何解析这些数据。欢迎任何 gitlinks 或参考资料。
我能想到的唯一粗略的方法是获取 "positions" 的计数并通过 "Cells" 上的 MOD 函数将其用作计算。这可能只是一个漫无边际的随意跳过这个。
非常感谢任何信息!
此致!
MDX 是为多维分析而设计的,结果不能看起来像一个简单的 table,无法反映这种多维特征,尤其是层次结构。
据我所知,没有开源解析器可以将此类响应转换为 table,也没有接近您的格式的东西。但是,您可以尝试将任何 MDX 查询导出为 CSV http://server:port/pivot/rest/v4/cube/export/mdx/download
的 REST 调用。根据您的 JSON cellset,它将提供如下内容:
[Order].[OrderId].[OrderId];[Measures];VALUE
;"5-Day ADV";1.8702095375E7
;"Target Value";41461.2
;"Performance Vs VWAP (Targ. Val. W.A.)";0.0
20180829-142357889-114-29;"5-Day ADV";1.8702095375E7
20180829-142357889-114-29;"Target Value";41461.2
20180829-142357889-114-29;"Performance Vs VWAP (Targ. Val. W.A.)";0.0
...
最后,你总是可以自己解析结果。这个想法是,单元格序号表示立方体中的给定位置。它们是通过迭代轴位置来计算的,从具有较高 id 的轴到具有最低 id 的轴开始。 例如,
- 序数
0
用于"5-Day ADV"|"AllMember"
、 - 序数
1
用于"Target Value"|"AllMember"
- 序数
3
用于"5-Day ADV"|"AllMember"180829-142357889-114-29
干杯
PS: 我在ActiveViam工作