1 背景
在当前业务场景中,许多客户的数据规模已达到千万甚至亿级别的庞大体量。如此海量的数据在查询过程中,往往会因数据处理量过大而导致查询速度缓慢,严重影响业务效率与用户体验。
为解决这一问题,Smartbi 产品提供了预聚合表(直连) 的解决方案,通过配置预聚合表可显著提升大数据量下的查询性能。需要注意的是,该功能目前仅支持多维引擎的聚合表,SQL 引擎暂未适配。
1.1 前提条件
1、需要在系统运维/公共设置/高级系统选项设置:CONFIG_CENTER_SHOW_ENABLE=true。
...
选项 | 选项值 |
---|
Data ID | datamodel,可以随便写 |
Group | PreAggregations,聚合表名称,可以定义为“aggPreAggregations,聚合表名称,集合当前示例定义为“agg_1_orderdetails” |
配置类型 | Json, 一定是json |
配置说明 | 非必填 |
配置内容 | 需要遵循这个格式定义, 需要注意看下面对字段注释说明: [
{
"id": "1", // 随意,没用的
"dataSourceId": "DS.nnorthwind",
"schema": "",
"name": "agg_1_orderdetails", //名称要唯一
"modelId": "be0d8c420bc41401276ee5f3fb4788dc",--模型ID
"viewName": "orderdetails", --事实表名字
"define": {
"dimensions": [{
"dimension": "CategoryName", //维度名称
"column": "CategoryName" //对应聚合表的列名
}, {
"dimension": "ProductName",
"column": "ProductName"
}, {
"dimension": "ShipRegion",
"column": "ShipRegion"
}, {
"dimension": "ShipCity",
"column": "ShipCity"
}, {
"dimension": "viewId",
"column": "viewId"
}],
"measures": [ {
"measure": "$fact_count$", // 内置,这个写死的
"column": "fact_count",
"aggregator": "COUNT" //唯一计数、平均值不支持
}, {
"measure": "Quantity_m", //度量名称
"column": "Quantity", //对应预聚合对应的列
"aggregator": "Count" //聚合方式
}, {
"measure": "UnitPrice_m",
"column": "UnitPrice",
"aggregator": "SUM"
}, {
"measure": "Discount_m",
"column": "Discount",
"aggregator": "SUM"
}]
}
}
]
|
...