阅读更多

1顶
1踩

数据库

原创新闻 2015数据库年度盘点

2016-01-11 10:23 by 副主编 mengyidan1988 评论(1) 有5996人浏览
毫无疑问,数据库的专业化趋势变得愈加明显。这不但体现在专业的数据库类型适应专业的工作负载,还体现在专业的DBA提供专业的数据库服务上。

数据库的多样化

似乎在不久之前,业界还在争论到底是通用的数据库方向还是专业化的数据库方向代表未来。前者的典型案例就是Oracle,从一开始Oracle的路线就是AllinOne,即使收购了TimesTen,仍然坚持将其中的技术合并到Oracle中提供一个内存存储的选项。于是乎在Oracle最新版本中,内存选项成为了亮点。但是我们看到的明显的现象是什么呢?

CSDN的最新调查显示,已经有很大一部分比例的用户在其应用中混合采用了多种数据库解决方案。比如MongoDB和Redis获得了相当比例的用户。其实我觉得这个调查甚至没有反映更明显的趋势,因为它是按照用户数,而不是数据规模来的。相当比例的用户在分析型数据库领域采用了GreenPlum、Verica和Gbase8a等专业的MPP数据库,而因为用户群在调研范围外,所以未体现在调查报告之中。

除了关系数据库的两种主要形式:OLAP、OLTP,非关系型数据库的四种主要形式:文档、健值对、图和列式,以及科学数据库中的矩阵式和生物数据库之外,2015年在数据库的类型上专业化的趋势得到了大力的延展。比如时间序列数据库异军突起。OpenTSDB、Blueflood、kairosDB、influxDB均得到了长足的发展并嵌入到多个开源项目,其他一些数据库也开始考虑增强对时序数据的存储和访问能力,比如RapidDB。又比如支持全球分布式事务的数据库的发展。这得益于Google的论文提出了Spanner,一系列类似的数据库陆续被提出来。最近最火的当属TiDB,因为其创始人够牛、开源模式够帅。

毫无疑问,未来的发展趋势是专业的数据库支持专业的负载。这里负载既包括数据的存和取,也包括在数据库内的查询和处理逻辑。基因、地理信息、网络、视频、图像,不同负载的数据库(这里也许是广义的“数据”)会变得越加专业。

专业化分工是推动人类社会发展的动力,但前提是这种专业化分工是可以达到规模效应的,这就引出了第二个看点。

数据库的云化

反思一下为什么数据库会出现专业化的潮流,或者说为什么在现在出现而不是十多年前。当年通用数据库是一个多么响亮的招牌,数个863项目都与此相关。我认为主要的原因是随着软硬件和商业模式的发展,每一个专业化的数据库方向都有了足够规模,无论是“钱”上的规模还是“量”上的规模。

在CSDN2015软件开发者白皮书中,有一个调查非常有趣:“2015年数据库开发人员比去年大幅下降15%”。毫无疑问,数据库的使用量一定是增加了。那么问题来了,这些人去哪儿了呢?如果有一份数据可以补充在这里,也许我们会发现,AWS和阿里的云数据库的用量增加,与这些减少,不过现在数据库本身在实现DBaaS方面还有很多的不足,原生考虑了DBaaS的数据库系统目前只有Google系和阿里的OceanBase,其他无非是通过虚拟机或者容器的方式,实现一个数据库实例的快速安装和配置。真正要享受DBaaS带来的专业化分工的好处,必须是在数据库之上实现“虚拟化”,在数据库内部实现良好的多租户隔离、负载管理和计费等。在这方面现在大部分数据库都需要进行重新设计。

如果数据库的趋势是以云服务的方式提供,那么应用开发者如果保证不被Lockin,存储在云端数据库的数据是否还是自己的呢?这个问题,就要靠下一个趋势来解决。

数据库的开源化

回过头来看图1,其中开源数据库软件的已经超过闭源数据库软件了。开源作为软件业的一个趋势,更加证明了卖软件许可的商业模式是难以持续的,只有开源软件+专业化服务的模式才是王道。



