# 数据表 API
调用方法请参见Open API文档中的调用方法描述。
# 功能介绍
数据表API,可以实现界面上数据表的部分操作,帮助实现针对数据表的自动化操作的需求;
数据表API,可以完成以下几个针对数据表的操作动作:
- 创建数据表
- 更新已有数据表
- 关联数据表与主属性
- 解除数据表与主属性关联关系
创建数据表:
可以创建未存在的数据表,并初次上传文件,指定数据表的各字段名称和类型;
更新已有数据表:
仅支持对数据表内容的更新,不支持对数据表字段的增删或类型修改;
可以进行全表内容的替换更新,或基于已有数据的增量更新;
关联数据表与主属性:
支持将已有数据表与主属性进行关联,生成维度属性;
解除数据表与主属性关联关系:
支持解除已关联的数据表与主属性,删除已生成的维度属性;
注意
- 数据表更多详情见:数据表
- 维度属性更多详情见:虚拟属性和维度表属性
# 创建数据表
创建数据表的过程,分成两个步骤:
- 进行文件的上传
- 使用上传好的文件,创建数据表
# 1.1 文件上传
文件上传的大小上限为100M,上传的文件类型支持excel和csv
接口URL
/open/datatable/uploadFile
请求方式
POST
Content-Type
multipart/form-data
请求Query参数
参数名 | 示例 | 参数类型 | 是否必填 | 参数位置 | 参数描述 |
---|---|---|---|---|---|
token | xxx | String | 是 | 查询密钥 | |
projectId | 0 | number | 是 | query | 待创建数据表所属项目ID。 |
file | "/path/to/my_datatable.xls" | file | 是 | body | multipart/form-data; 上传的表格的csv/excel,首列为主键 |
出参
fileId(该fileId用于下一个步骤,即创建数据表)
# 1.2 创建数据表
接口URL
/open/datatable/createDatatable
请求方式
POST
Content-Type
application/json
请求Query参数
参数名称 | 参数类型 | 是否必填 | 参数位置 | 说明 |
---|---|---|---|---|
token | String | 是 | 查询密钥 | |
projectId | number | 是 | query | 待创建数据表所属项目ID。 |
fileId | string | 是 | body | 上传文件的id |
datatableName | string | 是 | body | 数据表名称 小写字母开头,可含小写字母、数字、下划线 |
datatableColumns | array | 是 | body | 每一列的列名及对应的数据类型 列名只能以字母开头,包含字母、数字、和下划线“_”,长度最大为50个字符 |
columnName | string | 是 | 列名 | |
dataType | string | 是 | 列数据类型 |
代码示例
curl --location --request POST 'http://xxx.com/xxx/open/datatable/createDatatable?projectId=390' \
--header 'Content-Type: application/json' \
--data-raw '{
"fileId": "xxxxxxx",
"datatableName": "xxx",
"datatableColumns": [
{
"columnName": "aaa",
"dataType": "string"
}
]
}'
出参
参数名称 | 数据类型 | 说明 |
---|---|---|
succeededRowCount | number | 成功行数 |
failedRowCount | number | 失败行数 |
# 更新已有数据表
接口URL
/open/datatable/updateDatatable
请求方式
POST
Content-Type
application/json
请求Query参数
参数名称 | 数据类型 | 是否必填 | 参数位置 | 说明 |
---|---|---|---|---|
token | String | 是 | 查询密钥 | |
projectId | number | 是 | query | 待创建数据表所属项目ID。 |
datatableName | string | 是 | query | 数据表名称 |
updateType | enum(INCR_UPDATE/REPL_UPDATE) | 是 | query | 更新类型,INCR_UPDATE为增量更新,REPL_UPDATE为替换整表内容更新 |
file | file | 是 | body | multipart/form-data; 上传的表格的csv/excel,首列为主键 |
代码示例
curl -X POST 'http://xxx.com/open/datatable/updateDatatable?projectId=11&token=cn9C36LrkntInQl5r1ofK4es7neMGnQZOeGHb1SXzyhr431br4eBbBB2kWvMUAfJ&datatableName=city_dim&updateType=INCR_UPDATE'\
--form "file=@/path/to/file"
# 关联数据表与主属性
接口URL
/open/datatable/bindAssociatedProperty
请求方式
POST
Content-Type
application/json
请求Query参数
参数名称 | 数据类型 | 是否必填 | 参数位置 | 说明 |
---|---|---|---|---|
token | String | 是 | 查询密钥 | |
projectId | Number | 是 | query | 待创建数据表所属项目ID。 |
datatableName | String | 是 | body | 数据表名称 |
associatedPropertyName | String | 是 | body | 关联属性名称 |
associatedPropertyTableType | String(user/event) | 是 | body | 关联属性类型 |
timestampJoinFormat | Enum | 否 | body | 如果主属性为时间类型(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"后绑定维度属性 |
代码示例
curl --location --request POST 'http://xxx.com/xxx/open/datatable/bindAssociatedProperty?projectId=390' \
--header 'Content-Type: application/json' \
--data-raw '{
"datatableName": "xxxxxxx",
"associatedPropertyName": "aaa",
"associatedPropertyTableType": "user",
"timestampJoinFormat": "DATE_STR_YEAR"
}'
出参
参数名称 | 数据类型 | 说明 |
---|---|---|
dimensionProperties | Array | |
columnName | String | 维度属性名称 |
selectType | String | 维度表数据类型 |
# 解除数据表与主属性关联关系
接口URL
/open/datatable/unbindAssociatedProperty
请求方式
POST
Content-Type
application/json
请求Query参数
参数名称 | 数据类型 | 是否必填 | 参数位置 | 说明 |
---|---|---|---|---|
token | String | 是 | 查询密钥 | |
projectId | Number | 是 | query | 待创建数据表所属项目ID。 |
datatableName | String | 是 | body | 数据表名称 |
associatedPropertyName | String | 是 | body | 关联属性名称 |
associatedPropertyTableType | String(user/event) | 是 | body | 关联属性类型 |
代码示例
curl --location --request POST 'http://xxx.com/xxx/open/datatable/unbindAssociatedProperty?projectId=390' \
--header 'Content-Type: application/json' \
--data-raw '{
"datatableName": "xxxxxxx",
"associatedPropertyName": "aaa",
"associatedPropertyTableType": "user"
}'
← 维度表 API 生成SQL语句 API →