github.com/qjfoidnh/BaiduPCS-Go@v0.0.0-20231011165705-caa18a3765f3/docs/structured_data_apis_overview.md (about) 1 # 结构化数据API说明 2 3 ## 结构化数据API简要说明 4 5 结构化数据API包括table操作API和record操作API。 6 7 * Table操作API: 8 9 是由开发者在使用结构化数据API开发应用时调用,包括创建、修改、删除、查看表信息及恢复表等接口; 10 11 * Record操作API: 12 13 即数据操作API,是由最终用户在使用基于PCS结构化数据API开发的应用时触发,第三方应用通过使用用户身份(以Access Token认证)在服务器端对用户数据进行增加、删除、修改、查询等系列操作。 14 15 ## 结构化数据基本概念 16 17 1. 表(table) 18 19 结构化数据以表为单位组织用户数据;表名和表中的索引由开发者定义。 20 21 2. 表名(tablename) 22 23 表的名字。表名可以由字母和下划线组成(a-z,A-Z,0-9,'_'), 长度为3-63个字符,必须字母开头;同一个应用中,不能重复使用同一表名。 24 25 3. 记录(record) 26 27 每一条结构化数据就是一个记录,一个表中可有多条记录。 28 29 4. 列(column) 30 31 结构中的每一个字段就是一列。列名可以由字母和下划线组成(a-z,A-Z,0-9,'_'), 长度为1-255个字符,必须字母开头。 32 33 5. 索引(index) 34 35 在表中的某些列上创建索引,可以提高查询速度。一个表中,最多可以定义5个索引,只能定义普通索引。 36 37 6. 限额(quota) 38 39 同一个表中同一个用户最多多少条数据,现在每个用户最多10000条数据。 40 41 ## 结构化数据功能列表 42 43 使用PCS结构化数据功能,可以轻松的完成应用上结构化数据的存储及同步等功能。 44 45 PCS结构化数据具有如下的特性: 46 47 * 提供Restful API; 48 49 * 数据灵活性大:定义表时,不需要完全确定表中的所有列,可以增加一列或减少一列而无需重新定义表。 50 51 * 在数据上动态增减索引:定义表时,无需完全确定所有的索引; 52 53 * 数据多端同步:结构化数据提供接口,支持数据多端同步; 54 55 * 对数据进行增加、删除、修改及查询; 56 57 * 回收站:数据删除后,10天内可以还原; 58 59 * 支持应用数据隔离:不同应用的数据可以支持物理隔离; 60 61 * 支持超大数据量: 62 * 一个应用可以创建5个表; 63 * 单个表没有数据总量限制; 64 * 单个表中,单个用户的数据量可以达到1万条; 65 * 用户数无限制。 66 67 ## 结构化数据存储限制 68 69 ### (1)全局限制: 70 71 每个记录的大小限制为1MB (服务器端会把记录做json_encode, 得到的大小为记录大小); 72 73 每个应用最多只能创建5个表; 74 75 批量的insert/update/delete/restore每次最多500条; 76 77 批量的select每次最多返回10000条记录。 78 79 ### (2)表级别限制(quota): 80 81 应用上的用户在表里的条目数限制(创建表的时候,每个表都有一个default_quota,以后用户在该表上都使用此default_quota,单个用户的quota可以通过quota接口设置)。 82 83 ## Record操作API说明 84 85 ### (1) insert、update、delete默认都支持批量操作,但是每次批量的record个数不能超过500; 86 87 ### (2) 数据操作API对用户需要保持最终一致性,即: 88 89 insert、update、delete操作不保证返回后即可select 出来,通常延迟小于1s; 90 91 update、delete操作不支持条件操作,即where子句的操作,如有需要请先select出来。 92 93 ## 字段说明 94 95 ### 字段定义 96 97 #### PCS结构化数据平台中,表中的字段支持如下类型: 98 99 | 字段类型 | 描述 | 100 | :- | :- | 101 | string | 字符串。 | 102 | int | 整型数字,64位有符号,范围为[-9223372036854775808, 9223372036854775807],超出范围自动转为float。 | 103 | float | 带小数点的数字。 | 104 | boolean | true 或者false。 | 105 | array | 数组,元素可以是string/number。 | 106 | object | 可以是一个json 对象。 | 107 | null | null | 108 109 #### 说明: 110 111 字段名必须符合以下标准: 112 113 可以是a-z、A-Z、0-9、'_'; 114 115 长度范围是[1, 255]; 116 117 必须字母开头。 118 119 ### 默认字段 120 121 #### 插入的记录将会有以下默认字段: 122 123 | 字段 | 类型 | 描述 | 124 | :- | :- | :- | 125 | _key | string | 全局唯一key i string(16)。 | 126 | _ctime | int | record创建时间。 | 127 | _mtime | int | record修改时间。 | 128 | _isdelete | int | 是否删除。 |