而这种专业化服务,如果以本地安装服务的方式成本太高,难以为继,最理想的方式就是云服务模式。无论是针对中小企业的公有云服务还是面向大型、超大型企业的私有云服务。

数据库软件本身的开源提供了信任,无论是国家之间的信任还是企业之间的信任。2015年,一款经典的、重型的MPP数据库——GreenPlum已经开始了自己的开源之旅,从年初宣布此事,到第四季度正式将代码放到GitHub上为止,业界一直保持了持续的关注。相关的Meetup和社区快速的成长起来,据我所了解,某大厂正在基于此紧密开发自己的MPPDBaaS服务的人正相关。

云服务给应用开发者带来了极大的便利,优化、备份等事情不再需要专业的DBA来实现,即买即用非常方便。对于云服务商来说,原来分散的那么多“业余”DBA可以集合成一位专业的大牛DBA,专业化分工带来了效率的提升。这就是云服务的商业模式给提供者和使用者带来的价值。由此应用开发者得以使用一大堆专业的数据库来解决问题,而不再受限于技能只能选择自己熟悉的MySQL等。数据库的云化和专业化两个进程是同步的。

DBaaS,这个词汇在2015年进入了更多人的眼中。不仅是公有云的大厂们纷纷推出更多的数据库云服务。就连一些互联网大厂内部,也在普及自己的数据库云服务。比如小米近期的分享中提及已经实现了MySQL和Redis的数据库云化服务,通过RESTful的API为内部开发者快速提供数据库的实例。一些专业提供PaaS的公司,例如MoPaaS、Pivotal等,也将数据库服务作为首要为用户提供的服务之一。

2016的期待

2015年数据库业界尚未受到新硬件的冲击,无论是超融合架构、3DFlash还是可持久化的内存,似乎离数据库软件都还有一截距离。但我们需要牢记摩尔定律的魅力(或者威力),牢记我们现在的数据库软件大多是为了30年前的硬件架构所设计的,他们中的大部分代码比用他们的人的年纪还要长。硬件架构的革命性变化已经在眼前,随着数据库的专业化分工,原本耦合在一起的CPU、内存和外存已经不再适应多变的环境;机械式硬盘已经被电子盘所超越。一场血腥的创新数据库服务提供商对传统数据库提供商的正在上演,未来就在眼前,让我们拭目以待2016。

作者简介:

何鸿凌,北京亚信智慧数据大数据平台部总经理;曾任中国移动集团公司业务支撑系统部信息处副经理,高级工程师。工信部和人社部认证的高级程序员、系统分析师、网络分析师,TDWI会员。
  • 大小: 42 KB
