音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

阿里云的NoSQL存储服务OTS的应用分析
日期:2021-09-08 17:40:01   来源:脚本之家

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. 系统架构
2016131112520944.png (554×255)

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);自动检测系统中故障和热点,通过错误重试、针对长尾作业并发备份作业等方式,保证作业稳定可靠地完成。
集群监控和部署:对集群的状态和上层应用服务的运行状态和性能指标进行监控,对异常事件产生警报和记录;为运维人员提供整个飞天平台以及上层应用的部署和配置管理,支持在线集群扩容、缩容和应用服务的在线升级。

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    网站运营微信营销网络赚钱