github.com/fzfile/BaiduPCS-Go@v0.0.0-20200606205115-4408961cf336/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 | 是否删除。 |