1
1

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 技术领导之路_全面解决问题的途径

    技术领导之路_全面解决问题的途径中英文对照版,全新扫描完整版。

  • 《成为技术的领导者》读书笔记一

    第一章  关于领导力的定义 1、  领导力类似于性,永远都会有人谈论,能够激发起兴趣和感受。 2、  有领导相的人相信,凭他们的本能就够做好领导,而不需要锻炼,当然更不能依靠读书来获取 —-- 其实读书是很重要的一个部分。 3、  领导的职责就是奖励和惩罚。 4、  所谓的领导力,就是创造这样一个环境,每个人都能在其中发挥出更多的能力。(全面模型)   第二章  领导模型 一)领导力...

  • 《成为技术领导者》-阅读笔记-01

    《成为技术领导者》 领导力模型 M:激励或者惩罚: O:组织或者混乱: I:创新或者阻碍思维 心得 之前阅读过,记得一些案例,今天重新阅读,感触颇深,在内核健康项目中,我完完全全走的反例,难怪第一周做得相当难受。 一句话总结: 领导力:通过营造一个环境,激发大家的创造力,解决问题。 领导力模型 一个好的技术领导者,是不需要一个实际的“领导头衔” 他可以使用MOI模型来打造自己的团队,通过营造一个环境,激发大家的创造力,解决问题。 解决问题风格的人,总相信会有更好的方法解决。 .

  • 读《成为领导者》

    《成为领导者》,管理大师们的院长——本尼斯作品。   这本书翻来覆去地告诉我们一句话——领导者,我们也不知道怎么回事儿。   反复研读这部作品,我发现这只是一部当时似乎成名成家的人所说的只言片语的集合。当然,作者一定花了不少功夫去访问这些人。如果放在当今,我可以去访问各位名家的围脖,根据他们的只言片语织出一部类似的著作了,估计成本会小得多。   更可笑的是:此人似乎是苹果前总裁斯卡利的...

  • 读《成为技术领导者:掌握全面解决问题的方法》——技术领导力

    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

  • java jface table_How: 使用JFace TableViewer编辑表格(单元格编辑)

    tableViewer.setData(TABLEVIEWER_ID, tableViewer.toString()); Table table = tableViewer.getTable(); table.setLayoutData(layoutData); table.setHeaderVisible(tableEntity.isHeaderVisible()); table....

  • RCP开发之TableViewer 列的显示与隐藏

    RCP开发比Table更高级的TableViewer的使用。实现列的隐藏与显示

  • circos tableviewer 展示表格数据

    , 对于所有的行来说,都有E, F, G 3列,所以都有3种颜色,顺序都是一样的,按照每列的和,沿顺时针方向从小到大,从染色体长度可以看出来,从小到大依次为F, G,E; 对于所有的列而言,也是类似的,都有A,B,C,D 4行...

  • TableViewer的表格高度固定死

    1.TableViewer的表格高度固定死(过高使用滚动条) tv = new TableViewer(compositeParent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI); final Table table = tv.getTable(); final GridData gdTable = new...

  • 带有翻页功能的TableViewer.rar

    带有翻页功能的TableViewer.rar

  • 成为技术领导者-掌握全面解决问题的方法(清晰书签)

    成为技术领导者-掌握全面解决问题的方法(清晰书签) 完整版

  • 成为技术领导者(全)—温伯格

    成为技术领导者(全)—温伯格

  • 成为技术领导者-掌握全面解决问题的方法

    成为技术领导者-掌握全面解决问题的方法,软件从业者的思想启蒙巨著。清晰版,2015年7月第一版

  • 【讀書筆記】成为技术领导者

    【讀書筆記】成为技术领导者 SkySeraph Jan. 27th  2016 Email:skyseraph00@163.com 啰嗦   “成为技术领导者” 这本书,针对创业来说,是一本不错的参考书籍,详细讲解了领导方式模型,解决问题的领导方式,技术领导的成长和创新、组织和激励等等。个人觉得非常值得一读. 现将个人整理的笔记记录如下。  豆瓣读书: http://book.douba...

  • Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)

    NULL 博文链接:https://arizona.iteye.com/blog/526298

  • 表格(TableViewer类)

    第14章 表格(TableViewer类) TableViewer表格类是JFace组件中重要且典型的一个组件,其中涉及了JFace的众多重要概念:内容器、标签器、过滤器、排序器和修改器,这些概念对后面JFace组件特别是TreeViewer的学习...

  • tableviewer edit

    rcp tableviewer celleditor

  • tableviewer setdata to html id,tableViewer用法

    TableViewer使用说明类TableViewer在viewer包下,要在TableViewer这个类的表中显示数据时,要使用内容器和标签器这两个类。内容器(IStructuredContentProvider):它的作用是从集合类中提取对象(在数据库中这个对象是...

  • java jface table_如何按JFace TableViewer的多列排序 - java

    我正在尝试实现一个tableviewer,它可以根据用户单击列标题的顺序对值进行排序。例如如果存在三列column1,column2,column3,并且用户按以下顺序单击了column3,column2,column1,则对第3列的值的第一个行进行排序...

Global site tag (gtag.js) - Google Analytics