数据架构选型必读:4月数据库产品技术解析

dbaplus 2019-04-23 11:30:05
本期目录

DB-Engines数据库排行榜

新闻快讯

一、RDBMS家族

  • MySQL发布8.0.15正式版本

  • MariaDB 10.3版本新功能

  • PostgreSQL发布11.2版本 

二、NoSQL家族

  • Redis发布5.0.4版本

三、NewSQL家族

  • TiDB发布3.0 Beta.1版本 

  • SequoiaDB发布3.2版本

  • Apache Trafodion发布2.3.0版本 

  • CockroachDB发布V19.1.0-RC版本

四、大数据生态圈

  • Hadoop发布3.2.0版本 

  • ElasticSearch发布7.0.0版本

  • Greenplum发布6.0版本 

五、国产数据库概览

  • OceanBase发布2.1.1版本  

  • 达梦发布DM8正式版本

六、云数据库

  • TDSQL发布10.3.0正式版本

  • RadonDB发布1.0.6版本 

七、推出dbaplus Newsletter的想法

八、感谢名单

 

为方便阅读、重点呈现,本期Newsletter(2019年4月)将对各个板块的内容进行精简。需要阅读全文的同学可点击文末登录链接:https://pan.baidu.com/s/13Yk5qf7d60GjnCyDWhhBvw 后输入提取码: dfnj 进行下载。

 

DB-Engines数据库排行榜

 

以下取自2019年4月的数据,具体信息可以参考http://db-engines.com/en/ranking/,数据仅供参考。

 

 

DB-Engines排名的数据依据5个不同的因素:

 

  • Google以及Bing搜索引擎的关键字搜索数量

  • Google Trends的搜索数量

  • Indeed网站中的职位搜索量

  • LinkedIn中提到关键字的个人资料数

  • Stackoverflow上相关的问题和关注者数

 

新闻快讯

 

1、2018年12月5日,伯克利RISE实验室开源了一个多数据流实时分布式分析系统Confluo。它可以作为网络监控和诊断框架,也可以作为时序数据库和发布订阅消息系统:作为时序数据库,它的性能比其他时序数据库高出数倍,而作为发布消息订阅系统,它的吞吐量比Kafka高出4到10倍。

 

2、2019年1月中上旬,RedHat从其RHEL 8.0 Beta中移除了MongoDB,原因是2018年10月,MongoDB宣布其开源许可证从GNU AGPLv3切换到Server Side Public License (SSPL),希望从软件即服务或云计算业务上获取收入,但更改许可证正导致主要Linux发行版远离MongoDB。

 

2019年2月12日,红帽宣布Red Hat Satellite底层数据库将放弃MongoDB,全部改用PostgreSQL。

 

3、2019年1月16日,谷歌联合MIT、布朗大学的研究人员共同推出了新型数据库系统SageDB,并撰写了一篇论文详述SageDB的设计原理和性能表现。他们在论文中提出了一个观点:学习模型可以渗透到数据库系统的各个方面,“基于机器学习的组件可以完全取代数据库系统的核心组件,例如索引结构、排序算法,甚至是查询执行器。”

 

4、2019年1月24日,开源 Apache Kafka 项目背后的公司 Confluent 在官方博客宣布进行了 D 轮融资,价值约为 1.25 亿美元,公司总估值高达 25 亿美元。

 

5、2019年1月24日,微软收购 Citus Data,再次肯定对开源的承诺,并加速了Azure PostgreSQL的性能和扩展。

 

6、2019年2 月 19 日,Redis Labs 宣布获得新一轮 6000 万美元的融资,截至目前,Redis Labs 已累计筹资 1.46 亿美元,新一轮融资资金将用于加速市场开发战略,并继续投资 Redis 社区和产品开发。

 

2019年2月21日,Redis Labs 再次更改开源许可证以对抗云厂商,但不会对Redis的核心许可产生影响。

 

 

7、 2019年3月11日,F5 与 NGINX 宣布了一项最终协议,根据该协议,F5 将收购 NGINX 的所有已发行股票,总价值约为 6.7 亿美元。

 

