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级别,支持分区存储
-
低延迟的实时数据查询,如实时交易处理、历史数据展示等
-
高并发数据访问,如拥有千万级甚至更多用户的网站交互信息、大量数据采集源的物联网应用等
-
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。