NoSQL数据库做为数据库市场最重要的组成之一,它的一举一动都影响着成千上万的企业。本专场邀请了行业顶级的NoSQL核心成员与你们共同展望NoSQL数据库的将来, 阿里巴巴、MongoDB、Redisson、斗鱼等公司的技术大咖与你们共同分享了阿里云NoSQL数据库的企业级特性及行业解决方案。
阿里云智能事业群数据库产品事业部技术总监,MongoDB中国用户组杭州用户会主席杨成虎(叶翔)为你们深度剖析了Redis和MongoDB云数据库的技术。redis
Redis企业级数据库服务
Redis做为企业级数据库须要关注四个方面:算法
分布式:须要知足企业快速成长和下降成本的须要,实现弹性扩容,以及从主从模式变为集群模式。
兼容性:兼容性是永恒的话题,即便没法作到100%一致,但须要无限接近。
安全审计:安全在云环境中愈来愈重要,Redis开源版的安全审计能力比较薄弱,阿里云Redis对于这一点进行了增强。
数据同步:须要可以支持混合云部署,使得第三方云厂商、IDC与阿里云实现互通,以及数据迁移和转换,知足客户上云或者下云的灵活决策。
Redis原生的Cluster架构采用了Gossip协议实现路由表的同步,但这种架构在社区以及企业中并无快速流行起来。虽然其有无中心架构、组件依赖少等优势,但也存在不少问题,如运维困难,路由存在不肯定性,须要依赖Smart Client,而且不支持Multi-Key以及从主从模式迁移到集群模式,进而形成升级困难。数据库
为了解决上述问题,阿里云Redis数据库没有采用Gossip协议,而是引入了新的两个组件:Proxy和Config Server。阿里云Redis采用了配置中心对于路由表信息进行管理,能够经过Config Server进行智能化调度,Proxy则可以兼容非Smart Client,支持Multi-Key,并可以实现流量管理以及读写分离等。Proxy和Config Server虽然带来了架构的复杂性,但管理大规模复杂架构正是云厂商所擅长的。此外,这两个新组件所形成的额外成本也会被削平。经过这样的云服务架构使得用户可以将Redis从主从架构无缝迁移到集群版本。缓存
随着Redis Cluster云服务架构的延伸,出现了一个新概念——Redis云数据库企业分布式矩阵。这个矩阵能从纵向和横向进行扩展,纵向可以随着Shard的添加进行分片,从而实现弹性扩展;横向则可以实现读写分离,而且作了Group分组隔离。全局来看,还支持Memcache和Redis双协议,而且能实现集群、主备之间的平滑切换。安全
阿里云Redis的Proxy引入了Connection Session的概念,可以对于Connection实现更细粒度的管理,而且经过链接池实现了长链接复用,不只可以兼容多种协议,并经过C语言高性能代码也提高了短链接的性能。阿里云Redis的Proxy还具备热升级能力,能保证在服务不间断的状况下升级版本。服务器
阿里云Redis在整个数据链路上进行了逐层加密处理,支持了SSL、白名单、权限管理以及关键命令的禁用和审计等,加强了Redis的安全审计能力。Redis还提供了一些免费的开源工具,如同步工具RedisShake以及数据校验工具RedisFullCheck等。网络
而Redis做为内存型的缓存服务也存在不少挑战,好比容量受限,成本较高以及持久化能力弱等。基于以上问题,阿里云提供了混合存储的Redis版本,其目的在于为用户提供持久化、可安全存储的Redis服务。其实现依赖于底层的RocksDB,经过不断同步冷热Key,使得内存处于可控范围以内。数据结构
MongoDB做为企业级数据库须要关注四个方面,即安全审计、备份恢复、数据同步以及弹性伸缩。MongoDB的安全审计与Redis基本一致,进一步增长了TDE加密。MongoDB增长了物理备份,使得备份和恢复效率都有了大幅度提高,而且经过增量备份能力使得数据可以恢复到任意时间点。此外,在备份的基础之上,阿里云MongoDB还提供了备份验证能力。多线程
阿里云MongoDB还提供了诊断分析能力,并提供了MongoShake工具对数据进行同步。阿里云MongoDB基于RocksDB引擎实现了共享存储解决方案,能够实现存储弹性伸缩,秒级添加只读节点,并解决了oplog全局锁问题。固然,这样的方案也面对着几点挑战,如与WiredTiger的兼容性问题;Compaction带来的性能抖动;以及共享存储延迟稳定性。架构
MongoDB大中国区首席架构师唐建法为你们介绍了基于MongoDB的数据中台技术实现。
若是企业业务须要对接不一样的客户数据,而这些数据的结构、类型各不相同,可能须要花费数周甚至数月。不少已有的解决方案就是实现数据统一平台,将全部数据经过ETL抽取到数据平台上,这种方式的共性是“T+1”的方式批量采集汇总,作成数据集,以交互方式提供下载。但这种方式存在着平台数据滞后、响应速度慢、交互方式粗糙等问题。
数据中台从技术的角度进行定义就是“数据统一平台+数据即服务能力”。数据来源于业务,须要按照“T+0”方式采集,提供及时的数据。数据须要以API的服务化方式交付出去,而非打包。这使得数据中台可以对企业赖以生存的操做型系统提供支持,相比于分析型业务,操做型业务更加核心,更加可以提升企业竞争力,这也是数据中台火爆的缘由。
数据中台的定义就是包含企业实时全域数据的,主要面向操做型业务应用为主的数据服务技术平台。其概念起源自国内,存在众多流派,众说纷纭。咨询公司说数据中台是一种组织架构的转变,方案提供商则说数据中台是像Hadoop同样的技术平台产品,不一样的组织有不一样的出发点。
中国97%小微企业与数据中台基本不相关。腰部占3%的120万家大中型企业,可能有不少的开发人员但没有数据专家,另外还有少部分头部企业。对于腰部的大中企业而言,系统可能很少,而数据团队基本没有,没法快速构建完善的数据中台,可是数据孤岛的痛点、数据打通以及快速开发的需求倒是真实存在的。这些企业能够选用技术型架构,具体须要考虑的能力包括数据汇聚、数据治理以及建模、数据API服务,以及最关键的存储、海量、多模和高性能。
RDBMS、MPP、Hadoop、NoSQL以及NewSQL数据技术各有长短板,在构建中台时也能够作一些参考,企业须要根据自身实际状况进行考量。
以前,MongoDB用于大数据离线分析并非很好的选择,更多地是将其用于业务场景。而数据中台面向的就是业务应用场景,所以MongoDB成为了一个不错的选择,其具备较强的横向自动扩展能力,支持多模多态,而且API友好。此外,基于MongoDB实现建模所须要的工做远少于传统方式,可以下降成本。
此外,MongoDB还具备数据采集、可视化建模、无代码化API、数据可视化等数据中台构建所必须的能力。
以下图所示的是较为完整的MongoDB数据中台解决方案参考架构,从下到上依次是采集、存储处理以及数据服务三层。
基于MongoDB构建数据中台具备这样几个核心优点,即无缝横向扩展能力、多类型结构数据模型、逻辑模型即存储模型、异构实时数据库同步能力、无代码快速API发布能力以及简单、轻量和快速。
阿里巴巴资深技术专家朱国云(宗岱)为你们分享了阿里巴巴图数据库GDB的设计与实践。
图数据库是针对于图结构设计的数据库,而非图片数据库。什么是图结构呢?这是以社交网络模型为例介绍,该模型中存在人与人、人与论坛、人与帖子、帖子与论坛之间的关系,人、论坛、帖子就属于图中的点(即Vertex),点之间的关系就称之为边(即Edge),在点和边上会有一些属性(即Property)。
现在,一些优秀的社交应用会将多维数据存储到统一的图空间中来,进行存储、查询和分析,为用户带来更好的体验。近年来,数据量愈来愈大的同时,数据维度也逐渐增多,图数据库就是在这种背景下诞生的。
图数据库做为近年来数据库领域中发展最快的一类,与关系型数据库存在哪些差异呢?一般状况下,关系型数据库中须要经过建七八张表才能作到的模型,图数据库可以更加直观、天然地表现出来。此外,图数据库作关联查询的速度更快,还可以提供更多探索发现的能力。
前面提到的是属性图模型,在图数据领域还有一种RDF模型。二者的主要区别在于RDF的点和边上不能够有属性。
图数据库发展速度很快,所以种类也是特别多,主要能够分红四类,即知识图/RDF、分析图、图数据库、多模型图数据库。这些图数据库系统使用的主流查询语言大体有三类,即Neo4j主推的最先使用类SQL查询语言的Cypher、用于RDF上的描述语言SPARQL和目前支持最普遍的基于属性图的查询语言Gremlin。
GDB是一种图数据库,其主要处理高度链接数据的存储和查询,其支持了属性图模型和开源的TinkerPop Gremlin查询语言。与其余数据库不一样的是:GDB是云原生数据库,从一开始就建设在阿里云基础设施之上,所以可以作到弹性、实时和高可靠。
GDB脱胎于Tair Service中的TairGraph 子系统,后来其孵化出来,并放到阿里云上来专一地解决高度链接数据场景中的问题。基于Tair 10年的技术基础,GDB实现了高度优化的自研引擎,可以实现实时更新和秒级查询,而且完整地支持ACID事务,并经过多副本保障高可靠。此外,还作到了服务高可用,可以实现节点故障迅速转移;易运维,提供了开箱即用的能力;可视化,更利于分析数据的内在关系。
在架构层面,GDB为客户提供的是独享专属实例,这意味着资源独立,无须担忧抢占问题。HA方面采用了最经典主备架构,并提供只读节点来提高实时查询能力。GDB支持了Gremlin开源的TinkerPop SDK,为了实现每秒百万级点边过滤,GDB定制了专属的图友好数据库引擎,并在查询优化和并行执行等方面作了大量优化,还支持了事务和自动索引。在数据通道部分,GDB还提供了多种数据源的高效导入支持。
现在,GDB在社交网络、金融欺诈检测、实时推荐引擎、知识图谱以及网络/IT运营等场景中获得普遍应用,并且这些场景每每交织在一块儿。使用GDB可以将以前偏离线的场景作到实时或者准实时。
总结而言,在数据维度愈来愈多、数据相互关联愈来愈紧密的今天,GDB提供了一种有效的图存储方式,可以将多维数据很好地链接起来,并经过图查询、图算法把数据隐藏的价值实时地、智能地挖掘出来。
Redisson联合创始人顾睿为你们分享了Redisson从Java走向云原生的探索之路。
Redisson是架设在Redis基础上的一个Java驻内存数据网格。Redisson以Java接口方式而非命令的形式提供给你们,使用很是简单。其优点在于上手容易,只要可以使用Java基本就可以使用Redisson。此外,Redisson在设计时规避了多线程的问题,采用了线程安全的设计,同时引入了线程池和链接池的管理,在同步和异步的场景中都能选到适合的方式。
除了使用简单外,Redisson在功能上也提供了多种选择,可以支持31种分布式集合、14种分布式对象、8种分布式锁和分布式同步器以及5种分布式服务。
Redisson的架构主要分为两大块,包含Redisson客户端的链接管理、协议解析在内的基本功能和包括分布式结构、分布式中间件以及第三方功能支持在内的高级功能。
从Redisson架构角度来看,彷佛和Redis的理念相冲突。Redis设计理念强调简单,而Redisson设计却比较复杂;Redis提供了9种数据结构,界限清晰,而Redisson提供了约60种,界限比较模糊;Redis以命令形式面向用户,而Redisson却以Java API形式面向用户。看似分道扬镳,实则异曲同工,都是为了将复杂隐藏起来,将简单的使用方式提供给用户。
只支持Java是Redisson的优势,也是缺点。Java是Redisson的一个牢笼,这对于应用程序开发者而言是优点,而对于程序库开发者而言就是劣势。所以,Redisson一直在思考如何走出困境,拥抱其余的生态。
2016年,Redisson首先尝试了使用Vert.x框架,Vert.x的特色是集群运行环境、多语言交互性和基于成熟技术,而且Vert.x对开发者的限制比较少。所以,Redisson作了相关的实验,实现了Redisson在其余语言中的运行。可是这种方案学习成本很是大,而实际收益却不高。
2018年,Redisson注意到ORACLE Labs推出的GraalVM,GraalVM的底层是Java运行层,包括GraalVM和SubstrateVM,可让其余语言都可以编译融合并放入JVM中执行,同时保证相互沟通的桥梁。SubstrateVM是最吸引Redisson的点,它能够理解为用Java编写的嵌入式虚拟机,使得真正的跨平台和跨语言成为可能。
因而,Redisson开始了“逃跑之路”,实现了redisson-native。对于Java、Java+Warm UP以及Native三种方式的性能进行对比,可以看出redisson-native的性能具备明显的优点。
所以,这说明借助SubstrateVM逃离Java是很是好的解决方案,无需考虑JNI等相关问题,大部分操做只须要Java便可完成,学习成本较低,而且无需安装独立的JVM,生成文件也较小,云原生状况下性能较高,而且C调用很是简单。延伸开去,能够将Redisson带入到原生的二进制状态并进行二次封装,实现遍地开花。
阿里云智能事业群数据库产品事业部技术总监,Apache HBase PMC沈春辉(天梧)为你们分享了基于企业级HBase的大数据存储与处理。
进入大数据时代,数据量愈来愈多,数据种类也愈来愈丰富。数据量多这一点容易理解,而数据种类丰富则能够从三个维度来看:从静态维度,现在可以用数字化设备愈来愈多;从动态维度,设备、服务的运行状态愈来愈多;此外,还有数据再加工又产生了新数据,使得数据变得无穷无尽。面对这么多数量和种类的数据,若是没有价值就都是废墟。回顾这十年,你们对数据价值层面的认知愈来愈强烈,数据也愈来愈多地应用到生活中的各个场景。
随着对数据的应用,系统会面临不少挑战。大数据提出了“4V”,具体对于开发者而言,数据体量很是大意味着系统须要高扩展性;数据种类很是丰富意味着系统须要具备高灵活性,可以很好承载随时随地产生的新数据种类;数据时效性意味着系统具备高实时性,具备数据在线化能力;数据价值则意味着须要可以商业化,系统须要下降数据的存储和计算成本。
十多年前,Google首先遇到大数据问题,所以发表了Big Table论文。而HBase则是基于该论文设计的高可靠、高性能、可伸缩的开源大数据NoSQL系统。HBase放弃了对于关系型数据库事务的支持,重点构建扩展性能力、灵活性能力、实时响应能力以及对大致量数据存储低成本的能力。
阿里巴巴从2010年开始调研HBase,现在已经走过了近十个年头。随着这十年的逐步探索,阿里巴巴也丰富了HBase的使用场景,如消息,订单,Feed流,监控,大屏,轨迹,设备状态,AI存储,推荐,搜索,BI报表等。阿里巴巴本身使用HBase已经达到了很是大的体量和规模,也在产品上有了不少积累和沉淀,造成了现在云HBase+X-Pack的架构。单独依靠HBase数据库没法解决业务场景下的复杂问题,所以X-Pack基于云HBase在计算、检索、多模型上进行了扩展,包含了Spark、Phoenix、Solr以及OpenTSDB等,造成了稳定、易用、低成本的一站式大数据NoSQL平台。
云HBase+X-Pack架构实现了低成本的数据存储,将HBase运行在OSS上面,而且让总体接口模型复用HDFS能力。而且同时克服了OSS在面向文件场景下的问题,将本来面向对象的存储系统当作相似云盘来使用,使得存储成本下降3到7倍。此外,还基于HBase作到了一体化冷热分离,并使得业务无感知。
除了低成本存储以外,阿里云HBase还投入了大量的精力来优化性能。相比开源版本,阿里云HBase在各个性能指标上都有较大的提高。在这背后是不断的优化,如本来将基于HDFS Pipeline日志三副本转变向LLC机制,并将串行改成并行;将本来串行获取锁的方式变为并行;而且实现了10倍的Java GC优化。
最后一点,HBase属于大数据领域,必须结合不少组件,所以易用性也是你们最为迫切须要的。阿里云HBase实现了HBase和Spark的数据联动以及在线和离线的高效融合。此外,阿里内部也提供了一套易用的数据迁移系统,可以实现平滑在线搬迁。
不管是从稳定性、易用性仍是性能和成本上来讲,阿里云HBase都有很大的提高。将来,阿里云HBase还会经过共享块存储等技术进一步下降成本,也将会推出Serverless能力,而且会经过新硬件来加速计算,下降成本。
斗鱼技术总监马勇为你们分享了斗鱼直播的混合云架构演进之路。
斗鱼直播成立于2014年,是以游戏赛事为主的直播平台,平台签约国内Top100主播约50位,覆盖游戏主播Top10中8位,月活达1.5亿,2019年Q1付费用户约600万。斗鱼主要有三条业务特色:头部主播热点效应,流量水位波动较大,以及在线互动场景较多。目前的技术现状是天天业务调用量在千亿左右,Redis实例集群达2000以上,单个接口QPS达20万以上。
斗鱼直播从2016年开始保持每一年25%以上的月活增加,目前面对的技术困境主要有三点:(1)“炸鱼”,头部流量拖死全站房间;(2)服务器资源利用率低,平常水位大量服务器闲置;(3)Redis维护和容灾成本高。
斗鱼混合云架构历程主要分为三个阶段,在探索期作了独立业务上云的尝试;在成长期经过IDC+云的方式实现了横向流量扩容;在成熟期完成横向扩容以后实现对资源的最大化利用。
探索期的主要背景是IDC硬件资源呈现为长期紧缺状态,研发支撑跟不上业务发展,而公有云逐步成熟。所以在这一阶段,斗鱼尝试性选取了广告业务做为上云试点,而且取得了较大收益,系统的吞吐量直线上升,依赖稳定性显著提高,计算成本也大幅降低。可是这一模式的适用范围较窄,没法直接复制到其余业务场景,并且这一模式只适用于单一数据中心的状况,因而就进入了成长期。
成长期的背景是须要解决IDC到公有云的数据通道构建问题。针对这一问题,斗鱼和阿里云共同构建了RedisShake数据同步工具,支持了Redis全量、增量数据同步、支持云上、云下不一样数据中心的同步,还支持秒级数据监控。经过RedisFullCheck实现了数据多维度对比,基本能保证数据通路的数据一致性问题。这一阶段的收益在于实现了单一机房到多机房的数据扩展过程。这个阶段存在存在两点有待改进,即资源调度成本比较高和资源缺少精细化运营。
成熟期的主要优化方向是职责分离和弹性伸缩,优化方案包括四个方面,即流量分级、数据冷热分离、弹性伸缩和流量调度。其中调度策略包括了手动调度、定时调度、资源消耗调度和Hook调度。
对于混合云架构而言,斗鱼也总结了三点经验:
充分合理评估:云上计算网络与IDC差别较大,须要结合业务实际状况进行测试,避免产生影响。
投入产出比:混合云架构对资源冗余存在必定要求或者带来必定负面影响。
延时问题:企业应经过评估业务的重要性决定是否作混合云,虽然从数据中心到云有专线,但也存在必定延时。
阿里云智能高级技术专家曹龙(封神)为你们剖析了Cassandra与X-Pack Spark云数据库技术。
为何选择Cassandra呢?Cassandra是一种彻底没有中心的数据库,其每一个节点都是主节点,若是Kill掉其中任何一个节点都不会影响集群的QPS以及延时。除了Cassandra使用的P2P-QUORUM机制以外,还有HA机制、Raft以及单内存副本+共享存储等机制,而只有Cassandra可以作到几乎没有感知时间,所以Cassandra的Slogan就是“Always Online”。
Cassandra可以实现平滑扩展,一方面能够增长节点数据量,甚至扩展多个DC。另外一方面在云上还能够增长内存等。平滑扩展是Cassandra的重要特性,其余数据库每每难以作到。Cassandra还能够实现全球多DC,架构师能够根据业务自由适配。
对于学习成本而言,Cassandra提供相似于SQL语句的CQL,会MySQL的DBA或者开发人员基本上一天以内就能学会Cassandra。在安全方面,Cassandra和主流数据库同样提供了完善的认证以及鉴权体系。在多语言方面,Cassandra采用了非Thrift方式,采用客户端和服务端直连方式,而且支持主流的语言,而且具备良好的性能。最后一点,就是运维简单,Cassandra总体只有一个进程,没有Proxy、HA以ZK等角色节点。
Cassandra具备不少功能,比较特别的就是其索引支持物化视图、还支持SASI全文索引,而且集成了Lucene作更强的全文索引,以及支持CDC对接流式系统。
Cassandra的功能和生态比较丰富,其能够和其余组件进行搭配,好比Spark、Kafka、ES、Lucene、RocksDB等。
Cassandra在宽表领域排名全球第一,即便在国内缺少宣传的状况下排名也是靠前的。Cassandra的发展目前已经通过了十年,其将AWS的DynamoDB和Google的BigTable二者的长处融合在一块儿造成的。阿里巴巴也在2019年公测并发布了阿里云Cassandra数据库服务,而且对原生的Cassandra进行了多方面提高,好比实现了自动化运维、兼容DynamoDB、全链路优化性能提高100%等。
总结而言,云数据库Cassandra版是在线可靠的NoSQL可调一致性的分布式数据库服务,支持类SQL语法CQL,提供强大的分布式索引能力,提供安全、多活容灾、监控、备份恢复等企业级能力,兼容DynamoDB协议。
X-Pack Spark不只仅支持Cassandra,还可以支持HBase、Phoenix、RDS和MongoDB。X-Pack Spark不只具备强大的链接能力和归档能力,还可以经过ElasticNode下降计算和存储成本。
Cassandra+Spark可以应用于很是普遍的业务场景中,好比用户画像、Feed、小对象存储以及推荐平台等。
总结而言,将Spark与Cassandra的优势结合在一块儿可以知足多种业务场景的需求,可以实现Always Online、扩展性强、好用、功能和生态丰富以及Spark数据闭环。
阿里云双11亿元补贴提早领,进入抽取iPhone 11 Pro:https://www.aliyun.com/1111/2...
本文做者:Roin123
本文为云栖社区原创内容,未经容许不得转载。