数据模型

更新时间:2020-09-08

创建数据模型

接口简介

创建数据模型

接口详情

请求地址

/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())

{
  config: {                                 // 数据模型详情配置
    dbHashes: ["d_ada15-3ormpgf7-p284kv"],  // 数据源hash
    dimensionMenu: [                        // 维度菜单详情
      {
        menuId: "SGKETQL7WVXW5XM59",        // 维度菜单id(生成方式:'SG' + (+new Date()).toString(36) + Math.floor(Math.random() * 10000000 * (massive ? 10000 : 1)).toString(36).toUpperCase())
        name: "car_sale",                   // 维度名称
        nodes: ["SG2BD8CC369D73BB81"],      // 维度菜单下所有维度(具体配置在dimensions下,每个dimensions的key值对应nodes中的每个id)
        type: "menu"                        // 维度菜单类型(现在只支持menu类型)
      }
    ],
    dimensions: {                           // 维度详情
      SG2BD8CC369D73BB81: {                 // 单个维度节点详情
        alias: "车型",                       // 维度别名
        calculated: false,                  // 是否计算字段
        convert: {                          // 数据类型转换
          dataType: "",                     // 数据类型
          label: "",                        // 标记为地理信息(geo地名/区域、lng经度、lat维度,默认为空)
          original: "YYYY-MM-DD",           // 日期或时间的源数据格式(YYYY-MM-DD)
          type: ""                          // 转换后数据类型
        },
        dataType: "string",                 // 维度数据类型
        dataTypeInDB: "varchar",            // 数据库中类型
        expression: "",                     // 计算维度表达式
        field: "车型",                      // 维度字段名
        hierarchyId: "SGKETWH2V0UEIBHT5",  // 层级id
        isHidden: false,                   // 是否隐藏字段
        pathIds: [],                       // 层级下包含的维度id
        renameHash: "",                    // 重命名hash
        tableId: "SGKETQL7WR7A35",         // 表id
        type: "dimension"                  // 字段类型(dimension维度、measure度量)
      }
    },
    filters: {},                          // 数据模型的数据筛选
    limits: {
      method: "fixed",                    // 设置方式,fixed固定值、dynamic动态值
      fixedLimits: [                      // 固定值权限内容
        {
          contents: [                     // 权限内容
            {
              dimId: "SG2BD8CC369D73BB81",// 所选字段id
              list: ["车型1"],             // 列表筛选
              manual: ["车型1"],           // 手动筛选
              mode: "list"                // 筛选方式
            }
          ],
          limitRoles: ["ro_ada15-1i6h64lc-g2vp2r"], // 授权的角色
          limitUsers: ["test2@baidu.com"],  // 授权的用户
          name: "test",                    // 权限名称
          rule: "AND"                      // 权限规则, AND、OR
        }
      ],
      dynamicLimits: [                     // 动态值权限内容(固定权限内容二选一)
        {
          dimId: "SG2BD8CC369D73BB81",     // 所选字段id
          userAttr: "attr_ada15-8tzmu2jo-p284kv" // 用户属性
        }
      ],
      othersLimit: false                  // 未添加权限的用户默认拥有所有权限
    },
    measureMenu: [                        // 度量菜单详情(可参考度量菜单配置)
      {
        menuId: "SGKETQL7WVIFNFASG",
        name: "car_sale",
        nodes: ["SG835BE68135BB6338"],
        type: "menu"
      }
    ],
    measures: {                           // 度量详情(配置参考度量)
      SG835BE68135BB6338: {
        alias: "订单数量",
        calculated: false,
        convert: {
          dataType: "",
          label: "",
          original: "",
          type: ""
        },
        dataType: "int",
        dataTypeInDB: "int",
        defaultAggregator: "SUM"        // COUNT(计数)、COUNTD(计数(去重))、SUM(求和)、AVG(均值)、MAX(最大值)、MIN(最小值)
        expression: "",
        field: "订单数量",
        format: {                       // 数据格式化
          accuracy: -1,                 // 小数位数(-1自动、1(1位)、2(2位)、3(3位)、4(4位)、5(5位)、6(6位))
          dataFormat: "",               // 数据格式化(percent百分比(*100 %)、numFunc数字转万/亿、timeFunc秒转时分秒、byteFunc字节转MB/GB、bpsFunc字节转Mbps(带宽))
          unit: ""                      // 数据单位(%、千克、顿、元)
        },
        isHidden: false,
        tableId: "SGKETQL7WR7A35",
        type: "measure"
      }
    },
    synTable: false,                        // 是否同步表结构(true是、false否)
    tables: [                               // 表连接相关配置
      {
        customTableHash: "",                // 自定义表的hash
        dbHash: "d_ada15-3ormpgf7-p284kv",  // 数据源hash
        join: {                             // 表关联关系
          leftTableId: "",                  // 左表id
          on: [                             // 关联条件设置
            {
              leftField: "",                // 左侧关联字段
              rightField: ""                // 右侧关联字段
            }
          ],
          type: "inner",                   // 表连接方式(inner内连接、left左连接、full(full join),默认为内连接)
        },
        level: 1,                          // 表在第几层
        tableId: "SGKETQL7WR7A35",         // 表ID
        tableName: "car_sale"              // 表名
      }
    ]
  },
  databaseHash: "d_ada15-3ormpgf7-p284kv"   // 数据源hash
  name: "层级测试3",                          // 数据模型名称
  remark: "",                               // 描述
  source_hash: "",                          // 资源的hash
  type: 1                                   // 数据模型是多层文件夹模式时,1表示数据模型,0表示文件夹
}
参数名 类型 必填 描述 默认值 参考值
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 示例