8、2019年3月11日,英伟达接近达成以逾 70 亿美元现金收购 Mellanox Technologies Ltd 的交易。后者提供诸多数据中心产品,包括以太网交换机、芯片和InfiniBand,而Mellanox占据了InfiniBand领域超过70%的市场。

 

9、2019年3月19日,Istio发布1.1版本,重点关注并改进性能和可拓展性;数据平面和控制平面效率;命名空间隔离;多集群功能和可用性等领域。

 

10、2019年3月21日,阿里云图数据库GDB正式公测,用于处理高度连接数据查询与存储,支持属性图模型,并且全面兼容TinkerPop Gremlin 查询语言。

 

11、2019年3月,SequoiaDB巨杉数据库正式加入全球顶级开源社区云原生应用计算基金会 (Cloud Native Computing Foundation,以下简称CNCF),成为CNCF基金会会员,是中国最早加入的开源云原生数据库之一。同时,基于对开源事业的贡献,巨杉数据库也获CNCF邀请加入Linux基金会。

 

RDBMS家族

 

 

 
MySQL发布8.0.15正式版本

 

2019年2月1日,MySQL发布8.0.15正式版本。

 

除了修复bug,提升MySQL的质量之外,其中值得关注的新特性有:

 

  • InnoDB支持并行集群索引,改善CHECK TABLE检查表是否有错误的性能,它让我们能以多线程并行读集群索引。

  • 以前的MySQL在群组复制中当主库下线時,群组复制故障移转到新的主库,如果新的主库还在消化relay log中由原主库同步过来还没进入数据库的事务時就开始接受由客户端送来新的事务,会造成新的事务找不到这些还没反应到新的主库的变更,而找找不到要更新或删除的行,而使同步不一致的问题浮现。现在可以将group_replication_consistency 变量设为BEFORE_ON_PRIMARY_FAILOVER的使新主库會等到所有的在relay log中的事务都进入数据库后,才開始處理新的事务而解决上述一致性的问题。

  • 群组复制在IPv4之外,还支持IPv6,同时还支持组员之间混用IPv4和IPv6,以支持由IPv4升级到IPv6的过程。

  • ALTER TABLE命令可以就地更改字符集。

  • 静态二进制日志加密,现在可以在存储在磁盘上时对二进制和中继日志进行加密。加密是选择加入,可以通过系统变量binlog_encryption启用。使用此新功能,用户应能够指示数据库加密存储在磁盘上的二进制日志文件中的数据。而使数据文件有更周全的保护。

 

 
MariaDB 10.3版本新功能

 

自MariaDB10.2.7(含)以上版本,不再支持使用Percona XtraBackup工具做在线物理热备份。

 

MariaDB 10.1引入了MariaDB独有的功能,例如InnoDB页面压缩和静态数据加密。这些独家功能在MariaDB用户中非常受欢迎。但是,来自MySQL生态系统的现有备份解决方案(如Percona XtraBackup)不支持这些功能的完全备份功能。

 

为了满足用户的需求,MariaDB官方决定开发一个完全支持MariaDB独有功能的备份解决方案。它基于Percona XtraBackup 2.3.8版本改写扩展。

 

1、Mariabackup热备份工具

 

mariabackup工具使用(包含在二进制tar包bin目录下):

 

1)备份

shell> mariabackup --defaults-file=/etc/my.cnf -S /tmp/mysql3306.sock --backup --target-dir=/data/bak/ --user=root --password=123456

 

2)恢复备份期间增量数据(这一步类似innobackupex --apply-log)

shell> mariabackup --prepare --target-dir=/data/bak/

注:/data/bak/xtrabackup_binlog_pos_innodb文件,记录主库show master status的POS点。

 

3)恢复

步骤

  • 关闭mysqld进程

  • 确保datadir目录为空,你可以把原目录改个名字,再创建一个新的

  • 恢复

    shell> mariabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/data/bak/

  • 更改目录属性

    shell> chown -R mysql:mysql /var/lib/mysql/

 

如果你想在从库上备份,并且想记录从库的show slave status的POS点,以便后续再接一个从库,那么你可以这样搞:

 

