2018数据架构选型必读:3月数据库产品技术解析
DB-Engines数据库排行榜
一、RDBMS家族
Oracle发布18c Exadata版本
MySQL发布 5.7.21版本
MariaDB发布10.2.13版本
SQL Server解读:唯快不破
DB2发布v11.1.2.2版本
本期新秀:CitusDB发布7.2版本
PostgreSQL发布11预览版本
Greenplum发布5.5版本
二、NoSQL家族
MongoDB 4.0将正式支持ACID事务
Neo4j新版本发布
三、NewSQL家族
TiDB 2.0 RC1版本发布
CockroachDB 2.0版本即将发布
四、时间序列
InfluxDB新版本1.5.0发布
五、大数据生态圈
Hadoop发布三个版本
Druid发布0.12.0新版本
Apache HAWQ发布2.3.0.0 版本
六、国产数据库概览
本期新秀:人大金仓发布KingbaseES V8.0
本期新秀:浪潮发布K-DB 11g
本期新秀:Oushu Database发布3.1.0版本
OceanBase发布1.4.61版本
SequoiaDB发布企业版v2.8.3
七、推出DBAplus Newsletter的想法
八、感谢名单
为方便阅读、重点呈现,本期Newsletter(2018年3月)将对各个板块的内容进行精简。需要阅读全文的同学们可点击文末【阅读原文】或登录https://pan.baidu.com/s/1AgcPWpR0PIKrJcmerHsxIQ进行下载。
DB-Engines数据库排行榜
以下取自2018年3月的数据,具体信息可以参考http://db-engines.com/en/ranking/,数据仅供参考。
DB-Engines排名的数据依据5个不同的因素:
Google以及Bing搜索引擎的关键字搜索数量
Google Trends的搜索数量
Indeed网站中的职位搜索量
LinkedIn中提到关键字的个人资料数
Stackoverflow上相关的问题和关注者数
RDBMS家族
在2018年2月16日,Oracle宣布Database 18c发布,随后纠正了发布时间为3月1日,目前是在Oracle Cloud上一体机环境先发布出来。从版本的发布情况来看,自Oracle 12c开始已彻底抛弃了x86-32的平台,全面拥抱x86-64,其它平台的发布已经在计划中。
此外,Oracle提供了另外两种方式来体验新版本,一种是LiveSQL,链接是https://livesql.oracle.com,同时也可以通过dosc.oracle.com进行了解。
根据Oracle的产品线规划,18c开始的新版本将是年度版,版本将是发布年度的最后两位数字。原本计划作为12.2.0.2的版本就是现在发布中的18c,12.2.0.3将以19c的版本形式发布。预期Oracle数据库19将是12.2的最后一个版本(“长期支持”版本)。
MySQL 5.7.21(2018年1月15日发布)版本是目前的稳定版本,在此版本中针对审计、Docker、安全、插件、复制、参数配置和管理等方面做了更新和调整,并且修复了很多Bug,可见Oracle对MySQL的研发投入和重视。
主要的变化有:
增强了日志审计功能,支持压缩和加密日志的功能;
弃用和去除了一些配置参数,比如innodb_undo_tablespaces;
Performance Schema中的表setup_timers已过期,会在MySQL 8.0弃用 (Bug #18296337);
硬编码的内存也大小8K在ARM64和PowerPC平台过小,已优化调整(Bug #23014086,Bug #80818,Bug #26931470,Bug #87995)。
详情请参照:
Changes in MySQL 5.7.21 (2018-01-15, General Availability)
https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-21.html
MariaDB 10.2是目前稳定的版本。它是MariaDB 10.1的演进,具有几个亮点的全新功能,并具有MySQL 5.6和5.7的后端和重新实现的功能。
MariaDB官方在2018年3月12日发布了10.2.13版本,这里简要列举了部分的新特性。(https://mariadb.com/kb/en/library/mariadb-10213-release-notes/)
MyRocks存储引擎Beta版本;
更新InnoDB 至5.7.21;
Galera wsrep library 更新至25.3.23;
修复EXCHANGE PARTITION的bug;
Import tablespace后的MVCC读导致的崩溃问题修复;
外键的一些Bug修复。
需要注意的是Percona XtraBackup(从2.4开始)将不能与MariaDB 10.2(和MariaDB 10.1)压缩一起使用,但MariaDB 的分支机构 MariaDB Backup 可以进行压缩。它将包含在未来版本的MariaDB 10.2中。
具体信息可以参见:https://mariadb.com/kb/en/mariadb/mariadb-1026-release-notes/
SQL Server作为领先的数据平台,其性能、功能一直在不断提升和扩展。其中自 SQL Server 2016开始,SQL Server的性能是更上一层楼。
在TPC Benchmarks的相应测试中(TPC-E、TPC-H等)其在性能,单位成本上都是出类拔萃,自SQL Server 2016开始其在 HTAP(Hybrid Transactional and Analytical Processing)环境中的优秀表现也是值得称赞。如在内存数据库中每秒可处理120万batches请求,在使用480核CPU下对1800亿行的数据进行扫描所需时间小于20秒……
在应用的优化上,SQL Server也是在显著问题上有了一定的作为。如Adaptive Query Processing,解决基于预估偏差解决内存授予(图-1)、Join连接等问题;如开发同学遭遇的老大难参数嗅探问题(图-2)。
图-1
图-2
SQL Server运维小知识:SQL Server在面对大量的数据变化时,默认的统计信息更新策略可能导致不合理的预估以及触发统计信息更新的高消耗(影响性能)问题,为此可根据实际情况进行异步更新统计信息,并开始Trace Flag 2371,调整更新算法。
注:SQL Server 2016(compatibility level 130)默认使用2371更新算法。
DB2 v11.1.2.2发布以下功能:
列组织表并发插入性能增强;
在崩溃恢复期间,数据库可连接;
可通过SQL直接查询JSON数据;
HADR的表空间可以独立恢复;
数据库可以配置避免锁升级;
事务回滚性能增强;
对于PostgreSQL和MySQL联邦的功能增强。
作为拥有最强优化器的数据库,此次对于JSON数据格式的SQL支持以及对于开源数据库的联邦增强都属于不错的改善,如果能够选用插件式的存储引擎,也许能够在技术上具有更大的优势。DB2在数据库流行排行榜长期排在第五,而且在云上发力迟缓,不得不吐槽IBM的商业模式,同为商业数据库的SQL Server已经成为各个云厂商的必备品,也许值得学习。
CitusDB 是一个基于最新 PostgreSQL 构建的分布式数据库。CitusDB 可对 PostgreSQL 数据库进行伸缩以适合大数据的处理。可在集群中进行自动分片和碎片复制,运行在云端或者混合系统中。数据库的查询可在集群中进行分布式处理,充分利用集群中每个节点的计算能力。
CitusDB 可提升 PostgreSQL 的高并发性和 JSON 支持,可用作事务以及分析数据库场景。2018年初Citus 发布了7.2版本,主要更新内容有:
通用表格表达式(CTE);
复杂的子查询;
设置操作(UNION、INTERSECT...);
通过CTE加入分布式表和本地表;
包含 non-equality 子句的联结;
使用pg_partman进行分区管理自动化。
PostgreSQL 11 多个预览功能发布,单实例100亿TOP-K仅40秒,下面是一些测试的数据,仅供参考。
PostgreSQL最新存储扩展引擎zheap,计划加入到PG12。
http://amitkapila16.blogspot.com/2018/03/zheap-storage-engine-to-provide-better.html
点评:由于MVCC机制数据库会遗留数据的版本信息,因此需要定期进行VACUUM进行清理,这导致周期性的性能损耗。zheap存储引擎的到来,将可能为VACUUM画上句号,参考链接:GitHub:https://github.com/EnterpriseDB/zheap。
Greenplum 5.5的新特性如下:
支持了新的备份和恢复工具,gpbackup/gprestore工具提供了更好的备份和恢复的性能,以及更高的可靠性(相比于gpcrondump和gpdbrestore);
支持了PL/Container,优化了plcontainer工具,提高了易用性新函数;
改善了与Hadoop的生态集成,支持允许PXF向HDFS写文本和序列化文件;
提供了全新的resource group支持,提供了稳定性,为多租户的场景提供了资源隔离功能,支持对CPU和内存资源进行细粒度的管理,支持对并发任务的管理;
增加了新的版本支持,Greenplum企业版支持了SUSE12,同时Greenplum开源版支持了Ubuntu版本。
NoSQL家族
MongoDB于2月份宣布将在MongoDB的下个大版本4.0中推出ACID事务支持。此举将彻底改变NoSQL数据库不支持事务的格局。
MongoDB一直以来都定位为OLTP数据库,但多文档事务的缺乏使得业界总是在一些事务性较强的应用场景上把它排除在外。
此次事务的引入,可以认为MongoDB真正成为一个OLTP中的强有力的竞争者 ——其分布式架构可以支持海量大数据的增删改查,动态Schema的特点适合快速迭代开发流程,JSON文档模型则非常易于开发。4.0以后,事务功能将允许非常多的应用场景,例如:
电商:可以不再使用多种数据库(如MySQL+MongoDB),而直接在MongoDB里面管理账单+库存;
金融的转账、账号合并、交易消息推送等;
电信的话单计费等。
在没有事务支持之前,用户如果需要保证多行数据更新时的原子性,需要自己在应用里编写繁杂的二阶段提价代码来在APP端实现。启用4.0以后,可以以下列方式来保证经典转账场合数据的一致性:
MongoDB 4.0将在2018年夏天发布,但如果你现在就跃跃欲试,欢迎加入MongoDB的Beta试用项目:http://mongodb.com/transactions/。
Neo4j:从图形数据库到图形平台
Neo4j已经扩展成为一个全面性图形技术——添加了图形分析和工具的图新ETL平台、数据湖中图形数据的征用、图形可视化、发现和集成,并为开发者提供了一个新的企业版。
Neo4j 3.3版本针对所有版本进行了更新:
扩展的本地索引,支持Numeric属性,使得写和更新速度更快;
解释器速度提升了40%-70%;
数据导入操作节省了40%的内存,并为大型导入添加页面缓存。最好的情况是,节点ID是批量获取的,消除了讨厌的瓶颈;
内部测试表明,写入速度是比Neo4j 3.2版本快乐55%,比Neo4j 2.3版本提升了接近350%的速度;
数据科学家喜欢的图算法:包括PageRank算法,中心性(Centrality)算法和Pathfinding算法---他们都包含在APOC库中并且运行相当得快。
NewSQL家族
TiDB 是一款定位于在线事务处理/在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,模型参考了 Google 最新的分布式数据库 F1/Spanner。除了底层的 RocksDB 存储引擎之外,分布式 SQL 层、分布式 KV 存储引擎(TiKV)完全自主设计和研发。
TiDB 完全开源,兼容 MySQL 协议和语法,可以简单理解为一个可以无限水平扩展的 MySQL,并且提供分布式事务、跨节点 JOIN、吞吐和存储容量水平扩展、故障自恢复、高可用等优异的特性;对业务没有任何侵入性,简化开发,利于维护和平滑迁移。
TiDB 2.0 RC1 Release
2018 年 3 月 9 日,TiDB 发布 2.0 RC1 版。该版本在上一版的基础上,对 MySQL 兼容性、系统稳定性和优化器做了很多改进。
TiDB:
支持限制单条 SQL 语句使用内存的大小,减少程序 OOM 风险;
支持下推流式聚合算子到 TiKV;
支持配置文件的合法性检测。
PD:
优化检查 Region 状态的代码逻辑,提升程序性能;
优化异常情况下日志信息输出,便于调试;
修复监控中关于 TiKV 节点磁盘空间不足情况的统计。
TiKV:
修复 PD leader 切换, gRPC call 没被 cancel 的问题;
对重要配置进行保护,第一次设置之后不允许变更;
增加获取 Metrics 的 gRPC API。
更进一步请阅读:
https://github.com/pingcap/docs-cn
2017年10月份,CockroachDB发布了1.1版本:
支持CSV格式的数据导入,性能相比SQL导入有极大提升;
支持show queries,类似MySQL show processlist;
集群稳定规模从100个节点到128个节点;
企业版特性备份恢复相比1.0版本有17倍的性能提升。
从1.1版本之后,CockroachDB相继发布了1.1.1,1.1.2,1.1.3,1.1.4,1.1.5,即将发布2.0,相比1.0,CockroachDB主要做了如下改进:
企业版备份恢复功能与AWS S3深度结合;
支持JSON格式的数据类型;
支持UNION、INTERSECT、 EXCEPT 的分布式执行;
支持cancel掉正在执行的DDL;
在2.0中,CockroachDB即将支持Global Database,也就意味着CockroachDB可以支持跨多个国家部署,每个国家的用户可以就近访问本国的节点。
CockroachDB目前仍在根据TPCC的测试持续优化OLTP的性能,在欧洲和美国已经有多家企业使用CockroachDB,在国内也有多家公司在进行POC验证。
时间序列
InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。
它有三大特性:
Time Series (时间序列):你可以使用与时间有关的相关函数(如最大、最小、求和等);
Metrics(度量):你可以实时对大量数据进行计算;
Eevents(事件):它支持任意的事件数据。
IfnfluxDB在2018年3月6日发布了新版本,版本号1.5.0。这个版本是基于InfluxDB OSS的1.5版本。有关InFluxDB OSS发行版的更多信息,请参见InFluxDB OSS发行说明。
https://portal.influxdata.com/downloads
大数据生态圈
2017年12月份以来,Apache基金会进入高产期,一下子发布了Hadoop的三个版本,分别是12月12日发布的2.8.3版本,12月13日发布的3.0.0的GA版本以及12月14日发布的2.7.5版本。
更多的内容详见官方网站(http://hadoop.apache.org/docs/r3.0.0/index.html)或者上一期的Newsletter。
Druid0.12.0包含了超过40以上贡献者的上百项性能和稳定性提升以及Bug修复。在这一版本主要包含了对Kafka Indexing Service的改进,其它新特性如下:
优先级任务锁;
优化Segment的自动管理;
增加支持测试统计(A/B Testing)的Post Aggregator;
在datasketch中添加了获取分位数的Aggregator;
基本认证扩展。
详细发布文档见https://github.com/druid-io/druid/releases
Apache HAWQ 2.3.0.0 已于社区投票通过,并于2018年3月正式发布。该版本包含了如下重要更新:
可插拔式存储框架;
基于Hadoop TDE的数据加密保护;
HAWQ PXF 增加了对ORC文件的向量化读取支持;
深化了HAWQ与Ranger的集成:RPS高可用,Kerberos认证。
国产数据库概览
KingbaseES是北京人大金仓信息技术股份有限公司研发、具有自主知识产权的通用数据库产品。该产品面向事务处理类应用,兼顾各类数据分析类应用,可用于管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索等的承载数据库。
作为 KingbaseES 产品系列最新一代版本,KingbaseES V8 在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进,最近版本为2018年3月发布,它包括以下主要技术特性:
高度容错,稳定可靠:KingbaseES V8 提供多种容错机制,通过如数据备份、恢复、同步复制、多数据副本、文件多副本等高可用技术,实现99.999%的系统可用性。
应用迁移,简单高效:KingbaseES V8 一方面通过智能便捷的数据迁移工具,实现无损、快速数据迁移。另一方面,KingbaseES V8 还提供高度符合标准(如SQL、ODBC、JDBC等)、并兼容主流数据库(如Oracle、SQL Server、MySQL等)语法的服务器端、客户端应用开发接口,可最大限度地降低迁移成本。
人性设计,简单易用:KingbaseES V8版本提供了全新设计的集成开发环境(IDE)和集成管理平台,能有效降低数据库开发人员和管理人员的使用成本,提高开发和管理效率。
性能提升,扩展性强:针对企业业务增长带来的数据库并发处理压力,该版本支持并行计算框架,包括并行执行计划的代价估算。此外,提供索引覆盖等、基于读写分离的负载均衡技术,让企业能从容应对高负载大并发的业务。
浪潮 K-DB 11g 是浪潮信息推出的企业级数据库管理系统,具有高性能、高可用性、高兼容性与便捷管理等特性,是国产数据库中唯一做到真正磁盘共享集群的企业级数据库管理系统。
浪潮 K-DB 11g 全新的优秀架构设计
采用增强的进程结构
优化I/O进程性能
支持存储虚拟化技术
多种索引以及分区方式
国产高性能、高可用的企业级数据库管理系统
Oushu Database 是由北京偶数科技有限公司开发,基于 HAWQ 的增强版数据仓库(New Data Warehouse),核心研发人员多为 Apache Committer 与 PMC 成员。该产品采用了存储与计算分离技术架构,具有弹性,支持混合工作负载和高扩展性等优点。遵循 ANSI-SQL 标准,兼容 Oracle、Greenplum Database 和 PostgreSQL,提供PB级数据交互式查询能力,提供对主要 BI 工具的描述性分析和AI支持。
最新版本3.1.0于2018年3月6日晚正式发布,新版本对新执行器的性能进行了丰富和优化。
OceanBase 于2018年3月2日发布了1.4.61版本。
产品和市场都有较大的进展,详情如下:
2017年双十一,OceanBase 支撑了支付宝全部的核心业务:交易、支付、会员、账务,并创造了新的世界记录——4200万次每秒。
基于OceanBase跨城部署及原生机房搬迁能力的弹性扩展方案在双十一的准备过程中发挥了重要作用,该方案应用于蚂蚁核心业务在大促前后的扩容和缩容,不依赖第三方组件,通过数据库提供的变更副本类型及副本位置信息功能就可以做到,操作简便,弹入弹出速度快,节约成本。
新增Oracle兼容性新特性:Merge 功能、DML Returning功能。
SequoiaDB 是业界领先的金融级分布式数据库产品,功能上包括了分布式OLTP、分布式对象存储以及分布式NoSQL实现全类型数据的覆盖。SequoiaDB 巨杉数据库V2.8.3企业版于 2017年底发布,主要的提升是整个金融级功能的提升,特别是分布式架构下的异地容灾和同城双活。
此外,SequoiaDB 在2017年底也获得了Gartner认可,和阿里云、GBase一起成为首批入选Gartner数据库报告的中国企业,也是中国数据库领域的一个大的发展。
推出DBAplus Newsletter的想法
DBAplus Newsletter旨在向广大技术爱好者提供数据库行业的最新技术发展趋势,为社区的技术发展提供一个统一的发声平台。为此,我们策划了RDBMS、NoSQL、NewSQL、大数据、虚拟化、国产数据库等几个版块。
我们不以商业宣传为目的,不接受任何商业广告宣传,严格审查信息源的可信度和准确性,力争为大家提供一个纯净的技术学习环境,欢迎大家监督指正。
至于Newsletter发布的周期,目前计划是每三个月左右会做一次跟进,下期计划时间是2018年6月14日~6月25日,如果有相关的信息提供,请发送至邮箱:newsletter@dbaplus.cn 。
感谢名单
最后要感谢那些提供宝贵信息和建议的专家朋友,排名不分先后。
欢迎提供Newsletter信息
发送至邮箱:newsletter@dbaplus.cn
欢迎技术文章投稿
发送至邮箱:editor@dbaplus.cn
往期回顾:
↓别忘了点这里下载完整版Newsletter哦~