{
  data: {
    config: {
      dbHashes: ['d_ada15-3ormpgf7-p284kv'] // 数据源hash
    },
    databaseHashes: "d_ada15-3ormpgf7-p284kv" // 数据源hash
    hash: "mld_ada15-2squl3ny-b1yqnx", // 数据模型的hash
    hierarchy_level: 1, // 层级level
    name: "层级测试3",  // 数据模型名称
    order_index: 85,  // 同级的顺序编号
    parent_id: 0,     // 父元素id
    remark: "",       // 描述
    source_hash: "",  // 资源的hash
    type: 1           // 数据模型是多层文件夹模式时,1表示数据模型,0表示文件夹
  },
  msg: '',
  status: 0
}

返回错误 JSON 示例

{
  msg: '错误详情',
  status: 499,
  requestId: '',
  code: 'NoSuchKey'
}

编辑数据模型

接口简介

编辑数据模型

接口详情

请求地址

/openapi/v1/group/{groupKey}/dataModel/{dataModelHash}?__scp__={__scp__}

请求类型

PUT

请求参数

同创建数据模型,参考创建数据模型

返回正确 JSON 示例

{
  data: {
    config: {
      dbHashes: ['d_ada15-3ormpgf7-p284kv'] // 数据源hash
    },
    databaseHashes: "d_ada15-3ormpgf7-p284kv" // 数据源hash
    hash: "mld_ada15-2squl3ny-b1yqnx", // 数据模型的hash
    hierarchy_level: 1, // 层级level
    name: "层级测试3",  // 数据模型名称
    order_index: 85,  // 同级的顺序编号
    parent_id: 0,     // 父元素id
    remark: "",       // 描述
    source_hash: "",  // 资源的hash
    type: 1           // 数据模型是多层文件夹模式时,1表示数据模型,0表示文件夹
  },
  msg: '',
  status: 0
}

返回错误 JSON 示例

{
  msg: '错误详情',
  status: 499,
  requestId: '',
  code: 'NoSuchKey'
}

删除数据模型

接口简介

删除数据模型

接口详情

请求地址

/openapi/v1/group/{groupKey}/dataModel/{dataModelHash}?__scp__={__scp__}

请求类型

DELETE

请求参数

返回正确 JSON 示例

{
  data: {},
  msg: '',
  status: 0
}

返回错误 JSON 示例

{
  msg: '错误详情',
  status: 499,
  requestId: '',
  code: 'NoSuchKey'
}

获取数据模型列表

接口简介

获取数据模型列表

接口详情

请求地址

/openapi/v1/group/{groupKey}/dataModel/treeList?__scp__={__scp__}

请求类型

GET

请求参数

返回正确 JSON 示例

{
  data: [
    {
      database: "sugar_internal_demo--MySQL 5.X",     // 数据源名称
      databaseHashes: "d_ada15-bs5raut1-9kqzkx",      // 数据源hash
      hash: "mld_ada15-9c2ccod1-46jxow4",             // 数据模型hash
      name: "BI",                                     // 数据模型名称
      type: 1,                                        // 数据库类型
      user: "test"                                    // 用户名
    }
  ],
  msg: '',
  status: 0
}

返回错误 JSON 示例

{
  msg: '错误详情',
  status: 499,
  requestId: '',
  code: 'NoSuchKey'
}
上一篇数据源

本页内容