shell> mariabackup --defaults-file=/etc/my.cnf -S /tmp/mysql3306.sock --backup --slave-info --safe-slave-backup --target-dir=/data/bak/ --user=root --password=123456

 

注:/data/bak/xtrabackup_slave_info文件,记录从库show slave status的POS点。

 

 

 
PostgreSQL发布11.2版本

 

2019年2月14日,PostgreSQL发布11.2版本。和关闭并行相比,并行计算36种场景平均性能提升20倍。

 

 

1、PostgreSQL插件动态

  • 分布式插件citus发布 8.2.1

    citus是PostgreSQL的一款sharding插件,目前国内苏宁、铁总、探探有较大量使用案例。

  • 地理信息插件postgis发布2.5.2

    2.5.2版本修复了23个BUG,同时首次依赖Proj 6。

  • 时序插件timescale发布1.2.2

    timescale是PostgreSQL的一款时序数据库插件,在IoT行业中有非常好的应用。

  • 流计算插件 pipelinedb 发布1.0.0.13

    Pipelinedb可以对高速写入的数据进行实时根据定义的聚合规则进行聚合(支持概率计算),实时根据定义的规则触发事件(支持事件处理函数的自定义)。可用于IoT,监控,FEED实时计算等场景。

 

2、PostgreSQL衍生开源产品动态

  • 专业图数据库agensgraph 发布 2.1.1版本

  • 适合OLAP和HTAP场景的mpp数据库gpdb发布6.0 beta版

 

NoSQL家族

 

 
Redis发布5.0.4版本

 

2019年3月18日,Redis发布5.0.4版本。该版本修复了许多在极端情况下可能导致Redis崩溃的bug,尤其是redis stream方面的应用。

 

该版本修复的一些重要bug如下:

  • 修复Hyperloglog代码错误可能导致崩溃的bug

  • 修复复制的bug,该错误在握手命令错误的情况下可能发生崩溃

  • 修复错用API导致内存泄漏的bug

  • 修复有序集合ZPOP* count为0问题

  • redis-check-aof 溢出问题解决

  • 改进LFU域管理

 

2019年2月中下旬,RediSQL 发布了 0.8.0 版本。

 

RediSQL 是一个 Redis 模块,为 Redis 提供完整的 SQL 功能。RediSQL支持所有Redis数据类型和功能,也支持SQL语句 SELECT / INSERT / UPDATE / DELETE 等等,以及一些嵌套的连接和数据仓库功能(例如外键约束)。

 

此版本引入了两个新命令:

 

  • REDISQL.QUERY.INTO[.NOW]

  • REDISQL.QUERY_STATEMENT.INTO[.NOW]

 

新命令的行为类似于REDISQL.QUERY和REDISQL.QUERY_STATEMENT,但它们将结果作为第一个参数XADD给 Redis 流。

 

 

NewSQL家族

 

 
TiDB发布3.0.0 Beta.1版本

 

2019年3月26日,TiDB发布3.0.0 Beta.1版。

其对应的TiDB-Ansible版本为 3.0.0 Beta。相比3.0.0 Beta版本,该版本对系统稳定性、易用性、功能、优化器、统计信息以及执行引擎做了很多改进。

 

TiDB源码:https://github.com/pingcap/tidb

TiKV 源码:https://github.com/tikv/tikv

更进一步文档请阅读:https://github.com/pingcap/docs-cn

 

 
SequoiaDB发布3.2版本 

 

2019年3月31日,SequoiaDB巨杉数据库发布3.2版。该版本在3.0.1的基础上进行了大幅度性能优化与提升,在分布式的交易型业务下,整体性能提升2~3倍,CPU消耗节省超过30%。

 

1、架构:

SequoiaDB巨杉数据库采用计算存储分离架构:

 

 

这种分布式架构一方面可以提供针对数据表的无限横向水平扩张,另一方面在计算层通过提供不同类型数据库实例的方式,100%兼容MySQL、PostgreSQL与SparkSQL协议与语法,原生支持跨表跨节点分布式事务能力,应用程序基本可以在零改动的基础上进行数据库迁移。

 

 

