这篇文章主要介绍了阿里云的NoSQL存储服务OTS的应用分析,OTS作为阿里巴巴开发的NoSQL存储技术服务现已面向用户商业化,需要的朋友可以参考下。

1. 概要 
 
OTS是构建在阿里云飞天分布式系统上的NoSQL存储服务,提供海量结构化数据的存储和实时访问。OTS以实例和表来组织数据,通过自动的数据分区和负载均衡技术,对应用提供规模(数据和访问)的无缝扩展。应用通过调用OTS API/SDK或者操作管理控制台来使用OTS服务。OTS服务具有以下几个主要的特点: 
 
规模可扩展:OTS具备可扩展的服务能力,随着应用表的数据量和访问量逐渐增大,OTS会自动进行数据分区的调整(partition split/merge)来满足应用业务规模的增长,并且保持稳定的性能。OTS提供预留读写吞吐率的机制来让应用配置表上的资源,应用通过主动配置和调整表上的预留读写吞吐率来应对业务访问量的变化,从而获得更有保障的服务。 
 
高可靠可用:OTS的数据存储在底层的分布式文件系统上,数据有3份拷贝,分别位于不同的容错区(机架或者数据中心),当硬件出现故障导致数据备份的损坏或丢失时,分布式文件系统会自动发现、复制并恢复数据备份,保障数据的安全可靠。OTS系统会自动检测硬件故障(如机器宕机或者网络中断)并进行数据分区的实时迁移,保障服务的高可用性。 
 
性能可预期:OTS服务底层采用全SSD存储数据,单行数据读写请求的延时保持在几个毫秒级别。应用通过配置预留读写吞吐率来预留资源,保障请求并发量和延时的稳定性。 
 
灵活的数据模型:OTS表中的数据无固定格式要求,每行的列数和列名可以不相同,列值支持5种数据类型:Integer、Boolean、Double、String、Binary。每一行的列可以动态增加或者删除,没有额外修改schema的代价。 
 
读写强一致性:相对于最终一致性而言,OTS提供强一致性的读写操作。OTS保证数据写入操作一旦执行完成,返回成功的结果,应用就能立即读到最新的数据。强一致性为应用提供了更好的使用体验。 
 
访问安全:OTS 对应用的每一次请求都进行身份认证和鉴权,以防止数据被非法用户或者未授权的用户访问,确保数据的安全性。通过和阿里云RAM服务的结合,OTS为应用提供帐号之间的授权访问。 
 
全托管服务:OTS对于应用而言是一个全托管的服务,应用程序无需关心表的数据分区的管理工作,集群硬件维护,软件升级,配置更新和调优,集群扩容等繁琐的运维任务,节省了应用开发和维护的成本,让用户能够专心在应用业务层的开发上。 
 
按量付费:OTS 根据应用预留和实际使用的资源进行计费,不需要在业务发展初期就进行过多的投入,对于众多的创业开发人员来说起步门槛低。OTS的收费项包括:1)预留CU费用;2)数据存储费用;3)下行流量的费用。 
 
2. 系统架构 

OTS服务的系统架构分为四层,最上层是应用程序,应用通过调用各种语言的SDK来和OTS服务进行交互;第二层是用户服务层,这一层完成的功能是对应用发送的请求进行协议处理、身份权限的校验、资源计量和请求到后端存储引擎节点的路由;第三层是存储引擎层,负责表分区的扩展和管理、负载均衡、存储数据和索引的管理、故障的处理以及高可用容灾等方面的;最下面一层是飞天操作系统,负责管理底层的硬件资源,向上提供统一的分布式存储(盘古)和计算(伏曦)。 
 
其中下面三层运行在阿里云数据中心的物理集群上,对应用程序透明,最上面一层是用户的程序,通常运行在阿里云的ECS服务器以获得更好的访问OTS的性能,当然也可以运行在用户自己的物理服务器或者移动设备上(我们目前正在开发移动端的OTS SDK,包括Android和iOS)。 
 
3. 功能介绍 
 
OTS产品提供以下RESTful API: 
 
