Aliyun OTS开放结构化数据服务
Aliyun OTS 是基于 Node.js 的 Aliyun OTS(Open Table Service) SDK。ots@0.4.0+
要求使用 protobuf
协议 API。注意:如果使用 XML
协议 API,请使用 ots<=0.3.0
。
开放结构化数据服务(Open Table Service,简称OTS)是一种支持海量结构化和半结构化数据存储与实时查询的服务。
功能:
-
提供表、视图、表组的创建、删除等基本功能
-
支持单条数据的插入、查询、修改、删除
-
支持批量数据的插入、查询、修改、删除
-
支持事务性操作,保证事务内操作集合的原子性
应用场景:
-
存储应用产生的海量数据,如电商交易信息、系统详细日志、科研原始记录等,单表数据量能达到百TB级别,支持分区存储
-
低延迟的实时数据查询,如实时交易处理、历史数据展示等
-
高并发数据访问,如拥有千万级甚至更多用户的网站交互信息、大量数据采集源的物联网应用等
支持API:
-
TableGroup
-
CreateTableGroup
-
DeleteTableGroup
-
ListTableGroup
-
-
Table
-
CreateTable
-
DeleteTable
-
GetTableMeta
-
ListTable
-
-
Transaction
-
StartTransaction
-
CommitTransaction
-
AbortTransaction
-
-
DataRow
-
PutRow
-
MultiPutRow (Max 100 rows)
-
DeleteRow
-
MultiDeleteRow (Max 100 rows)
-
BatchModifyRow (working)
-
GetRow
-
MultiGetRow (Max 10 rows) *
-
GetRowsByRange
-
GetRowsByOffset(removed)
-
安装
$ npm install ots# If you are still using XML protocol API, please use this: $ npm install ots@0.3.0
Usage
var ots = require('ots');var client = ots.createClient({ accessID: 'your accessID', accessKey: 'your accessKey'});// create a tableclient.createTable({ TableName: 'testdemo', PrimaryKey: [ {'Name': 'uid', 'Type': 'STRING'}, ], PagingKeyLen: 0, View: [ { 'Name': 'view1', 'PrimaryKey' : [ {'Name':'uid', 'Type':'STRING'}, {'Name':'flag', 'Type':'STRING'}, {'Name':'docid', 'Type':'STRING'}, ], 'Column' : [ {'Name':'updatetime', 'Type':'STRING'}, {'Name':'createtime', 'Type':'STRING'}, ], 'PagingKeyLen': 2 } ]}, function(err, result) { console.log(err, result);});// insert a rowclient.putRow('user', { Name: 'uid', Value: 'mk2' }, [ { Name: 'firstname', Value: 'yuan' }, { Name: 'lastname', Value: 'feng\' aerdeng' }, { Name: 'nickname', Value: '苏千' }, { Name: 'age', Value: 28 }, { Name: 'price', Value: 110.5 }, { Name: 'enable', Value: true }, { Name: 'man', Value: true }, { Name: 'female', Value: false }, { Name: 'createtime', Value: new Date().toJSON() }, ], function(err, result) { console.log(err, result);});// get a rowclient.getRow('user', { Name: 'uid', Value: 'mk2' }, function (err, row) { console.log(err, row);});
更多示例请看 test/client.test.js。