2、分布式存储层功能特点

  • 支持分布式事务能力;

  • 支持RU、RC、RR、以及Serializable四种隔离级别;

  • 支持读已提交的MVCC特性;

  • 在线数据Rebalance;

  • 多租户数据物理隔离能力;

  • HTAP交易分析业务的物理隔离能力;

  • 基于Raft协议的高可用能力;

  • 基于Logshipping机制的数据同步策略,支持同城双中心、同城三中心、两地三中心、三地五中心等多种容灾架构;

  • 支持同城双活业务能力;

  • 支持表级一致性控制策略;

 

3、分布式计算层功能特点

  • 100%支持原生 MySQL、PostgreSQL、SparkSQL 协议与语法;

  • 支持JSON、S3对象存储、以及Posix文件系统协议;

  • 计算节点提供类似Oracle RAC的高可用能力;

  • 支持MySQL与PostgreSQL视图、存储过程、触发器、自增字段等特性;

 

 

 
Apache Trafodion发布2.3.0版本

 

2019年2月,Apache Trafodion发布2.3.0正式版。

 

Apache Trafodion是一款基于Hadoop的,可同时支持事务交易和数据分析(HTAP - Hybrid Transactional and Analytical Processing)的融合型数据库产品。

 

其中值得关注的新功能有:

 

  • ODB的-CP命令支持bad选项,将无效记录存储至指定文件。

  • 开发了特定脚本,解决了回归测试的合并冲突问题。

  • 为CREATE TABLE语句新增HBASE_OPTIONS语法项,支持在HBase列族属性中指定存储策略。

  • 支持对SQL对象增加和查看注释。

  • 支持加载JSON文件。

  • 支持压缩的Hive TextFile。

  • 支持在指定字段默认定义时(创建表时)使用函数。

  • 重构了HDFS扫描Hive TextFile的实现。

 

 
CockroachDB发布V19.1.0 - RC.1版本

 

2019年2月25日,CockroachDB发布V19.1.0-RC版本。

 

新增特性如下:

 

1、内容特性

  • 就近二级索引优先:CockroachDB允许对索引单独设置Replication Zone,优化器现在可将索引的Replication Zone纳入代价估算的因子,优先选择物理上离规划执行计划节点最近的索引。

  • 静态加密:能够对节点磁盘上的数据提供透明加密。

 

2、企业级特性

  • CHANGEFEEDs支持与kafka的TLS连接

  • CHANGEFEEDs支持连接到Kafka接收器时的SASL / PLAIN身份验证

  • 丰富CHANGEFEEDs日志,以帮助调试连接问题

 

3、SQL特性

  • 支持在诊断报告中使用CTE(WITH ...)和子查询,以指导用户的产品规划。

  • CROSS JOIN支持HINT来指定JOIN方式(HASH / MERGE / LOOKUP )。

  • 添加了EXPLAIN(opt,env)选项,提供更多查询计划相关的信息。

  • 支持自动刷新每张表的统计信息。

  • CBO优化器将Leaseholder纳入索引选择的参考因素。

  • 修改pg_catalog中表的OID列的生成算法,保证跨版本升级时OID保持一致。

 

4、AdminUI变更

  • 优化CREATE STATISTICS后台任务的进度报告。

  • Summary bar中的Queries per second现仅汇总SQL Queries和Node Map中显示的查询类型。

  • 默认情况下,Jobs页面不再显示自动刷新统计信息的任务。可在Type菜单中选择Auto-Statistics Creation查看。

 

5、性能提升

  • IMPORT数据支持预计算统计信息,提高TPC-C性能。

  • 降低统计信息自动刷新频率,减少对性能影响。

  • 优化对Range Predicates的选择性评估。

 

6、Build改变

  • 编译CockroachDB所需的最低Go版本升级为1.11.6。

 

 

大数据生态圈

 

 
Hadoop发布3.2.0版本

 

2019年1月8日,Hadoop发布了3.2.0版本。

 

