Aliyun OTS开放结构化数据服务

联合创作 · 2023-09-29 13:41

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


 

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报