简介
在PB表中批量添加数据,可指定插入方式。批量插入接口非原子接口,允许部分成功,部分失败,用户需根据返回值来判断成功的记录数或失败的记录数。
POST http://{Tcaplus_REST_URL}
请求语法
Http请求
#腾讯云控制台 RESTful Endpoint, ip:80, 端口默认80 http://172.17.0.22 #TcaplusDB本地docker版 RESTful Endpoint, ip:31001, 端口默认31001 http://9.135.8.93:31001
Http头
x-tcaplus-target:Tcaplus.BatchInsertRecords x-tcaplus-app-id:{string} x-tcaplus-zone-id:{string} x-tcaplus-protocol-version:{string} x-tcaplus-table-name:{string} x-tcaplus-pwd-md5:{string} x-tcaplus-result-flag:result_flag x-tcaplus-version:{string} x-tcaplus-data-version-check:{string} x-tcaplus-idl-type:protobuf
参数说明:
名称 | 是否必填 | 限制条件 | 说明 |
---|---|---|---|
x-tcaplus-target | 是 | 无 | Tcaplus.BatchInsertRecords |
x-tcaplus-version | 是 | 无 | Tcaplus3.50.0 |
x-tcaplus-app-id | 是 | 无 | 对应业务id编号(aka,集群接入id) |
x-tcaplus-zone-id | 是 | 无 | 对应zone编号(aka,表格组id) |
x-tcaplus-protocol-version | 是 | 无 | 对应protocol版本号,默认2.0 |
x-tcaplus-table-name | 是 | 无 | 对应表名 |
x-tcaplus-pwd-md5 | 是 | 无 | 业务密码(aka,集群访问密码),传入计算后的md5值 |
x-tcaplus-idl-type | 是 | 无 | protobuf |
x-tcaplus-result-flag | 否 | 无 | 0:操作成功后不返回数据1:操作成功后返回和请求一致的数据2:操作成功后返回本次update操作后的数据3:操作成功后返回tcapsvr端操作前的数据 |
x-tcaplus-data-version-check | 否 | 1:检测记录版本号,只有当该版本号与服务器端的版本号相同时,该版本号才会自增2:不检测记录版本号,强制把客户端的记录版本号写入到服务器中3:不检测记录版本号,将服务器端的版本号自增 | |
x-tcaplus-data-version | 否 | 具体的version值 |
示例:
x-tcaplus-target:Tcaplus.BatchInsertRecords x-tcaplus-app-id:3 x-tcaplus-zone-id:1 x-tcaplus-protocol-version:2.0 x-tcaplus-table-name:game_players x-tcaplus-pwd-md5:4e81984efccfb4982333aeb1ff7968d5 x-tcaplus-result-flag:2 x-tcaplus-version:Tcaplus3.50.0 x-tcaplus-data-version-check: 3 x-tcaplus-idl-type:protobuf
Data
使用json格式表示记录相关信息。参数说明:
-
MultiRecords: 记录集
-
Record: 必选,子记录数据
{ "MultiRecords": [{ "Record": { "player_id": 5, "player_name": "5", "player_email": "5", "game_server_id": 5, "login_timestamp": [], "logout_timestamp": [], "is_online": false, "pay": { "pay_id": 5, "amount": 5, "method": 5 } } }, { "Record": { "player_id": 5, "player_name": "5", "player_email": "55", "game_server_id": 55, "login_timestamp": [], "logout_timestamp": [], "is_online": false, "pay": { "pay_id": 55, "amount": 55, "method": 55 } } }, { "Record": { "player_id": 6, "player_name": "6", "player_email": "6", "game_server_id": 6, "login_timestamp": [], "logout_timestamp": [], "is_online": false, "pay": { "pay_id": 6, "amount": 6, "method": 6 } } }] }
完整请求示例
curl -i -XPOST -H 'x-tcaplus-target: Tcaplus.BatchInsertRecords' -H 'x-tcaplus-app-id: 70' -H 'x-tcaplus-zone-id: 1' -H 'x-tcaplus-protocol-version: 2.0' -H 'x-tcaplus-table-name: game_players' -H 'x-tcaplus-pwd-md5: 0972ad76decf4d11a69e2e0d9af335da' -H 'x-tcaplus-result-flag: 2' -H 'x-tcaplus-version: Tcaplus3.50.0' -H 'x-tcaplus-data-version-check: 3' -H 'x-tcaplus-idl-type: protobuf' http://172.17.32.17 -d '{ "MultiRecords": [{ "Record": { "player_id":5, "player_name":"5", "player_email":"5", "game_server_id":5, "login_timestamp":[], "logout_timestamp":[], "is_online":false, "pay": { "pay_id": 5, "amount": 5, "method": 5 } } }, { "Record": { "player_id":5, "player_name":"5", "player_email":"55", "game_server_id":55, "login_timestamp":[], "logout_timestamp":[], "is_online":false, "pay": { "pay_id": 55, "amount": 55, "method": 55 } } },{ "Record": { "player_id":6, "player_name":"6", "player_email":"6", "game_server_id":6, "login_timestamp":[], "logout_timestamp":[], "is_online":false, "pay": { "pay_id": 6, "amount": 6, "method": 6 } } }] }'
返回语法
返回参数说明
参数名 | 说明 |
---|---|
ErrorCode | 返回码 |
ErrorMsg | 返回信息 |
ReturnValues | 用户设置的保留数据,随请求到达 tcaplus 并由应答原样带回 |
SucceedRecords | json格式,成功的记录返回数据,详见文中Data部分 |
SucceedNum | 成功的记录数 |
FailedRecords | json格式,失败的记录返回数据,详见文中Data部分 |
FailedNum | 失败的记录数 |
返回示例
成功返回示例
{ "ErrorCode": 0, "ErrorMsg": "Succeed", "SucceedRecords": [{ "RecordVersion": 1, "Record": { "player_id": 5, "player_name": "5", "player_email": "5", "game_server_id": 5, "login_timestamp": [], "logout_timestamp": [], "is_online": false, "pay": { "pay_id": 5, "amount": 5, "method": 5 } } }, { "RecordVersion": 1, "Record": { "player_id": 5, "player_name": "5", "player_email": "55", "game_server_id": 55, "login_timestamp": [], "logout_timestamp": [], "is_online": false, "pay": { "pay_id": 55, "amount": 55, "method": 55 } } }, { "RecordVersion": 1, "Record": { "player_id": 6, "player_name": "6", "player_email": "6", "game_server_id": 6, "login_timestamp": [], "logout_timestamp": [], "is_online": false, "pay": { "pay_id": 6, "amount": 6, "method": 6 } } }], "SucceedNum": 3 }
失败返回示例
{ "ErrorCode": -1293, "ErrorMsg": "tcapsvr_fail_record_exist", "SucceedRecords": [], "SucceedNum": 0, "FailedRecords": [{ "Record": { "player_email": "5", "player_id": 5, "player_name": "5" } }, { "Record": { "player_email": "55", "player_id": 5, "player_name": "5" } }, { "Record": { "player_email": "6", "player_id": 6, "player_name": "6" } }], "FailedNum": 3 }
TcaplusDB是腾讯出品的分布式NoSQL数据库,存储和调度的代码完全自研。具备缓存+落地融合架构、PB级存储、毫秒级时延、无损水平扩展和复杂数据结构等特性。同时具备丰富的生态、便捷的迁移、极低的运维成本和五个九高可用等特点。客户覆盖游戏、互联网、政务、金融、制造和物联网等领域。