相比于3.1版本进行了大量的功能性的增强。不过,此版本是3.2版本系列中的第一个版本,目前还不能正常使用,也不能投入生产。

 

版本更新主要包括:

 

1、Yarn中对节点属性的支持

节点属性帮助各个节点基于自身的属性,打上多样化的标签,然后基于这些标签,进行资源的分配。

 

2、Yarn上使用Hadoop Submarine

Hadoop Submarine的目的是让分布式深度学习/机器学习应用程序更容易启动、管理和监控,这些应用程序是在TensorFlow等框架中创建的。

 

这些改进使得在Apache Hadoop YARN上运行分布式深度学习/机器学习应用程序变得如同在本地运行此类应用程序一样容易。用户将能够在同一群集上运行的其他ETL/streaming运行深度学习工作负载。

 

3、Namenode中的存储策略Satisfier

在文件/目录上设置存储策略,支持 HDFS上的应用程序在不同的存储类型之间移动块。

 

4、ABFS文件系统连接器

支持最新的微软 Azure Datalake Gen2 Storage。

 

5、增强型S3A连接器

支持增强型S3A连接器,包括更好地恢复受限制的AWS的 S3和DynamoDB的IO。

 

6、长期运行服务升级支持

支持通过Yarn的源生API或者客户端,对上时间运行的容器,进行无缝的升级。

 

 
ElasticSearch发布7.0.0版本

 

2019年4月11日,ElasticSearch发布7.0.0版本。

 

其中值得关注的更新包括:

 

1、查询相关性速度优化

Weak-AND算法在Term Query查询场景有3700%的性能提升。如下所示,除了Term检索,Fuzzy、Phrase、Bool And、Bool OR都有大幅的性能提升:

 

 

 

2、间隔查询(Intervals queries)

某些搜索用例(例如,法律和专利搜索)引入了查找单词或短语彼此相距一定距离的记录的需要。与跨度查询相比,间隔查询对边缘情况的适应性更强。

 

3、引入新的集群协调子系统

移除 minimum_master_nodes 参数,让 Elasticsearch 自己选择可以形成仲裁的节点。

 

4、升级 Elasticsearch 7.0 ,不再内存溢出

 

5、时间戳纳秒级支持,提升数据精度

利用纳秒精度支持加强时间序列用例。

 

 

 
Greenplum发布6.0版本

 

 

2019年3月18日,Greenplum发布6.0版本。

 

新增特性:

 

  • Postgres内核升级到9.4

  • HTAP(OLAP + OLTP)性能大幅提升

  • 支持复制表(Replicated Table)

  • 在线扩容(Online expand)和一致性哈希(Jump Consistent Hash)

  • 磁盘配额(Disk Quota)

  • 灵活数据分布

  • 基于流复制的全新高可用机制

 

国产数据库概览

 

 
OceanBase发布2.1.1版本

 

2019年4月1日,OceanBase发布2.1.1版本。

 

其中最值得关注的新功能和特性有:

 

  • 支持全局索引

  • 增加lob支持

  • 增加外键支持

  • 切主不杀事务

  • 完善全局快照支持

  • 完善L副本支持

  • 支持相同大类型长度修改 

  • 新分布式执行框架

  • ilog重构

  • 升级过程中支持2.1的observer选1.4的observer作为rebuild源端

  • 副本迁移复制等操作添加黑名单机制

  • RS内存占用优化

  • 负载均衡功能增强:不设定primary zone时leader在多zone均衡算法优化,保证每个zone内多server上的leader均匀分布;修复tenant group的负载均衡zone内server的内存存在微小差异时,组内均衡的问题

  • 估行统计物理行和逻辑行

  • 增加全局参数和表级选项控制编码格式

  • ob_admin重构,不依赖meta以及可跳过slog replay

  • 新增巡检控制开关builtin_db_data_verify_cycle

  • 备份恢复支持全局索引

  • oracle模式租户备份恢复支持

  • 支持oracle raw类型 

  • __all_constraint 表增加 constraint_type 列,支持 oracle 模式下的主键命名

 

 
达梦发布DM8正式版本

 

