目录
此内容是否有帮助?

# 数据表 API

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

# 功能介绍

  1. 数据表API,可以实现界面上数据表的部分操作,帮助实现针对数据表的自动化操作的需求;
  2. 数据表API,可以完成以下几个针对数据表的操作动作:
  • 创建数据表
  • 更新已有数据表
  • 关联数据表与主属性
  • 解除数据表与主属性关联关系
  1. 创建数据表:

    可以创建未存在的数据表,并初次上传文件,指定数据表的各字段名称和类型;

  2. 更新已有数据表:

仅支持对数据表内容的更新,不支持对数据表字段的增删或类型修改;

可以进行全表内容的替换更新,或基于已有数据的增量更新;

  1. 关联数据表与主属性:

    支持将已有数据表与主属性进行关联,生成维度属性;

  2. 解除数据表与主属性关联关系:

支持解除已关联的数据表与主属性,删除已生成的维度属性;

注意

# 创建数据表

创建数据表的过程,分成两个步骤:

  • 进行文件的上传
  • 使用上传好的文件,创建数据表

# 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,首列为主键
curl --location --request POST 'http://xxx.com/xxx/open/datatable/uploadFile?projectId=390' \
--form 'file=@"/path/to/my_datatable.xls"'

出参

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
N
umber

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"
}'