所有文档
menu

百度数据湖管理与分析平台 EDAP

表管理

表格信息

名称 类型 是否必须 描述
tableName String 名称,仅支持小写字母、数字和下划线,当前数据库下唯一,长度不大于32个字符
tableType String 表格类型,枚举值:管理表(MANAGED), 外部表(EXTERNAL)
creator String 创建者
createTime String 创建时间
lastModifyTime String 表最近更新时间
description String 描述信息, 长度不大于1024个字符
primaryKey List<String> 表格主键信息,目前只支持数据湖格式为hudi,iceberg时填写,其对应iceberg中的identifyfiled
storage Storage 数据存储格式
columns List<Column> 普通字段列表, 【可视化字段编辑】
partitions List<Partition> 分区字段列表,【可视化字段编辑】
properties Map<String, String> 表格属性,多条key-value组成
version Integer 表版本号
owner String 负责人名称
ownerType String 负责人类型,枚举值:{USER,ROLE ,GROUP}
authProperties Map<String, String> 安全认证信息

安全认证信息authProperties数据结构

名称 类型 是否必须 描述
accessKey String 平台访问密钥
secretKey String 平台访问私钥
sessionTokenKey String 平台会话级口令密钥
authType String 认证类型(UGI,KERBEROS)
user String 是(UGI) 用户,长度不超过128
passwd String 是(UGI) 密码,长度不超过128
host String 是(KERBEROS) kerberos kdc host,长度不超过128
principal String 是(KERBEROS) kerberos参与者 ,长度不超过128
keytab String 是(KERBEROS) keytab文件BASE64编码结果 ,长度不超过1M

表格存储属性(Storage)

管理表/外表属性说明(tableType=MANAGED/EXTERNAL)

名称 类型 是否必须 描述
format String 文件格式,枚举值见存储格式类型定义
locationId String 数据湖存储Id,指定后为table独有的location, tableType=MANAGED或tableType=EXTERNAL
relativePath String 相对路径,与locationId所指向的目录拼接为表实际存储路径,未指定是默认以表名生成
locationUri String 表格存储路径地址
fieldDelimiter String 分隔符,如:\t ,format=TEXTFILE时必填,否则不填
collectionDelimiter String 集合元素分隔符,字段类型为ARRAY,MAP,STRUCT时选填,其余情况不填
mapKeyDelimiter String MAP数据类型中key值分隔符
dataLakeType String 数据湖类型,目前支持iceberg,hudi,deltalake
hudiTableType String hudi表类型 枚举值:COW、MOR,当datalakeType为hudi时此项为必填项
hudiQueryTableType String hudi请求表类型 枚举值:RO(读优化表),RT(实时表),OR(原表) 当datalakeType为hudi时此项为必填项

存储格式类型定义(format)

枚举值 描述
AVRO AVRO
TEXTFILE 文本格式
ORC ORC
PARQUET PARQUET
RCFILE RCFILE

表格字段列表(Column)

名称 类型 是否必须 描述
name String 名称,仅支持小写字母、数字和下划线,以字母开头,长度不大于32个字符
type String 类型,见字段类型枚举值描述
nullable Boolean 是否能为空,枚举值:true,false
description String 描述信息,长度不大于1024个字符
precision Integer 精度
scale Integer 小数位
complexTypeDetail String 复杂数据(ARRAY,,MAP,STRUCT)类型详情
id String 数据湖格式为iceberg时,系统默认生成,其表示字段的唯一标识符

字段类型枚举值

枚举值 描述
TINYINT 微整型
SMALLINT 短整型
INT 整型
BIGINT 长整型
DOUBLE 双精度浮点数
FLOAT 浮点数
DECIMAL 精确数字类型
STRING 字符
VARCHAR 可变长度字符串
CHAR 固定长度字符串
BOOLEAN 布尔值
BYTES 二进制数据
DATE 日期,文本类型格式为:yyyy-MM-dd
TIMESTAMP 时间戳,文本类型格式为: yyyy-MM-dd HH:mm:ss.SSSSSSSSS
ARRAY 一组有序字段,ARRAY<data_type>
MAP 一组无序的键/值对,MAP<primitive_type, data_type>
STRUCT 一组命名的字段,STRUCT<col_name : data_type, ...>

