menu
Is this helpful?

# 数据表 API

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

# 功能介绍

  1. 数据表API,可以实现界面上数据表的部分操作,帮助实现针对数据表的自动化操作的需求;

  2. 数据表API,可以完成以下几个针对数据表的操作动作:

    • 创建数据表
    • 更新已有数据表
    • 关联数据表与主属性
    • 解除数据表与主属性关联关系
  3. 创建数据表:

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

  4. 更新已有数据表:

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

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

  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,首列为主键
```shell 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 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"
}'