2019年5月8日,达梦将正式发布DM8版本。

 

其中值得关注的新特性有:

 

  • 共享存储集群DSC增强,最多可支持8节点,支持共享存储集群+数据守护。

  • 提供专用于数据库管理系统的分布式文件系统DDFS。

  • 支持分布式弹性计算集群。

  • 查询优化器增强,支持多维统计信息,相关子查询、外连接等查询优化参数根据应用场景自动调整,减少人工干预。

  • AWR报表工具增强,相对于DM7的AWR报表工具增加了多个统计表单,对系统运行情况能够更加细致的展现。

  • 安全功能增强,提供高强度数据库密码子系统。

  • JDBC框架重构,大幅减少资源消耗,提升性能。

  • 高级功能扩展,扩展了对多级分区表的功能支持,新增对分区交换、分区重命名、修改LIST分区范围值,支持递归CTE表达式。

  • 管理工具改进,提供SQL智能辅助输入、脱机语法检查、存储过程调试可显示SQL语句执行计划。

  • 提供基于Web的达梦数据库管理服务平台DEM,可实现数据迁移、系统管理、集群部署与监控等功能。

 

云数据库

 

 
TDSQL发布10.3.0正式版本

 

腾讯分布式数据库(Tencent Distributed SQL)是由腾讯打造的一款高可用、强一致性、高性能的分布式数据库产品。目前广泛应用于腾讯集团及腾讯云客户,为超过500+金融政企客户提供数据库服务,覆盖金融、政务、新零售、游戏等多个行业。

 

1、新增特性:

  • TDSQL支持分表字段可更改

  • TDSQL水平拆分时数据无缝迁移优化

  • 支持基于MVCC下跨多个数据分片的复杂join操作

  • 优化主备切换,进一步缩短影响业务的时长

  • 支持SQL引擎对业务无损升级

  • 支持auth_switch权限校验方式

  • 支持对时间类型字段的聚合函数

  • 支持Oracle序列语法

  • 支持库表回收站机制

  • 支持备份迁移腾讯云COS服务

  • 支持对接腾讯云CKAFKA实现数据订阅

  • 数据同步性能优化

  • 支持SSL加密协议

  • 支持表空间加密

  • 支持bulk load乱序导入

  • 实现xtrbackup工具,支持backup锁,支持myrocks和innodb同时备份和回放

  • 禁止用户创建innodb表

 

2、智能DBA“扁鹊系统”

  • 支持主备切换原因分析

  • 支持历史锁等待,长事务对性能影响分析

  • 支持慢SQL优化分析

  • 支持当前主备延迟原因分析

  • 支持当前会话聚合

  • 支持ES搜索SQL日志

 

3、赤兔运维管理系统

  • 支持在线图形化运维操作

  • 支持集群监控告警

 

 
RadonDB发布1.0.6版本

 

2019年4月底,RadonDB云数据库将发布1.0.6版本:

 

其中值得关注的新功能有:

 

  • 支持分布式join(Sort-Merge Join)功能

  • 支持multi-statement transaction功能

  • 支持分布式全文索引(Full-Text Ngram)功能

  • 支持全局自增ID功能

  • 支持与MySQL一致的checksum功能

 

推出dbaplus Newsletter的想法

 

dbaplus Newsletter旨在向广大技术爱好者提供数据库行业的最新技术发展趋势,为社区的技术发展提供一个统一的发声平台。为此,我们策划了RDBMS、NoSQL、NewSQL、时间序列、大数据生态圈、国产数据库、云数据库等几个版块。

 

我们不以商业宣传为目的,不接受任何商业广告宣传,严格审查信息源的可信度和准确性,力争为大家提供一个纯净的技术学习环境,欢迎大家监督指正。

 

至于Newsletter发布的周期,目前计划是每三个月左右会做一次跟进,下期计划时间是2019年8月14日~8月25日,如果有相关的信息提供请发送至邮箱:newsletter@dbaplus.cn

 

感谢名单

 

 

最后要感谢那些提供宝贵信息和建议的专家朋友,排名不分先后。

 

 

往期回顾:

活动预告