Aliyun OTS 是基于 Node.js 的 Aliyun OTS(Open Table Service) SDK。ots@0.4.0+ 要求使用 protobuf 协议 API。 注意:如果使用 XML 协议 API,请使用 ots<=0.3.0。
ots@0.4.0+
protobuf
XML
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
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。