表格分区信息(Partition)

名称 类型 是否必须 描述
name String 名称,仅支持小写字母、数字和下划线,以字母开头,长度不大于32个字符
type String 类型,见分区字段类型枚举值描述
precision Integer 精度
scale Integer 小数位
description String 描述信息,长度不大于1024个字符
function String 分区函数,数据湖格式为iceberg时设置,枚举值如结构体Transform Function所示
functionParameter Integer 分区函数选择bucket和truncated时填写

分区字段类型枚举值

枚举值 描述
TINYINT 微整型
SMALLINT 短整型
INT 整型
BIGINT 长整型
DOUBLE 双精度浮点数
FLOAT 浮点数
DECIMAL 精确数字类型
STRING 字符
VARCHAR 可变长度字符串
CHAR 固定长度字符串
BOOLEAN 布尔值
BYTES 二进制数据
DATE 日期,文本类型格式为:yyyy-MM-dd
TIMESTAMP 时间戳,文本类型格式为: yyyy-MM-dd HH:mm:ss.SSSSSSSSS

iceberg表格分区函数类型(Transform Function)

枚举值 描述 支持类型
year 按年分区 DATE,TIMESTAMP
month 按月分区 DATE,TIMESTAMP
day 按天分区 DATE,TIMESTAMP
hour 按小时分区 TIMESTAMP
bucket 按哈希值modN存储桶分区,填写格式bucket(N,col) TINYINT,SMALLINT,INT,BIGINT,DECIMAL,DATE,TIMESTAMP,STRING,BYTES
truncate 按值截断为L分区,填写格式truncate(L,col) TINYINT,SMALLINT,INT,BIGINT, DECIMAL,STRING

ListTables

接口说明

获取表信息列表

请求原型

GET /v1/database/${databaseName}/table

请求参数

字段 类型 位置 是否必须 描述
databaseName String URL 数据库名
pageNo Integer QueryString 当前页数
pageSize Integer QueryString 每页条数
tableTypes String QueryString 表的类型,枚举值{MANAGED,EXTERNAL},多个类型筛选时以逗号分隔每种类型。
namePattern String QueryString 搜索关键词

响应参数

名称 类型 描述
pageNo Integer 当前页数
pageSize Integer 每页条数
totalCount Integer 总数
tables List<TableBaseInfo> 表基本信息列表
TableBaseInfo
名称 类型 描述
tableName String 表名称
creator String 创建者
createTime String 创建时间
description String 描述信息
tableType String 表类型

错误码

公有云标准错误返回码

Code message HTTP状态码 描述
DatabaseNotFound Database not found. 404 数据库不存在
InternalError We encountered an internal error. Please try again. 500 服务器内不错误

请求示例

GET /v1/database/db_01/table?pageNo=1&pageSize=10 HTTP/1.1
Host: edap.bj.baidubce.com
Content-Length: 0

响应示例

HTTP/1.1 200 OK
Content-Length: xxxx
Content-Type: application/json
{
  "pageNo": 1,
  "pageSize": 10,
  "tables": [
    {
      "createTime": "2024-02-01T09:13:17Z",
      "creator": "root",
      "description": "complex table",
      "tableName": "tab1",
      "tableType": "MANAGED"
    },
    {
      "createTime": "2024-01-25T07:01:41Z",
      "creator": "root",
      "description": "this a external table",
      "tableName": "es_tab",
      "tableType": "EXTERNAL"
    }
  ],
  "totalCount": 2
}

ListTableNames

接口说明

获取表名称列表

请求原型

GET /v1/database/${databaseName}/table?name

请求参数