1)CreateTable(创建表); 
2)DeleteTable(删除表); 
3)ListTable(列举表); 
4)DescribeTable(获取表信息); 
5)UpdateTable(更新表设置); 
6)GetRow(读取一行); 
7)PutRow(插入一行); 
8)UpdateRow(更新一行中的数据); 
9)DeleteRow(删除一行); 
10)BatchGetRow(批量读取行数据); 
11)BatchWriteRow(批量写入行数据); 
12)GetRange(读取范围内的数据); 
 
OTS提供了Java/Python/C#/PHP四种语言的SDK,方便应用快速开发基于OTS的应用。更多关于API/SDK的内容请参考:https://docs.aliyun.com/?spm=5176.383723.9.6.BASvKj#/pub/ots 
 
4. 场景案例; 
 
OTS服务目前被广泛的使用在阿里巴巴集团的各个业务中,积累了几个PB的数据,最大的一个应用每天会写入百TB级别的数据,比较典型的几个业务场景如下: 
 
阿里云邮箱的后台存储:邮件的标题、发件人、收件人、时间、状态等等(不包括邮件正文和附件),使用OTS表对用户的邮件按照各种规则排序,分页读取邮件,数据量近百TB,。 
 
来往/钉钉的后台存储:存储来往/钉钉应用的用户通讯录,实时消息推送,电话会议实时通知等等。 
 
 
阿里云监控的后台存储:存储海量的原始监控metric数据以及汇总数据。 
 
支付宝的微贷风控存储:存储淘宝买卖家的信用风控数据,用于每一笔花呗交易的风险评估 
 
阿里健康药品监管码存储:存储中国药品的监管码,用于查询药品的基本信息和追踪药品的流通情况,目前的存储量已达近千亿条记录,日均访问百亿次。 
 
 
此外,OTS还作为大规模分布式系统的基础组件被应用在阿里集团的多个产品架构中,例如大规模数据分析服务ODPS的meta存储和管理,大规模日志服务SLS的底层存储等。

PS:关于飞天平台
阿里云计算有限公司(简称“阿里云”)成立于2009年9月10日,致力于打造云计算的基础服务平台,注重为中小企业提供大规模、低成本、高可靠的云计算应用及服务。飞天开放平台(简称“飞天平台”或者“飞天”)是由阿里云自主研发完成的公共云计算平台,该平台所提供的服务于2011年7月28日在http://www.aliyun.com正式上线,推出了第一个云服务——弹性计算服务。

飞天平台内核包含的模块可以分为以下几部分。
分布式系统底层服务:提供分布式环境下所需要的协调服务、远程过程调用、安全管理和资源管理的服务。这些底层服务为上层的分布式文件系统、任务调度等模块提供支持。
分布式文件系统:提供一个海量的、可靠的、可扩展的数据存储服务,将集群中各个节点的存储能力聚集起来,并能够自动屏蔽软硬件故障,为用户提供不间断的数据访问服务;支持增量扩容和数据的自动平衡,提供类似于POSIX的用户空间文件访问API,支持随机读写和追加写的操作。
任务调度:为集群系统中的任务提供调度服务,同时支持强调响应速度的在线服务(Online Service)和强调处理数据吞吐量的离线任务(Batch Processing Job);自动检测系统中故障和热点,通过错误重试、针对长尾作业并发备份作业等方式,保证作业稳定可靠地完成。
集群监控和部署:对集群的状态和上层应用服务的运行状态和性能指标进行监控,对异常事件产生警报和记录;为运维人员提供整个飞天平台以及上层应用的部署和配置管理,支持在线集群扩容、缩容和应用服务的在线升级。

转载于:https://www.cnblogs.com/zjoch/p/6228201.html

