menu
Is this helpful?

# 维度表 API

调用方法请参见Open API文档中的调用方法描述。

# 创建维度表

注意

  • 请求体为维度表内容,具体见维度表创建参数createParam的配置
  • 默认最大文件限制为200M

接口URL

/open/dict-create?token=xxx&projectId=0

请求方式

POST

Content-Type

text/csv

请求Query参数

参数名 示例值 参数类型 是否必填 参数描述
token xxx String 查询密钥
projectId 0 Integer 项目 ID
createParam {"mainColumn":{"property":{"columnName":"channel","tableType":"event"}},"columns":[{"property":{"columnName":"channel_id","selectType":"string"}},{"property":{"columnName":"channel_name","columnDesc":"渠道类型","selectType":"string"}}]} String 创建维度列信息描述

维度表创建参数createParam的配置

创建维度属性

此处的主字段为channel,对应维度表中的第一列channel,需要添加的维度表属性为 channel_name

1.维表示例

  • 维表数据采用 csv 格式,第一列为关联字段,不会被创建成维度表属性,第二列开始为需要添加的维度表属性
  • 数据第一行为字段名,第二行开始为数据
channel,channel_name
1,龙腾1区
2,龙腾2区
3,龙腾3区

2.createParam 示例(给事件表的channel字段创建上述维度表)

columns 列表里,元素顺序必须与维表数据中列的顺序一致, 且命名一致。其中第一个元素(对应首列关联列)命名可以与父元素相同,或不同(若不同,只支持字母开头且仅包含字母数字下划线)。

{
  "mainColumn": {
    "property": {
      "columnName": "channel",
      "tableType": "event",
      "timestampJoinFormat": null
    }
  },
  "columns": [
    {
      "property": {
        "columnName": "channel",
        "selectType": "number"
      }
    },
    {
      "property": {
        "columnName": "channel_name",
        "columnDesc": "渠道类型",
        "selectType": "string"
      }
    }
  ]
}

3.createParam 字段解释

mainColumn 节点(创建维度表的主字段描述节点)

属性名称 属性描述
property 主属性(物理属性和虚拟属性均可以)
columnName 主属性字段名称
tableType 主属性所属表类型,event:事件属性;user:用户属性
timestampJoinFormat 如果主属性为时间类型(timestamp),支持按时间戳进行粒度计算后绑定维度属性

timestampJoinFormat支持以下粒度类型。

描述
DATE_STR_YEAR 属性将被格式化为"yyyy"字符串后绑定维度属性
DATE_STR_MONTH 属性将被格式化为"yyyy-MM"后绑定维度属性
DATE_STR_DAY 属性将被格式化为"yyyy-MM-dd"后绑定维度属性
DATE_STR_HOUR 属性将被格式化为"yyyy-MM-dd hh"后绑定维度属性
DATE_STR_MINUTE 属性将被格式化为"yyyy-MM-dd HH:mm"后绑定维度属性
DATE_STR_SECOND 属性将被格式化为"yyyy-MM-dd HH:mm:ss"后绑定维度属性
DATE_STR_MILLISECOND 属性将被格式化为"yyyy-MM-dd HH:mm:ss.SSS"后绑定维度属性

columns 列表(维度字段描述节点)

columns 列表里,元素顺序必须与维表数据中列的顺序一致。

属性名称 属性描述
property 维度字段属性列表
columnName 维度字段名称
columnDesc 维度字段描述,即字段的显示名称(可选)
selectType 维度字段类型:number 数值,bool 布尔,string 字符串,datetime 日期类型,array_string 列表(主键列,其余列不行)

4.创建结果

创建成功后,可找到属性名为channel@channel_name的维度表属性

成功响应示例

{
  "data": {
    "duplcatedMainKeyColumns": ["activity_type@type_test"],
    "duplcatedMainKeyLineNum": 2,
    "mainKeyErrorColumns": ["activity_type@type_test"],
    "mainKeyErrorLineNum": 3,
    "successLineNum": 27,
    "totalLineNum": 40,
    "typeErrorColumns": ["numwrong_test", "boolwrong_test"],
    "typeErrorLineNum": 8
  },
  "return_code": 0,
  "return_message": "success"
}
$$参数名 示例值 参数类型 参数描述
return_code 0 Integer 返回码
return_message success String 返回信息
data - Object 返回结果
data.duplcatedMainKeyColumns ["activity_type@type_test"] List 关联主字段重复的列名称
data.duplcatedMainKeyLineNum 2 Integer 关联主字段重复的行数(会自动丢弃)
data.mainKeyErrorColumns ["activity_type@type_test"] List 关联主字段解析错误的列名称
data.mainKeyErrorLineNum 3 Integer 关联主字段解析错误的行数(会自动丢弃)
data.successLineNum 27 Integer 成功的行数
data.totalLineNum 40 Integer 总行数
data.typeErrorColumns ["numwrong_test", "boolwrong_test"] List 其他字段类型错误的列名称
data.typeErrorLineNum 8 Integer 其他字段类型错误的行数(会置空)

错误响应示例

{
    "return_code": -1008,
    "return_message": "上传文件大小不能超过209715200字节"
}
参数名 示例值 参数类型 参数描述
return_code -1100 Integer 返回码
return_message 上传文件大小不能超过209715200字节 String 返回信息

curl 示例

curl --header 'Content-Type: text/csv' --data-binary '@test.csv' 'http://ta2:8992/open/dict-create?token=bTOzKiTIozG4e19FgXphcA8dDV3DIY8RwdHTO7aSnBsRqSNaIk19BnBMecJDWibD&projectId=377&createParam=%7B%22mainColumn%22%3A%7B%22property%22%3A%7B%22columnName%22%3A%22channel%22%2C%22tableType%22%3A%22event%22%7D%7D%2C%22columns%22%3A%5B%7B%22property%22%3A%7B%22columnName%22%3A%22channel_id%22%2C%22selectType%22%3A%22string%22%7D%7D%2C%7B%22property%22%3A%7B%22columnName%22%3A%22channel_name%22%2C%22columnDesc%22%3A%22%E6%B8%A0%E9%81%93%E7%B1%BB%E5%9E%8B%22%2C%22selectType%22%3A%22string%22%7D%7D%5D%7D'