Aliyun OTS - 开放结构化数据服务


MIT
跨平台
JavaScript

软件简介

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