字段 类型 位置 是否必须 描述
databaseName String URL 数据库名
pageNo Integer QueryString 当前页数
pageSize Integer QueryString 每页条数
tableTypes String QueryString 表的类型,枚举值{MANAGED,EXTERNAL,VIRTUAL_VIEW,MATERIALIZED_VIEW,MAPPING},多个类型筛选时以逗号分隔每种类型。
namePattern String QueryString 搜索关键词

响应参数

名称 类型 描述
tableNames List<String> 表的名称列表
pageNo Integer 当前页数
pageSize Integer 每页条数
totalCount Integer 总数

错误码

公有云标准错误返回码

Code message HTTP状态码 描述
DatabaseNotFound Database not found. 404 数据库不存在
InternalError We encountered an internal error. Please try again. 500 服务器内不错误

请求示例

GET /v1/database/db_01/table?name&pageNo=1&pageSize=10 HTTP/1.1

Host: edap.bj.baidubce.com

Content-Length: 0

响应示例

HTTP/1.1 200 OK

Content-Length: xxxx

Content-Type: application/json

GetTable

接口说明

获取表信息

请求原型

GET /v1/database/${databaseName}/table/${tableName}

请求参数

名称 类型 位置 必须 描述
databaseName String URL 数据库名称
tableName String URL 表名称
needAuthProperties Boolean QueryString 是否需要返回安全认证信息, 默认false

响应参数

参见Table对象参数说明

错误码

公有云标准错误返回码

Code message HTTP状态码 描述
DatabaseNotFound Database not found. 404 数据库不存在
TableNotFound Table not found. 404 表不存在
InternalError We encountered an internal error. Please try again. 500 服务器内不错误

请求示例

GET /v1/database/db_01/table/tb_01?needAuthProperties=true HTTP/1.1

Host: edap.bj.baidubce.com

Content-Length:0

响应示例

HTTP/1.1 200 OK

Content-Length: xxxx

Content-Type: application/json
{
  "columns": [
    {
      "description": "id",
      "name": "id",
      "nullable": false,
      "type": "STRING"
    },
    {
      "complexTypeDetail": "<string,int>",
      "description": "map column",
      "name": "map_column",
      "nullable": false,
      "type": "MAP"
    }
  ],
  "createTime": "2024-02-01T09:13:17Z",
  "creator": "root",
  "description": "complex table",
  "lastModifyTime": "2024-02-01T09:13:17Z",
  "partitions": [
    {
      "description": "",
      "name": "par",
      "type": "STRING"
    }
  ],
  "properties": {
    "skip.header.line.count": "1"
  },
  "authProperties": {
    "accessKey": "key1",
    "secretKey": "key2",
    "sessionTokenKey": "key3"
  },
  "storage": {
    "collectionDelimiter": "|",
    "fieldDelimiter": ",",
    "format": "TEXTFILE",
    "mapKeyDelimiter": ":",
    "locationId": "loc1",
    "relativePath": "tb_01",
    "locationUri": "bos://edap/db_01/tb_01"
  },
  "tableName": "tb_01",
  "tableType": "MANAGED",
  "version": 1
}

CreateTable

接口说明

创建表

请求原型

POST /v1/database/${databaseName}/table

请求参数

字段 类型 位置 是否必须 描述
databaseName String URL 数据库名
tableName String Body 表名称,支持字母、数字和下划线,当前数据库下唯一,长度不大于32个字符
tableType String Body 表类型,枚举值:映射表(MAPPING) 管理表(MANAGED), 外部表(EXTERNAL), 视图(VIRTUAL_VIEW), 物化视图(MATERIALIZED_VIEW)
storage Storge Body 参考Stroge对象说明,不同表类型填写对应参数
columns Column Body 参考Column对象说明
partitions Partition Body 参考Partition对象说明
owner String Body 负责人名称
ownerType String Body 负责人类型,枚举值:{USER,ROLE ,GROUP}
properties Map Body 定义表的参数和属性的键值对
description String Body 描述信息,长度不大于1024个字符

响应参数

除公共响应参数外,无特殊响应。

错误码

公有云标准错误返回码