阿里云的NoSQL存储服务OTS的应用分析相关推荐

  1. 如何使用阿里云国际对象存储服务自动备份

    异地备份是一项重要的安全措施.它们允许在发生硬件故障.意外删除或任何其他灾难性事件时还原数据.自动备份可提高备份过程的可靠性,并确保定期备份最近的数据. 有关阿里云国际对象存储服务自动备份的操作,今天 ...

  2. 阿里云OSS对象存储服务的使用

    使用阿里云对象OSS存储服务 由服务器进行上传 在阿里云官网进行开通OSS对象服务 创建你的Bucket 开启跨域功能 创建秘钥且添加权限以及服务器端配置 代码 由客户端进行上传(服务器Base64加 ...

  3. 阿里云OSS对象存储服务上传失败问题之一

    简介: OSS是阿里云提供一个对象存储服务,有着稳定高效的特点,但在操作时有些问题还是必须要注意一下的 今天在进行上传头像的操作时,发生了一个OSS连接时出现的问题,导致头像上传失败,问题的样式如下图 ...

  4. 阿里云OSS——对象存储服务(工具)

    阿里云OSS--对象存储服务(工具) 一.依赖 二.yaml配置 三.OSS工具类 四.demo演示 4.1 SpringBoot启动类 4.2 Controller接口 4.3 swagger测试 ...

  5. 配置阿里云OSS对象存储服务

    配置阿里云OSS对象存储服务 导入阿里云OSS依赖 <dependency><groupId>com.aliyun.oss</groupId><artifac ...

  6. 阿里云OSS(对象存储服务)简介

    最近公司想要使用阿里云OSS来存储精准客流图片,所以提前熟悉一下,做一个记录 注:阿里云官方文档已经很详细的阐述了OSS.以及开发流程,本文大多都是参考官方文档 OSS官方介绍地址:https://h ...

  7. .Net程序测试阿里云OSS开放存储服务

    阿里云官网有提供OSS相关的操作API文档和.Net程序的 SDK,也可以在这里下载OSS相关文件 但是API文档里面的都是通过http请求和响应的消息来描述如何操作OSS的 而一般在程序中需要的是O ...

  8. 开通阿里云的对象存储服务OSS

    1. 从菜单找到对象存储服务 2. 管理控制台 3. 创建Bucket 4. 获取对应SDK https://help.aliyun.com/document_detail/32013.html?sp ...

  9. 阿里云OSS | 对象存储服务快速入门 | 参考官方文档实现使用JavaSDK上传文件 | 本地上传与web上传案例

    参考文档 : 点击查看 文章目录 运行环境 一.OSS相关概念 1.1 Storage Class 存储类型 1.2 Bucket 存储空间 1.3 Object 对象 1.4 Region 地域 1 ...

最新文章

  1. Java异常处理12条军规
  2. linux中python解释器的配置_CentOS7配置Python3开发环境
  3. TortoiseSVN配置管理使用详解
  4. 比CopyMemory还要快的函数SuperCopyMemory
  5. java 舆情分析_基于Java实现网络舆情分析系统研究与实现.doc
  6. 全国行政区划代码表(天地图)
  7. ARM 汇编详解 -- 体系结构与编程
  8. 每天有数百人搜索App破解,开发者该怎么保护自己的手机应用呢?
  9. 你可能知道“道哥”,但你一定不知道“道哥”...
  10. TVS瞬态抑制二极管的工作原理和特点
  11. worldpress php部署,用XAMPP搭建本地主机(附worldpress的安装)
  12. android用什么更新应用程序,如何在Android上更新应用程序 教你如何更新安卓手机APP...
  13. java爬取今日头条_今日头条抓取街拍图片数据集
  14. php自定义微博尾巴,新浪微博怎么自定义小尾巴 新浪微博自定义小尾巴方法
  15. 【kafka实战】分区重分配可能出现的问题和排查问题思路(生产环境实战,附视频)
  16. 关于开发中怎么找问题并且解决思路(实操)
  17. springboot的parent标签
  18. 基本文本分类:电影评论文本分类
  19. R语言学习_回归预测
  20. excel表格损坏修复要注意事项

热门文章

  1. arduino点阵声音频谱_音频跳动:制造32分频音频频谱点阵
  2. 《指数基金投资指南》读书笔记_2022002
  3. [Mybatis]复杂环境下的SQL
  4. bat并行调用打包bat总结
  5. global 与 $GLOBALS用法
  6. navicat 1062报错
  7. jdk1.8新特性:stream流报错:stream has already been operated upon or closed
  8. Windows 10 微软官方下载工具
  9. 在c语言中整数除以0,整数除零在哪些平台上触发浮点异常?
  10. 项目源代码迁移到另一个gitlab的方法(保留原来的提交记录)