数据模型
更新时间:2022-11-15
创建数据模型
接口简介
创建数据模型
接口详情
请求地址
/openapi/v1/group/{groupKey}/dataModel?__scp__={__scp__}
请求类型
POST
请求参数
注: menuId 的生成方法: 维度菜单 id(生成方式:'SG' + (+new Date()).toString(36) + Math.floor(Math.random() 10000000 (massive ? 10000 : 1)).toString(36).toUpperCase())
Javascript
1{
2 config: { // 数据模型详情配置
3 dbHashes: ["d_ada15-3ormpgf7-p284kv"], // 数据源hash
4 dimensionMenu: [ // 维度菜单详情
5 {
6 menuId: "SGKETQL7WVXW5XM59", // 维度菜单id(生成方式:'SG' + (+new Date()).toString(36) + Math.floor(Math.random() * 10000000 * (massive ? 10000 : 1)).toString(36).toUpperCase())
7 name: "car_sale", // 维度名称
8 nodes: ["SG2BD8CC369D73BB81"], // 维度菜单下所有维度(具体配置在dimensions下,每个dimensions的key值对应nodes中的每个id)
9 type: "menu" // 维度菜单类型(现在只支持menu类型)
10 }
11 ],
12 dimensions: { // 维度详情
13 SG2BD8CC369D73BB81: { // 单个维度节点详情
14 alias: "车型", // 维度别名
15 calculated: false, // 是否计算字段
16 convert: { // 数据类型转换
17 dataType: "", // 数据类型
18 label: "", // 标记为地理信息(geo地名/区域、lng经度、lat维度,默认为空)
19 original: "YYYY-MM-DD", // 日期或时间的源数据格式(YYYY-MM-DD)
20 type: "" // 转换后数据类型
21 },
22 dataType: "string", // 维度数据类型
23 dataTypeInDB: "varchar", // 数据库中类型
24 expression: "", // 计算维度表达式
25 field: "车型", // 维度字段名
26 hierarchyId: "SGKETWH2V0UEIBHT5", // 层级id
27 isHidden: false, // 是否隐藏字段
28 pathIds: [], // 层级下包含的维度id
29 renameHash: "", // 重命名hash
30 tableId: "SGKETQL7WR7A35", // 表id
31 type: "dimension" // 字段类型(dimension维度、measure度量)
32 }
33 },
34 filters: {}, // 数据模型的数据筛选
35 limits: {
36 method: "fixed", // 设置方式,fixed固定值、dynamic动态值
37 fixedLimits: [ // 固定值权限内容
38 {
39 contents: [ // 权限内容
40 {
41 dimId: "SG2BD8CC369D73BB81",// 所选字段id
42 list: ["车型1"], // 列表筛选
43 manual: ["车型1"], // 手动筛选
44 mode: "list" // 筛选方式
45 }
46 ],
47 limitRoles: ["ro_ada15-1i6h64lc-g2vp2r"], // 授权的角色
48 limitUsers: ["test2@baidu.com"], // 授权的用户
49 name: "test", // 权限名称
50 rule: "AND" // 权限规则, AND、OR
51 }
52 ],
53 dynamicLimits: [ // 动态值权限内容(固定权限内容二选一)
54 {
55 dimId: "SG2BD8CC369D73BB81", // 所选字段id
56 userAttr: "attr_ada15-8tzmu2jo-p284kv" // 用户属性
57 }
58 ],
59 othersLimit: false // 未添加权限的用户默认拥有所有权限
60 },
61 measureMenu: [ // 度量菜单详情(可参考度量菜单配置)
62 {
63 menuId: "SGKETQL7WVIFNFASG",
64 name: "car_sale",
65 nodes: ["SG835BE68135BB6338"],
66 type: "menu"
67 }
68 ],
69 measures: { // 度量详情(配置参考度量)
70 SG835BE68135BB6338: {
71 alias: "订单数量",
72 calculated: false,
73 convert: {
74 dataType: "",
75 label: "",
76 original: "",
77 type: ""
78 },
79 dataType: "int",
80 dataTypeInDB: "int",
81 defaultAggregator: "SUM" // COUNT(计数)、COUNTD(计数(去重))、SUM(求和)、AVG(均值)、MAX(最大值)、MIN(最小值)
82 expression: "",
83 field: "订单数量",
84 format: { // 数据格式化
85 accuracy: -1, // 小数位数(-1自动、1(1位)、2(2位)、3(3位)、4(4位)、5(5位)、6(6位))
86 dataFormat: "", // 数据格式化(percent百分比(*100 %)、numFunc数字转万/亿、timeFunc秒转时分秒、byteFunc字节转MB/GB、bpsFunc字节转Mbps(带宽))
87 unit: "" // 数据单位(%、千克、顿、元)
88 },
89 isHidden: false,
90 tableId: "SGKETQL7WR7A35",
91 type: "measure"
92 }
93 },
94 synTable: false, // 是否同步表结构(true是、false否)
95 tables: [ // 表连接相关配置
96 {
97 customTableHash: "", // 自定义表的hash
98 dbHash: "d_ada15-3ormpgf7-p284kv", // 数据源hash
99 join: { // 表关联关系
100 leftTableId: "", // 左表id
101 on: [ // 关联条件设置
102 {
103 leftField: "", // 左侧关联字段
104 rightField: "" // 右侧关联字段
105 }
106 ],
107 type: "inner", // 表连接方式(inner内连接、left左连接、full(full join),默认为内连接)
108 },
109 level: 1, // 表在第几层
110 tableId: "SGKETQL7WR7A35", // 表ID
111 tableName: "car_sale" // 表名
112 }
113 ]
114 },
115 databaseHash: "d_ada15-3ormpgf7-p284kv" // 数据源hash
116 name: "层级测试3", // 数据模型名称
117 remark: "", // 描述
118 source_hash: "", // 资源的hash
119 type: 1 // 数据模型是多层文件夹模式时,1表示数据模型,0表示文件夹
120}
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| name | String | 是 | 数据模型名称 | - | - |
| databaseHashes | String | 是 | 数据源 hash | - | - |
| source_hash | String | 是 | 资源的 hash | - | - |
| remark | String | 否 | 数据模型描述 | - | - |
| type | Number | 是 | 数据模型是多层文件夹模式时,1 表示数据模型,0 表示文件夹 | 1 | 1 |
| config | Object | 是 | 数据模型详情配置(详细描述见下方) | - | - |
config 配置描述
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| dbHashes | Array | 是 | 数据源 hash | - | ["d_ada15-3ormpgf7-p284kv"] |
| dimensionMenu | Array | 是 | 维度数据(详细描述见下方) | - | - |
| dimensions | Object | 否 | 维度详情(详细描述见下方) | - | - |
| measureMenu | Array | 是 | 维度数据(详细描述见下方) | - | - |
| measures | Object | 是 | 维度详情(详细描述见下方) | - | - |
| tables | Array | 是 | 表结构详情(详细描述见下方) | - | - |
| synTable | Boolean | 是 | 是否同步表结构(true 同步,false 不同步) | false | false/true |
| filters | Object | 否 | 数据模型数据筛选器配置(详细描述见数据筛选) | - | - |
| limits | Array | 否 | 数据行权限设置(详细描述见下方) | - | - |
dimensionMenu/measureMenu 配置描述
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| type | String | 是 | 菜单类型(现在只支持 menu 类型) | menu | menu |
| menuId | String | 是 | 菜单 id(生成方式:'SG' + (+new Date()).toString(36) + Math.floor(Math.random() 10000000 (massive ? 10000 : 1)).toString(36).toUpperCase()) | - | SGKETQL7WVXW5XM59 |
| name | String | 是 | 名称 | - | car_sale |
| nodes | Array | 是 | 维度菜单下所有维度 | - | ["SG2BD8CC369D73BB81"] |
dimension/measure 配置描述
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| alias | String | 是 | 维度别名 | - | 车型 |
| calculated | Boolean | 是 | 是否计算字段(false 否、true 是) | false | false |
| convert | Object | 是 | 数据类似转换(详细描述见下方) | - | - |
| format | Object | 是 | 维度数据格式化(详细描述见下方) | - | - |
| dataType | String | 是 | 维度数据类型(string 字符类型、int 整数类型、float 小数类型、timestamp 时间戳类型、date 日期类型、dateTime 日期时间类型) | string | string |
| dataTypeInDB | String | 是 | 数据库中类型 | - | varchar |
| expression | String | 是 | 计算维度表达式 | - | varchar |
| field | String | 是 | 维度字段名 | - | 车型 |
| hierarchyId | String | 是 | 层级 id | - | SGKETWH2V0UEIBHT5 |
| isHidden | Boolean | 是 | 是否隐藏字段 | false | false |
| pathIds | Array | 是 | 层级下包含的维度 id | - | ["SG2BD8CC369D73BB81"] |
| renameHash | String | 是 | 重命名 hash | - | SGKETWH2V0UEIBHT5 |
| tableId | String | 是 | 表 id | - | SGKETQL7WR7A35 |
| type | String | 是 | 字段类型(dimension 维度、measure 度量) | - | dimension |
convert 数据类型转换配置描述
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| dataType | String | 是 | 数据类型 | - | string |
| label | String | 是 | 标记为地理信息(geo 地名/区域、lng 经度、lat 维度,默认为空) | - | geo |
| original | String | 是 | 日期或时间的源数据格式(日期:YYYY-MM-DD、YYYY/MM/DD、YYYYMMDD、MM-DD-YYYY、MM/DD/YYYY 时间:YYYY-MM-DD HH:mm:ss、YYYY/MM/DD HH:mm:ss、YYYYMMDD HH:mm:ss、MM-DD-YYYY HH:mm:ss、MM/DD/YYYY HH:mm:ss) |
- | YYYY-MM-DD |
| type | String | 是 | 转换后数据类型 | - | string |
format 维度数据格式化配置描述
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| accuracy | String | 是 | 小数位数(-1 自动、1(1 位)、2(2 位)、3(3 位)、4(4 位)、5(5 位)、6(6 位)) | -1 | -1 |
| dataFormat | String | 是 | 数据格式化(percent 百分比(*100 %)、numFunc 数字转万/亿、timeFunc 秒转时分秒、byteFunc 字节转 MB/GB、bpsFunc 字节转 Mbps(带宽)) | - | percent |
| unit | String | 是 | 数据单位(%、千克、顿、元) | - | % |
limits 数据行权限配置描述
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| method | String | 是 | 设置方式,fixed 固定值、dynamic 动态值 | fixed | fixed |
| fixedLimits | Array | 否 | 固定值权限内容,与动态值权限内容二选一(详细描述见下方) | - | - |
| dynamicLimits | Array | 否 | 动态值权限内容,与固定值权限内容二选一(详细描述见下方) | - | - |
| othersLimit | Boolean | 否 | 未添加权限的用户默认拥有所有权限 | false | false |
fixedLimits 固定值权限配置描述
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| name | String | 是 | 权限名称 | - | - |
| rule | String | 是 | 权限规则, AND、OR | AND | AND |
| contents | Array | 否 | 权限内容(详细描述见下方) | - | - |
| limitUsers | Array | 否 | 授权的用户 | - | ["test2@baidu.com"] |
| limitRoles | Array | 否 | 授权的角色 | - | ["ro_ada15-1i6h64lc-g2vp2r"] |
contents 固定值权限内容配置描述
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| dimId | String | 是 | 所选字段 id | - | - |
| list | Array | 否 | 列表筛选 | - | ["车型 1"] |
| manual | Array | 否 | 手动筛选 | - | ["车型 1"] |
| mode | String | 否 | 筛选方式,list 列表筛选、manual 手动筛选 | - | - |
dynamicLimits 动态值权限内容配置描述
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
|---|---|---|---|---|---|
| dimId | String | 是 | 所选字段 id | - | SG2BD8CC369D73BB81 |
| userAttr | String | 是 | 用户属性 | - | attr_ada15-8tzmu2jo-p284kv |
返回正确 JSON 示例
Javascript
1{
2 data: {
3 config: {
4 dbHashes: ['d_ada15-3ormpgf7-p284kv'] // 数据源hash
5 },
6 databaseHashes: "d_ada15-3ormpgf7-p284kv" // 数据源hash
7 hash: "mld_ada15-2squl3ny-b1yqnx", // 数据模型的hash
8 hierarchy_level: 1, // 层级level
9 name: "层级测试3", // 数据模型名称
10 order_index: 85, // 同级的顺序编号
11 parent_id: 0, // 父元素id
12 remark: "", // 描述
13 source_hash: "", // 资源的hash
14 type: 1 // 数据模型是多层文件夹模式时,1表示数据模型,0表示文件夹
15 },
16 msg: '',
17 status: 0
18}
返回错误 JSON 示例
Javascript
1{
2 msg: '错误详情',
3 status: 499,
4 requestId: '',
5 code: 'NoSuchKey'
6}
编辑数据模型
接口简介
编辑数据模型
接口详情
请求地址
/openapi/v1/group/{groupKey}/dataModel/{dataModelHash}?__scp__={__scp__}
请求类型
PUT
请求参数
同创建数据模型,参考创建数据模型
返回正确 JSON 示例
Javascript
1{
2 data: {
3 config: {
4 dbHashes: ['d_ada15-3ormpgf7-p284kv'] // 数据源hash
5 },
6 databaseHashes: "d_ada15-3ormpgf7-p284kv" // 数据源hash
7 hash: "mld_ada15-2squl3ny-b1yqnx", // 数据模型的hash
8 hierarchy_level: 1, // 层级level
9 name: "层级测试3", // 数据模型名称
10 order_index: 85, // 同级的顺序编号
11 parent_id: 0, // 父元素id
12 remark: "", // 描述
13 source_hash: "", // 资源的hash
14 type: 1 // 数据模型是多层文件夹模式时,1表示数据模型,0表示文件夹
15 },
16 msg: '',
17 status: 0
18}
返回错误 JSON 示例
Javascript
1{
2 msg: '错误详情',
3 status: 499,
4 requestId: '',
5 code: 'NoSuchKey'
6}
删除数据模型
接口简介
删除数据模型
接口详情
请求地址
/openapi/v1/group/{groupKey}/dataModel/{dataModelHash}?__scp__={__scp__}
请求类型
DELETE
请求参数
无
返回正确 JSON 示例
Javascript
1{
2 data: {},
3 msg: '',
4 status: 0
5}
返回错误 JSON 示例
Javascript
1{
2 msg: '错误详情',
3 status: 499,
4 requestId: '',
5 code: 'NoSuchKey'
6}
获取数据模型列表
接口简介
获取数据模型列表
接口详情
请求地址
/openapi/v1/group/{groupKey}/dataModel/treeList?__scp__={__scp__}
请求类型
GET
请求参数
无
返回正确 JSON 示例
Javascript
1{
2 data: [
3 {
4 database: "sugar_internal_demo--MySQL 5.X", // 数据源名称
5 databaseHashes: "d_ada15-bs5raut1-9kqzkx", // 数据源hash
6 hash: "mld_ada15-9c2ccod1-46jxow4", // 数据模型hash
7 name: "BI", // 数据模型名称
8 type: 1, // 数据库类型
9 user: "test" // 用户名
10 }
11 ],
12 msg: '',
13 status: 0
14}
返回错误 JSON 示例
Javascript
1{
2 msg: '错误详情',
3 status: 499,
4 requestId: '',
5 code: 'NoSuchKey'
6}