Code message HTTP状态码 描述
BadRequest Bad request, please check your request 400 请求体规则校验错误
AccessDenied Access Denied. 403 无权限
DatabaseNotFound Database not found. 404 数据库不存在
TableNotFound Table not found. 404 表不存在
TableAlreadyExist Table already exist. 409 表已存在
InternalError We encountered an internal error. Please try again. 500 服务器内不错误

请求示例

{
  "tableName": "tab1",
  "description": "this is a table",
  "tableType": "MANAGED",
  "partitions": [
    {
      "name": "c",
      "type": "STRING",
      "description": "c"
    }
  ],
  "storage": {
    "format": "PARQUET",
    "locationId": "loc",
    "relativePath": "tab1"
  },
  "columns": [
    {
      "name": "a",
      "type": "STRING",
      "description": "a",
      "nullable": false
    }
  ],
  "properties": {
    "skip.header.line.count": "1"
  }
}

响应示例

HTTP/1.1 204 No Content

Content-Length: 0

UpdateTable

接口说明

更新表格信息,可更新信息包括,表名,表描述信息,字段信息,分区信息,表参数, 数据存储格式

请求原型

PUT  /v1/database/${databaseName}/table/${tableName}

请求参数

字段 类型 位置 是否必须 描述
databaseName String URL 数据库名
tableName String URL 表名
tableName String Body 表名称,支持字母、数字和下划线,当前数据库下唯一,长度不大于32个字符
tableType String Body 表类型,枚举值:映射表(MAPPING) 管理表(MANAGED), 外部表(EXTERNAL), 视图(VIRTUAL_VIEW), 物化视图(MATERIALIZED_VIEW)
storage Storge Body 参考Stroge对象说明,不同表类型填写对应参数
columns Column Body 参考Column对象说明
partitions Partition Body 参考Partition对象说明
owner String Body 负责人名称
ownerType String Body 负责人类型,枚举值:{USER,ROLE ,GROUP}
properties Map Body 定义表的参数和属性的键值对
description String Body 描述信息,长度不大于1024个字符

响应参数

除公共响应参数外,无特殊响应。

错误码

公有云标准错误返回码

Code message HTTP状态码 描述
BadRequest Bad request, please check your request 400 请求体规则校验错误
AccessDenied Access Denied. 403 无权限
DatabaseNotFound Database not found. 404 数据库不存在
TableNotFound Table not found. 404 表不存在
TableAlreadyExist Table already exist. 409 表已存在
InternalError We encountered an internal error. Please try again. 500 服务器内不错误

请求示例

PUT /v1/database/db_01/table/tb_01 HTTP/1.1

Host: edap.bj.baidubce.com

Content-Length: xxx

Content-Type: application/json
{
  "tableName": "tb_02",
  "description": "描述信息",
  "storage": {
    "format": "TEXTFILE",
    "fieldDelimiter": "\t",
    "locationId": "lc_02",
    "relativePath": "tb_02"
  },
  "properties": {
    "transactional": "false",
    "skip.header.line.count": "1"
  },
  "columns": [
    {
      "name": "a",
      "type": "STRING",
      "description": "a",
      "nullable": false
    },
    {
      "name": "height",
      "type": "decimal",
      "nullable": true,
      "description": "高度",
      "precision": 18,
      "scale": 18
    }
  ],
  "partitions": [
    {
      "name": "c",
      "type": "STRING",
      "description": "c"
    }
  ]
}

响应示例

HTTP/1.1 204 No Content

Content-Length: 0

DeleteTable

接口说明

删除表,MANAGED类型表格在删除时,同时清空表真实数据。

请求原型

DELETE /v1/database/${databaseName}/table/${tableName}

请求参数

字段 类型 位置 是否必须 描述
databaseName String URL 数据库名
tableName String URL 表名

响应参数

除公共响应参数外,无特殊响应。

错误码

公有云标准错误返回码

Code message HTTP状态码 描述
BadRequest Bad request, please check your request 400 请求体规则校验错误
AccessDenied Access Denied. 403 无权限
DatabaseNotFound Database not found. 404 数据库不存在
TableNotFound Table not found. 404 表不存在
InternalError We encountered an internal error. Please try again. 500 服务器内不错误

请求示例

DELETE /v1/database/db_01/table/tb_01 HTTP/1.1

Host: edap.bj.baidubce.com

Content-Length: 0

响应示例

HTTP/1.1 204 No Content

Content-Length: 0

ListTableVersions

接口说明

获取表格版本信息列表

请求原型

GET /v1/database/${databaseName}/table/${tableName}?versionList

请求参数

名称 类型 位置 是否必须 描述
databaseName String URL 库名
tableName String URL 表名
pageNo Integer QueryString 当前页数
pageSize Integer QueryString 每页条数
startTime String QueryString 开始时间
endTime String QueryString 结束时间

响应参数

名称 类型 描述
pageNo Integer 当前页数
pageSize Integer 每页条数
totalCount Integer 总数
versions List<TableVersion> 表格版本信息
TableVersion
名称 类型 描述
version Int 表格版本号
creator String 创建者
createTime String 创建时间

错误码

公有云标准错误返回码

Code message HTTP状态码 描述
BadRequest Bad request, please check your request 400 请求体规则校验错误
DatabaseNotFound Database not found. 404 数据库不存在
TableNotFound Table not found. 404 表不存在
InternalError We encountered an internal error. Please try again. 500 服务器内不错误

请求示例

GET /v1/database/default/table/tb?versionList&pageNo=1&pageSize=10 HTTP/1.1

Host: edap.bj.baidubce.com

Content-Length: 0

响应示例

HTTP/1.1 200 OK

Content-Length: xxxx

Content-Type: application/json
{
  "pageNo": 1,
  "pageSize": 10,
  "totalCount": 2,
  "versions": [
    {
      "version": 0,
      "creator": "user_1",
      "createTime": "2019-06-01T23:00:10Z"
    },
    {
      "version": 1,
      "creator": "user_2",
      "createTime": "2020-06-01T23:00:10Z"
    }
  ]
}

GetTableByVersion

接口说明

获取指定版本的表格信息

请求原型

GET /v1/database/${databaseName}/table/${tableName}?version

请求参数

名称 类型 位置 是否必须 描述
databaseName String URL 库名
tableName String URL 表名
version Integer QueryString 表格版本号

响应参数

参见Table对象参数说明

错误码

公有云标准错误返回码

Code message HTTP状态码 描述
BadRequest Bad request, please check your request 400 请求体规则校验错误
DatabaseNotFound Database not found. 404 数据库不存在
TableNotFound Table not found. 404 表不存在
InternalError We encountered an internal error. Please try again. 500 服务器内不错误

请求示例

GET /v1/database/db_01/table/tb_01?version=2 HTTP/1.1

Host: edap.bj.baidubce.com

Content-Length:0

响应示例

HTTP/1.1 200 OK

Content-Length: xxxx

Content-Type: application/json
{
  "columns": [
    {
      "description": "id",
      "name": "id",
      "nullable": false,
      "type": "STRING"
    },
    {
      "complexTypeDetail": "<string,int>",
      "description": "map column",
      "name": "map_column",
      "nullable": false,
      "type": "MAP"
    }
  ],
  "createTime": "2024-02-01T09:13:17Z",
  "creator": "root",
  "description": "complex table",
  "lastModifyTime": "2024-02-01T09:13:17Z",
  "partitions": [
    {
      "description": "",
      "name": "par",
      "nullable": false,
      "type": "STRING"
    }
  ],
  "properties": {
    "skip.header.line.count": "1"
  },
  "storage": {
    "collectionDelimiter": "|",
    "fieldDelimiter": ",",
    "format": "TEXTFILE",
    "mapKeyDelimiter": ":",
    "locationId": "lc_02",
    "relativePath": "tb_01",
    "location": "bos://edap/db_01/tb_01"
  },
  "tableName": "tb_01",
  "tableType": "MANAGED",
  "version": 2
}
上一篇
函数
下一篇