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

Newsletter 2019-01-14 10:09:39
本期目录

DB-Engines数据库排行榜

新闻快讯

一、RDBMS家族

  • Oracle发布18.3版本

  • MySQL发布8.0.13版本

  • MariaDB 10.3版本功能展示

  • Percona Server发布8.0 GA版本 

  • RocksDB发布V5.17.2版本 

  • PostgreSQL发布11版本 

  • DB2发布11.1.4.4版本 

二、NoSQL家族

  • Redis发布5.0.3版本 

  • MongoDB升级更新MongoDB Mobile和MongoDB Stitch 

  • Cassandra发布3.11.3版本 

三、NewSQL家族

  • TiDB 发布2.1.2版本 

  • EsgynDB发布R2.5版本 

  • CockroachDB发布2.1版本

四、时间序列

  • 本期新秀:TimescaleDB发布1.0版本 

五、大数据生态圈

  • Hadoop发布2.9.2版本 

  • Greenplum 发布5.15版本 

六、国产数据库概览

  • K-DB发布数据库一体机版 

  • OceanBase迁移服务发布1.0版本 

  • SequoiaDB 发布3.0.1新版本  

七、云数据库

  • 本期新秀:腾讯发布数据库CynosDB,开启公测 

  • 本期新秀:京东云DRDS发布1.0版本 

  • RadonDB发布1.0.3版本 

八、推出dbaplus Newsletter的想法

九、感谢名单

 

为方便阅读、重点呈现,本期Newsletter(2019年1月)将对各板块的内容进行精简。需要阅读全文的同学可登录https://pan.baidu.com/s/13BgipbaHeMfvm0YPtiYviA进行下载

 

DB-Engines数据库排行榜

 

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

 

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

 

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

  • Google Trends的搜索数量

  • Indeed网站中的职位搜索量

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

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

 

新闻快讯

 

1、2018年9月24日,微软公布了SQL Server2019预览版,SQL Server 2019将结合Spark创建统一数据平台。

 

2、2018年10月5日,ElasticSearch在美国纽约证券交易所上市。

 

3、亚马逊放弃甲骨文数据库软件,导致最大仓库之一在黄金时段宕机。受此消息影响,亚马逊盘前股价小幅跳水,跌超2%。

 

4、2018年10月31日,Percona发布了Percona Server 8.0 RC版本,发布对MongoDB 4.0的支持,发布对XtraBackup测试第二个版本。

 

5、2018年10月31日,Gartner陆续发布了2018年的数据库系列报告,包括《数据库魔力象限》、《数据库核心能力》以及《数据库推荐报告》。

 

今年的总上榜数据库产品达到了5家,分别来自:阿里云,华为,巨杉数据库,腾讯云,星环科技。其中阿里云和巨杉数据库已经连续两年入选。

 

6、2018年11月初,Neo4j宣布完成E轮8000万美元融资。11月15日,Neo4j宣布企业版彻底闭源:

  • Neo4j 平台的核心——Neo4j社区版,将继续在GPLv3许可下开源。Neo4j企业版,原来也有大部分的源代码以AGPLv3许可开源(今年5月份有变更为AGPLv3 + Commons Clause双重许可),从Neo4j 3.5 GA版本开始,仅用于企业版的代码将不再开源。

 

7、2019年1月8日,阿里巴巴以1.033亿美元(9000万欧元)的价格收购了Apache Flink商业公司DataArtisans。

 

8、2019年1月11日早间消息,亚马逊宣布推出云数据库软件,亚马逊和MongoDB将会直接竞争。

 

AWS在一份声明中表示:“Amazon DocumentDB是从头开始设计的,旨在为客户提供大规模运营任务关键型MongoDB工作负载时所需的性能、可扩展性和可用性。”AWS表示,它正在使用的是MongoDB开源技术的旧版本。

 

MongoDB首席执行官Dev Ittycheria在一份声明中表示:“模仿是最真诚的奉承形式,所以亚马逊试图利用MongoDB的流行和势头也就不足为奇了。然而,开发人员足够聪明,能够区分真实的东西和拙劣的模仿。”

 

RDBMS家族

 

 
Oracle 发布18.3版本

 

2018年7月,Oracle Database 18.3通用版开始提供下载。我们可以将Oracle Database 18c视为采用之前发布模式的Oracle Database 12c第2版的第一个补丁集。未来,客户将不再需要等待多年才能用上最新版Oracle数据库,而是每年都可以期待新数据库特性和增强。Database 19c将于2019年Q1率先在Oracle cloud上发布云版本。

 

Oracle Database 18c及19c部分关键功能:

 

1、性能 

  • 高可用OLTP的RAC环境,速度提升5倍;

  • 内存行存储查找速度提升2倍;

  • Oracle Database In-Memory的性能增强特性包括:内存中联接组、内存中表达式和内存中处理JSON查询;

  • 还引入了Memoptimized Rowstore来支持快速查询性能,例如需要根据主键值进行快速低延迟查找的物联网 (IoT) 负载;

  • 对于count ,distinct and group查询的性能改进;

  • 自动索引。

 

2、多租户,大量功能增强及改进,大幅节省成本和提高敏捷性

 

3、高可用

  • 数据库分片(sharding)支持RAC。确保海量Web应用的高可用性;

  • DataGuard DML重定向;

  • Sharding现在支持CDB中的多个PDB分片。

 

4、数据仓库和大数据

  • 全面的分析和数据科学功能;

  • In-Memory支持外部表;

  • Nologged数据到备库的自动加载;

  • 更多机器学习算法;

  • 多态表函数;

  • 联机表分区合并;

  • 近似值查询增强。

 

 
MySQL发布8.0.13版本

 

2018年10月22日,MySQL发布8.0.13版本,值得关注的更新有:

 

1、账户管理

经过配置,修改密码时,必须带上原密码。在之前的版本,用户登录之后,就可以修改自己的密码。这种方式存在一定安全风险。比如用户登录上数据库后,中途离开一段时间,那么非法用户可能会修改密码。由参数password_require_current控制。

 

2、配置

Innodb表必须有主键。在用户没有指定主键时,系统会生成一个默认的主键。但是在主从复制的场景下,默认的主键,会对丛库应用速度带来致命的影响。如果设置sql_require_primary_key,那么数据库会强制用户在创建表、修改表时,加上主键。

 

3、字段默认值

BLOB、TEXT、GEOMETRY和JSON字段可以指定默认值了。

 

4、优化器

 

1)Skip Scan

 

非前缀索引也可以用了。

 

  • 示例表结构:CREATE TABLE t1 (f1 INT NOT NULL, f2 INT NOT NULL, PRIMARY KEY(f1, f2))

  • 示例数据:(1,1), (1,2), (1,3), (1,4), (1,5),(2,1), (2,2), (2,3), (2,4), (2,5)

  • 示例查询:EXPLAIN SELECT f1, f2 FROM t1 WHERE f2 > 40

 

之前的版本,任何没有带上f1字段的查询,都没法使用索引。在新的版本中,它可以忽略前面的字段,让这个查询使用到索引。其实现原理就是把(f1 = 1 AND f2 > 40) 和(f1 = 2 AND f2 > 40)的查询结果合并。

 

2)函数索引

 

之前版本只能基于某个列或者多个列加索引,但是不允许在上面做计算,如今这个限制消除了。

 

  • CREATE INDEX idx1 ON t1 ((col1 + col2));

  • CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);

  • ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);

 

5、SQL语法

GROUP BY ASC和GROUP BY DESC语法已经被废弃,要想达到类似的效果,请使用GROUP BY ORDER BY ASC和GROUP BY ORDER BY DESC。

 

6、功能变化

 

1)设置用户变量,请使用SET语句

 

如下类型语句将要被废弃SELECT @var, @var:=@var+1。

 

2)新增innodb_fsync_threshold

 

该变量是控制文件刷新到磁盘的速率,防止磁盘在短时间内饱和。

 

3)新增会话级临时表空间

 

在以往的版本中,当执行SQL时,产生的临时表都在全局表空间ibtmp1中,及时执行结束,临时表被释放,空间不会被回收。新版本中,会为session从临时表空间池中分配一个临时表空间,当连接断开时,临时表空间的磁盘空间被回收。

 

4)在线切换Group Replication的状态

 

  • 指定某个节点为新的Primary节点。用法:SELECT group_replication_set_as_primary(member_uuid)。

  • 在线Single Primary和Multi Primary切换。

  • 而在以前版本需要停止集群中的所有成员才能做到。

 

5)新增了group_replication_member_expel_timeout

 

之前,如果某个节点被怀疑有问题,在5秒检测期结束之后,那么就直接被驱逐出这个集群。即使该节点恢复正常时,也不会再被加入集群。那么,瞬时的故障,会把某些节点驱逐出集群。

 

group_replication_member_expel_timeout让管理员能更好的依据自身的场景,做出最合适的配置(建议配置时间小于一个小时)。

 

 
MariaDB 10.3版本功能展示

 

1、MariaDB 10.3支持update多表ORDER BY and LIMIT

 

1)update连表更新,limit语句

 

update t1 join t2 on t1.id=t2.id set t1.name='hechunyang' limit 3;

 

MySQL 8.0直接报错

 

 

MariaDB 10.3更新成功

 

2)update连表更新,ORDER BY and LIMIT语句

 

update t1 join t2 on t1.id=t2.id set t1.name='HEchunyang' order by t1.id DESC limit 3;

 

MySQL 8.0直接报错

 

 

MariaDB 10.3更新成功

参考:

https://jira.mariadb.org/browse/MDEV-13911

 

2、MariaDB10.3增补AliSQL补丁——安全执行Online DDL

 

Online DDL从名字上看很容易误导新手,以为不论什么情况,修改表结构都不会锁表,理想很丰满,现实很骨感,注意这个坑!

 

有以下两种情况执行DDL操作会锁表的,Waiting for table metadata lock(元数据表锁):

 

  • 增加、删除字段或索引不会锁全表,删除主键、更改字段属性会锁全表。

  • 在添加字段alter table表时,对该表的增、删、改、查均不会锁表。而在这之前,该表有被访问时,需要等其执行完毕后,才可以执行alter table,例如在会话一,故意执行一条大结果的查询,然后在会话二执行增加字段age,此时还会出现表锁。

 

针对第二种情况,MariaDB10.3增补AliSQL补丁-DDL FAST FAIL,让其DDL操作快速失败。

 

例:

 

 

如果线上有某个慢SQL对该表进行操作,可以使用WAIT n(以秒为单位设置等待)或NOWAIT在语句中显式设置锁等待超时,在这种情况下,如果无法获取锁,语句将立即失败。 WAIT 0相当于NOWAIT。

参考:

https://jira.mariadb.org/browse/MDEV-11388

 

3、MariaDB Window Functions窗口函数分组取TOP N记录

 

窗口函数在MariaDB10.2版本里实现,其简化了复杂SQL的撰写,提高了可读性。

参考:

https://mariadb.com/kb/en/library/window-functions-overview/

 

 
Percona Server发布8.0 GA版本

 

2018年12月21日,Percona发布了Percona Server 8.0 GA版本。

 

在支持MySQL8.0社区的基础版上,Percona Server for MySQL 8.0版本中带来了许多新功能:

 

1、安全性和合规性

 

  • 审计日志插件:提供数据库活动的监视和日志记录。此功能与MySQL Enterprise Auditing相当。

  • 基于PAM的身份验证插件:通过与PAM模块的基础,双重验证单登陆(SSO)和双因素身份验证(2FA)系统集成。此功能与MySQL Enterprise Auditing相当。

  • 增强加密:增强对二进制日志加密,临时文件加密,对所有innodb表空间类型和日志的机密支持,并行双写缓冲区加密。此功能与MySQL Enterprise Auditing相当。

 

2、性能和可扩展性

 

  • Threadpool:支持10000多个连接,此功能与MySQL Enterprise Auditing相当。

  • InnoDB引擎增加功能:通过并行双写,多线程LRU刷新和单页去除,实现高度并发的IO绑定工作负载,从而显著提高性能。Percona Server for MySQL与MySQL Community Edition进行比较时,某些工作负载的性能提升了60%。

  • MyRocks存储引擎:基于RocksDB存储库,MyRocks通过针对nVME SSD等现代硬件进行优化。

 

3、可观察性和可用性

 

    改进检测:Percona Server for MySQL 8.0提供了超过两倍的可用性能和统计计数器,以及支持收集每用户和每线程统计数据,以及扩展的慢查询日志记录功能。

  • 减少备份影响:更轻的重量备份锁定可降低对执行备份的性能和可用性的影响。与Percona XtraBackup 8.0一起使用时,此功能可使您的备份运行更快,并且您的应用程序在长时间运行的备份中表现更好。

 

Percona Server for MySQL 8.0中将要被废用功能:

 

  • TokuDB存储引擎:整个Percona Server for MySQL 8.0系列支持TokuDB,但在下一个版本将不会提供。Percona鼓励TokuDB用户探索MyRocks存储引擎。

 

Percona Server for MySQL 8.0中删除的功能:

 

  • CSV存储引擎。

  • ALL_O_DIRECT InnoDB的刷盘方式。

  • 查询缓存。

 

 
RocksDB发布V5.17.2版本

 

2018年10月24日,RocksDB发布V5.17.2版本。

 

RocksDB是Facebook在LevelDB基础上用C++写的高效内嵌式K/V存储引擎。相比LevelDB,RocksDB提供了Column-Family,TTL,Transaction,Merge等方面的支持。目前MyRocks,TiKV等底层的存储都是基于RocksDB来构建。

 

本次更新主要有如下值得关注的点:

 

  • 可以通过CacheAllocator自定义Block Cache的实现;

  • 增加了FlushOptions::allow_write_stall参数,控制flush操作是否立刻执行,即使会导致写入暂停,默认为false,即flush操作会等待可以操作时执行,不会导致写入暂停;

  • 应用如果使用悲观事务数据库时,在启动新事务之前回滚/提交已恢复的事务。此假设在recovery期间跳过并发控制。

  • 修复当有很多snapshot导致slow/compaction慢的问题;

  • 修复WriteBatchWithIndex SeekForPrev()找不到相同key的问题;

 

 
PostgreSQL发布11版本

 

2018年10月18日,PostgreSQL 11发布。

 

1、PostgreSQL 11的重大增强

  • OLAP能力增强1,增加JIT功能。

  • OLAP能力增强2,并行计算能力提升,hash join性能提升10倍以上,增加支持create index, create table as, create mview as, select into等并行。

  • OLAP能力增强3,性能更好的HASH JOIN,seq scan。

  • 存储过程支持自治事务。

  • 新增带默认值的字段,无需rewrite table,瞬间完成。

  • 分区表新增hash分区支持。

 

2、PostgreSQL 插件动态

 

1)分布式插件citus发布 8.1

 

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

https://github.com/citusdata/citus

 

2)地理信息插件postgis发布2.5.1

 

PostGIS是专业的时空数据库插件,在测绘、航天、气象、地震、国土资源、地图等时空专业领域应用广泛。同时在互联网行业也得到了对GIS有性能、功能深度要求的客户青睐,比如共享出行、外卖等客户。

http://postgis.net/

 

3)时序插件timescale发布1.1.1

 

timescale是PostgreSQL的一款时序数据库插件,在IoT行业中有非常好的应用。github star数目前有5000多,是一个非常火爆的插件。

https://github.com/timescale/timescaledb

 

4)流计算插件 pipelinedb 正式插件化

 

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

https://github.com/pipelinedb/pipelinedb 

 

3、PostgreSQL衍生开源产品动态

 

1)agensgraph发布 2.0.0版本

 

agensgraph是兼容PostgreSQL、opencypher的专业图数据库,适合图式关系的管理。

https://github.com/bitnine-oss/agensgraph

 

2)gpdb发布5.15

 

gpdb是兼容PostgreSQL的mpp数据库,适合OLAP场景。近两年,gpdb一直在追赶PostgreSQL的社区版本,预计很快会追上10的PostgreSQL,在TP方面的性能也会得到显著提升。

https://github.com/greenplum-db/gpdb

 

3)antdb发布3.2

 

antdb是以Postgres-XC为基础开发的一款PostgreSQL sharding数据库,亚信主导开发,开源,目前主要服务于亚信自有客户。

https://github.com/ADBSQL/AntDB

 

4)迁移工具MTK发布52版本

 

MTK是EDB提供的可以将Oracle、PostgreSQL、MySQL、MSSQL、Sybase数据库迁移到PostgreSQL, PPAS的产品,迁移速度可以达到100万行/s以上。

https://github.com/digoal/blog/blob/master/201812/20181226_01.md 

 

 
DB2发布 11.1.4.4版本

 

DB2最新发布Mod Pack 4 and Fix Pack 4,包含以下几方面的改动及增强:

 

1、性能

 

  • 在新硬件(支持AVX-512的Intel CPU)上提供更好的性能支持。

 

2、高可用

 

  • 在HADR设置了ROS的环境中,通过设置DB2_HADR_ROS_AVOID_REPLAY_ONLY_WINDOW参数可以避免仅重放(replay-only)窗口,可以显着提高备用数据库执行SQL查询的可用性。

  • 对于配置镜像日志路径(MIRRORLOGPATH)的数据库,通过配置DB2_USE_ASYNC_FOR_MIRRORLOG参数实现两个日志文件并行异步写入来实现性能提升。

  • 增加db2pd -barstats选项实现监控备份和恢复操作的进度和性能。并且在该版本中,可以设置DB2_REDUCE_FLUSHING_DURING_BACKUP参数减少备份恢复过程中更改页面的刷新行为,可以提高在线备份操作的性能。

  • 在ADMIN_MOVE_TABLE存储过程中增加WITH_NONUNIQUE_INDEXES、ADD_MODSTATE_INDEX,REMOVE_MODSTATE_INDEX和SYNC_MODSTATE_INDEX选项,可以提供更精细地控制在目标表上创建非唯一索引和修改状态索引。

  • 通过设置DB2_USE_BUFFERED_READ_FOR_ACTIVE_LOG参数可以在读取事务日志文件数据时自动使用缓冲I / O,显著提高大型事务的回滚性能。

  • 现在可以通过配置磁盘仲裁器和多数节点集仲裁机制搭建db2haicu环境。

  • ADMIN_MOVE_TABLE存储过程中增加ESTIMATE选项,允许用户在移动表之前估计表的大小。

  • 可以使用新的db2fmtlog工具从事务日志文件中提取和显示信息。提取的信息包括加密或压缩状态,日志链信息,日志记录范围和其他元数据。此信息在问题确定方案中很有用。此信息还可以帮助识别哪些日志记录可以在HADR Reads-on-Standby环境中触发“仅重放窗口”。

 

3、管理视图

 

  • 支持通过ADMIN_GET_TAB_DICTIONARY_INFO表函数获取在列组织表中的压缩信息。

 

4、应用开发方面

 

  • 新增一组新的内置JSON SQL函数。这些JSON SQL函数更好地支持SQL与JSON数据的交互。使用这些函数可以使用SQL直接存储,检索和查询JSON和BSON数据。还可以使用SQL创建JSON文档。

  • 这些新功能遵循ISO(国际标准化组织)和IEC(国际电工委员会)SQL技术报告“第6部分:JavaScript支持JavaScript对象表示法(JSON)”中概述的语法和语义(TR 19075-6:2017年)。该报告的第6部分概述了一组用于存储,查询和发布JSON数据的SQL语言。

  • 作为内置函数,Db2 JSON SQL函数驻留在SYSIBM模式中,并且不要求用户在函数上保留任何特权以调用它。新的内置JSON SQL函数替换了SYSTOOLS模式中提供的原始JSON SQL函数集。

 

5、联邦功能

 

  • 在数据类型映射和功能下推为SAP HANA提供更好的支持。并且支持SAP Adaptive Server Enterprise(ASE)16.0版本

  • 支持存储在hadoop文件系统上的HDFS Parquet文件。

  • 支持通过Restful接口访问CouchDB数据源。

  • 通过ODBC在数据类型映射和功能下推中为Greenplum、Microsoft SQL Server / Microsoft Azure提供更好的支持。

  • 增加对Microsoft SQL Server / Microsoft Azure中的Datetime2数据类型映射支持。

 

6、pureScale

 

  • 在数据库级别提供多租户高可用性支持。当单台主机下线、单独更换磁盘或者其他对于单台主机需要停机的运维操作时,不会对其他节点产生影响。

  • 增加DB2_ENABLE_PS_EXTENT_RECLAIM参数可开启在pureScale环境中增加降低高水位或缩小表空间功能。

  • 在SUSE Linux Enterprise Server(SLES)12 SP2上支持Db2 pureScale。 如果使用基于ConnectX-3的卡,则必须在卡上使用固件2.40.7004或更高版本。

  • SpectrumScale(以前称为通用并行文件系统或GPFS)的缺省配置存储库类型将更改为群集配置存储库(CCR)。 此存储库类型提供更好的高可用性和更简单的群集配置设置,同时降低管理费用。

  • 通过消除在高速互连交换机上配置本地环回IP接口的要求,简化了在所有支持的平台上在TCP / IP和RoCE网络上部署pureScale的步骤。 通过消除配置RSCT网络监视配置文件(netmon.cf)的手动步骤,可以更快地启动和运行群集。

 

NoSQL家族

 

 
Redis发布5.0.3版本

 

2018年12月12日,Redis发布正式版5.0.3。其中值得关注的新修复有:

 

  • 修复了向MONITOR或SYNC复制模式连接发送数据的问题。

  • 修复了有序集合的某些边界值问题。

  • 能更好的支持Unix的衍生系统了:在编译或注册时崩溃日志记录。

  • 修复了网络核心模块,以解决如果在编译的时候使用了IPv6地址列表,而运行的系统本身又不支持的情况下出错问题。

  • 集群模式下redis-cli命令增强,修改了一些在Redis 5中没有解决的边界值问题。

  • 内存利用更精准了。

  • 添加了一个DEBUG DIGEST-VALUE,如果你想确定一组key在不同实例之间是相同的时可以使用它。

  • 修复了网络核心模块中潜在的崩溃问题。

  • 在主从角色切换数据同步期间,拒绝在该实例中执行包含有写操作的EXEC命令。

  • 修复了KEYS和其他命令在使用匹配模式时崩溃的问题。

  • 修复了在AOF加载期间的泄漏问题,由于在AOF加载状态时的命令触发了最大内存值。

 

 
MongoDB升级更新MongoDB Mobile和MongoDB Stitch

 

2018年11月21日,MongoDB升级更新MongoDB Mobile和MongoDB Stitch,助力开发人员提升工作效率。

 

MongoDB 公司日前发布了多项新产品功能,旨在更好地帮助开发人员在世界各地管理数据。通过利用存储在移动设备和后台数据库的数据之间的实时、自动的同步特性,MongoDB Mobile通用版本助力开发人员构建更快捷、反应更迅速的应用程序。此前,这只能通过在移动应用内部安装一个可供选择或限定功能的数据库来实现。

 

MongoDB Mobile在为客户提供随处运行的自由度方面更进了一步。用户在iOS和安卓终端设备上可拥有MongoDB所有功能,将网络边界扩展到其物联网资产范畴。应用系统还可以使用MongoDB Stitch的软件开发包访问移动客户端或后台数据,帮助开发人员通过他们希望的任意方式查询移动终端数据和物联网数据,包括本地读写、本地JSON存储、索引和聚合。通过Stitch移动同步功能(现可提供beta版),用户可以自动对保存在本地的数据以及后台数据库的数据进行同步。

 

 
本期新秀:Cassandra发布3.11.3版本

 

2018年8月11日,Cassandra发布正式版3.11.3。

 

Apache Cassandra是一款开源分布式NoSQL数据库系统,使用了基于Google BigTable的数据模型,与面向行(row)的传统关系型数据库或键值存储key-value数据库不同,Cassandra使用的是宽列存储模型(Wide Column Stores)。与BigTable和其模仿者HBase不同,数据并不存储在分布式文件系统如GFS或HDFS中,而是直接存于本地。

 

Cassandra的系统架构与Amazon DynamoDB类似,是基于一致性哈希的完全P2P架构,每行数据通过哈希来决定应该存在哪个或哪些节点中。集群没有master的概念,所有节点都是同样的角色,彻底避免了整个系统的单点问题导致的不稳定性,集群间的状态同步通过Gossip协议来进行P2P的通信。

 

3.11.3版本的一些bug fix和改进:

 

  • 预创建删除日志记录以便更快地完成压缩(CASSANDRA-12763)

  • 修复了在完全修复之后预防SSTables压缩的bug (CASSANDRA-14423)

  • 修复了OutboundTcpConnection中挂起消息的计数错误(CASSANDRA-11551)

  • 修复了引起gossip阻塞的事件 (CASSANDRA-13849)

  • 依赖JVM来处理OutOfMemoryErrors (CASSANDRA-13006)

 

NewSQL家族

 

 
TiDB 发布2.1.2版本

 

2018 年 12 月 22 日,TiDB 发布 2.1.2 版,TiDB-Ansible 相应发布 2.1.2 版本。该版本在 2.1.1 版的基础上,对系统兼容性、稳定性做出了改进。

 

TiDB 是一款定位于在线事务处理/在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品。除了底层的 RocksDB 存储引擎之外,分布式SQL层、分布式KV存储引擎(TiKV)完全自主设计和研发。

 

TiDB 完全开源,兼容MySQL协议和语法,可以简单理解为一个可以无限水平扩展的MySQL,并且提供分布式事务、跨节点 JOIN、吞吐和存储容量水平扩展、故障自恢复、高可用等优异的特性;对业务没有任何侵入性,简化开发,利于维护和平滑迁移。

 

TiDB:

 

  • 兼容 Kafka 版本的 TiDB-Binlog [#8747]

  • 完善滚动升级下 TiDB 的退出机制 [#8707]

  • 增强 `utf8` 字符集的有效字符检查 [#8754]

  • 修复在某些情况下为 generated column 增加索引 panic 的问题 [#8676]

  • 修复在某些情况下语句有 `TIDB_SMJ Hint` 的时候优化器无法找到正确执行计划的问题 [#8729]

  • 修复在某些情况下 `AntiSemiJoin` 返回错误结果的问题 [#8730]

  • 修复事务中先写后读的情况下时间类型字段可能返回错误结果的问题 [#8746]

 

PD:

 

  • 修复Region Merge相关的Region信息更新问题 [#1377]

 

TiKV:

 

  • 支持以日 (`d`) 为时间单位的配置格式,并解决配置兼容性问题 [#3931]

  • 修复Approximate Size Split可能会panic的问题 [#3942]

  • 修复两个Region Merge相关问题 [#3822],[#3873]

 

Tools:

 

1)TiDB-Lightning

 

  • 支持最小TiDB集群版本为 2.1.0

  • 修复解析包含JSON类型数据的文件内容出错 [#144]

  • 修复使用checkpoint重启后 `Too many open engines` 错误

 

2)TiDB-Binlog

 

  • TiDB支持写[老版本TiDB-Binlog]

  • 消除了Drainer往Kafka写数据的一些瓶颈点

 

 
EsgynDB发布R2.5版本

 

2018年12月22日,EsgynDB R2.5版本正式发布。

 

作为企业级产品,EsgynDB 2.5向前迈进了一大步,它拥有以下功能和改进:

 

  • 数据库——支持冷热数据,支持Hive DDL,增加了函数。

  • 易管理性——EsgynDB Manager增强了功能和更新了界面。

  • 安全性——EsgynDB Manager和REST server支持SSL,EsgynDB Manager Workbench支持组件级权限,EsgynDB Manager脚本执行器增加细粒度控制功能,支持安全语句,增强了GET语句。

  • 可用性——增加了EsgynDB Manager HA功能,提高了EsgynDB HA性能。

  • 基础架构——在同一个EsgynDB实例上支持异构机器并能高效利用机器资源(技术预览),支持新Hadoop发行版(HDP 2.6.5,CDH 5.13),在同一个EsgynDB实例上支持异构操作系统(RH/CentOS 6.x 和 7.x)。

  • 性能——提高了范围优化扫描、ORC矢量化扫描和straw扫描的性能,提高了UPDATE语句、单行事务、repository(连接)和驱动连接的性能。

  • 易用性——通过Ambari安装EsgynDB(简化安装),增强了LOAD语句功能(执行LOAD语句时指定UPDATE STATISTICS能自动更新统计信息),通过多种改进提高了用户体验(改进错误信息、提供易用工具和增强错误处理)。

 

 
CockroachDB发布2.1版本

 

2018年10月30日,CockroachDB正式发布2.1版本,其新增特性如下:

 

新增企业级特性:

 

  • CDC (Change Data Capture),可以方便用户将订阅的库表变更实时同步至Kafka,方便用户进一步的进行数据分析或处理。

  • 透明加密,可以方便对集群的用户数据进行加密,防止用户数据泄露。

  • 并行导出,可以将用户指定的表,或者通过SELECT语句指定的结果通过DistSQL并成CSV格式的数据。

 

新增SQL特性:

 

  • 支持更改表字段类型。

  • 支持CANCEL JOB,集群内长时间执行的任务可以通过该语句终止。

  • 支持CANCEL QUERIES,支持同时终止多条SQL Statement。

  • 支持Cost-Based Optimizer。

  • 支持EXPLAIN (DISTSQL),可以查看指定SQL的物理执行计划,方便进行调优。

  • 支持EXPLAIN ANALYZE,可以执行指定SQL,并返回该SQL物理执行过程中的统计信息。

  • 支持SHOW STATISTICS,查看统计信息,与Cost-Based Optimizer配合一起使用。

  • 支持关联子查询。

 

新增内核特性:

 

  • 支持Controlling Leaseholder Location, 可以显示指定并控制Range的leaderHolder的位置。

  • 支持DBeaver,DBeaver是一个跨平台的数据库管理工具,用户可以通过DBeaver对CockroachDB进行管理操作。

  • 支持Load-based Rebalancing,集群可以通过各个节点的负载情况来对副本进行rebalance。

  • 支持MySQL迁移至CockroachDB,目前仅支持全量数据迁移。

 

Admin UI增强:

 

  • Debug页面显示更全面的集群内部统计信息,方便进行troubleshoot。

  • 新增Hardware dashboard,可以查看CPU, 磁盘,网络的统计信息。

  • 新增Statements page,可以显示查看用户的SQL在整个集群的执行情况。

  • 新增User Authentication,可以控制Admin UI的安全访问。

 

时间序列

 

 
本期新秀:TimescaleDB发布1.0版本

 

10月底,TimescaleDB 1.0宣布正式推出,官方表示该版本已可用于生产环境,支持完整SQL和扩展。

 

TimescaleDB是基于PostgreSQL数据库开发的一款时序数据库,以插件化的形式打包提供,随着PostgreSQL的版本升级而升级,不会因为另立分支带来麻烦。

 

TimescaleDB架构:

 

数据自动按时间和空间分片(chunk)

 

更新亮点:

 

  • 更广泛的可用性改进

  • 后台作业自动化和调度的基础

  • 增强了数据库强化和测试

  • 构建开源监控堆栈:对 Grafana 和 Prometheus 的原生支持

下载地址:

https://github.com/timescale/timescaledb/releases/tag/1.0.0

 

大数据生态圈

 

 
Hadoop发布2.9.2版本

 

2018年11月中旬,Hadoop在2.9分支上发布了新的2.9.2版本,该版本进行了204个大大小小的变更,主要变更如下:

 

  • 像3.x版本一样,提供了对阿里oss云对象存储的支持,是目前唯一一个被Hadoop官方版本支持的云存储系统,只需要进行简单的hadoop的配置,用户就可以使用使用阿里云的oss的对象存储进行数据的存放于计算。

  • 更新了hadoop的资源评估器。通过官方提供资源评估器这样的工具,可以对用户使用的作业的资源进行评估,以帮助终端用户更好的进行资源的调配。

  • 引入了3.x版本的基于路由的federation方案,相比于传统的federation方案,新的基于路由的方案对客户端完全透明,任何客户端访问HDFS的请求,可以通过路由转发到对应的Namenode上进行数据访问,不再需要客户端层面进行配置。

  • 新增yarn的federation功能与机会容器特性,其中federation允许集群的Resource Manager管理部分计算节点,机会容器功能则允许先调度到相应节点,不会立马运行,但是会排队等待,直到可以获取到对应的资源才会运行。这样会提升节点资源的使用率。此外,yarn还支持了通过api的方式去配置任务的队列。最后,AM在新版本中被允许在申请容器资源的时候变更请求,目前主要支持容器资源大小与容器类型的变更。

 

 
Greenplum 发布5.15版本

 

Greenplum最新的5.15版本中发布了流式数据加载工具。

 

该版本中的Greenplum Streem Server组件已经集成了Kafka流式加载功能,并通过了Confluent官方的集成认证,其支持的主要功能如下:

 

  • 支持多种常用数据格式,例如json,avro,二进制数据以及Confluent的Schema registry service;并提供可扩展的接口用于实现自定义数据格式,例如由多字节分隔符分割的文本等。

  • 基于Greenplum外部表以及UDF的强大功能,支持丰富的数据变换(Transform),在进行数据加载的同事可以完成复杂的实时数据变换。

  • 通过Mini-batch的方式,利用Greenplum的高速数据传输(gpfdist)协议,满足高速、可靠、安全的加载需求。

  • 丰富多样的辅助功能,例如定期任务,加密传输,加载历史,任务管理等。

 

国产数据库概览

 

 
K-DB发布数据库一体机版

 

2018年11月7日,K-DB发布了数据库一体机版。该版本更新情况如下:

 

  • 采用高性能计算节点DB Server、超高速网络Infiniband、智能型存储节点Storage Server三层架构,具备了海量数据实时处理和PB级大容量数据存储的能力,能够应对海量数据下的HTAP混合业务需求;

  • 提供智能过滤(Function Offloading)、智能缓存(Flash Cashing)、存储索引(Storage Data Map)等功能,提供了兼具强大计算能力、PB级海量数据存储的先进架构,实现大幅提升服务器资源使用率以及数据库整体性能,极大降低了数据交互的响应时间;

  • 增加了对InfiniBand超高速网络及RDMA协议的支持,可以为用户提供56Gbps的网络带宽和超快的传输速度,从而解决数据库网络瓶颈。

 

 
OceanBase迁移服务发布1.0版本

 

1月4日,OceanBase 正式发布OMS迁移服务1.0版本。

 

以下内容包含 OceanBase 迁移服务的重要特性和功能:

 

  • 多种类型数据库支持:目前支持源端数据库类型有Oracle、MySQL、OceanBase,支持全量迁移和增量数据同步。

  • 分钟级即时回滚:切换到OceanBase后,将OceanBase的增量实时同步回源库,并在较小延时的情况下可以立即完成回滚。

  • 一键完成迁移:整个数据迁移链路和回滚机制的搭建都是在页面上连贯操作完成,使用简便。

  • 负载回放验证:采集源端数据库的SQL流量,在目标库OceanBase上回放,可以验证其在OceanBase上的功能是否兼容、性能是否出现问题等。

  • 秒级数据验证:数据增量同步过程中,可以定时校验两边的数据增量是否一致。同时展示差异数据,提供快速订正途径。

 

 
 SequoiaDB发布3.0.1新版本 

 

1、架构

 

1)完整计算存储分离架构,兼容MySQL协议、语法

 

计算存储分离体系以松耦合的方式将计算与存储层分别部署,通过标准接口或插件对各个模块和组件进行无缝替换,在计算层与存储层均可实现自由的弹性伸缩。

 

SequoiaDB巨杉数据库“计算-存储分离”架构详细示意

 

用户可以根据自身业务特征选择面向交易的SQL解析器(例如MySQL或PGSQL)或面向统计分析的执行引擎(例如SparkSQL)。众所周知,使用不同的SQL优化与执行方式,数据库的访问性能可能会存在上千上万倍的差距。计算存储分离的核心思想便是在数据存储层面进行一体化存储,在计算层面则利用每种执行引擎的特点针对不同业务场景进行选择和优化,用户可以在存储层进行逻辑与物理的隔离,将面向高频交易的前端业务与面向高吞吐量的统计分析使用不同的硬件进行存储,确保在多类型数据访问时互不干扰,以真正达到生产环境可用的多租户与HTAP能力。

 

2、其他更新信息

 

1)接口变更:

 

  • 新增:snapshot新增参数,可指定查询条件、过滤条件,对结果进行排序等;

  • 新增:驱动中LOB部分提供eof接口。

 

2)主要特性:

 

  • SAC支持SequoiaSQL-MySQL与SequoiaDB创建关联;

  • SAC支持SequoiaSQL-MySQL添加业务和卸载业务;

  • OM增加支持SequoiaSQL-MySQL的部署包;

  • 集合空间、集合增加全局唯一ID。

 

云数据库

 

 
本期新秀:腾讯发布数据库CynosDB,开启公测

 

1、News

 

1)腾讯云数据库MySQL2018年重大更新:

 

  • 秒级监控,已全量发布;

  • 强隔离一期,已灰度发布,原地升级还在进行中,超用用户也在推进中;

  • 备份产品化一期,灰度发布中,已发布重庆与日本地域。

 

2)腾讯云数据库MongoDB2018年重大更新:

 

  • 3.6版本上线;

  • 只读和灾备实例;

  • 备份与回档重构;

  • 接入小程序云,为小程序用户提供数据库服务。

 

3)腾讯云数据库Redis/CKV+2018年重大更新:

 

  • 推出集群版:18年Q3我们推出了CKV+和Redis4.0集群版,弥补了Redis产品线长期以来的在百万、千万QPS场景能力的缺失;

  • 推出了CKV+引擎:18年Q2我们完成了CKV+引擎的独立品牌,通过CKV+支持了384GB超大规格的单节点实例,远超业内同类产品的单节点规格。

 

4)腾讯云数据库CTSDB2018年重大更新:

 

  • 公有云完成计费,正式进入商业化;

  • 参与信通院时序数据库标准制定、测试并拿到证书。

 

2、Redis 4.0集群版商业化上线

 

2018年10月,腾讯云数据库Redis 4.0集群版完成邀测、公测、商业化三个迭代,在广州、上海、北京正式全量商业化上线。

 

其中值得关注的新特性/新功能/新改进/新修复有:

 

  • 解决了客户在缓存场景高性能(千万QPS)、大容量(TB级容量)、低延迟(亚毫秒)的痛点需求,为腾讯云数据库增添新利器。

 

产品特性:

 

  • 高性能低时延:千万QPS性能、亚毫秒级别响应时延、4TB大容量,满足用户对集群版的极限要求;(性能和竟品对齐,容量比阿里更大);

  • 业界最灵活:支持分片数、分片容量、副本数三个维度的购买选配和弹性伸缩,扩缩容做到业务零感知;(Ali多个产品形态,变更业务闪断,AWS不支持分片容量调整);

  • 自动读写分离:针对热Key、高并发读场景,提供动态添加&删除只读副本,一键开启和关闭读写分离功能;(Ali单独产品形态支持,支持需要迁移闪断);

  • 简单易用:通过自研Proxy,屏蔽集群底层复杂的管理细节,通过VIP的访问方式,使得产品使用极为简单。

 

使用场景:

 

  • 电商、直播等大容量、高性能的Cache场景;

  • 游戏业务,快速无感知的动态扩容 & 缩容存储场景;

  • 大数据分析缓存、中间件缓存场景。

官网文档:

https://cloud.tencent.com/document/product/239/18336

 

3、腾讯自研数据库CynosDB发布,开启公测

 

2018年11月22日,腾讯云召开新一代自研数据库CynosDB发布会,业界第一款全面兼容市面上两大最主流的开源数据库MySQL和PostgreSQL的高性能企业级分布式云数据库。

 

其中值得关注的新特性/新功能/新改进/新修复有:

 

  • 超高性能:CynosDB融合了传统数据库、云计算和新硬件的优势,支持无限量存储、百万级查询和秒级的故障恢复,CynosDB可以达到单节点130万QPS读性能,超过业内目前最高100万QPS水平,全面领先国内其他同类产品。实现了MySQL 8倍的性能提升,百TB级别的海量智能存储,秒级的故障恢复。

  • 兼容两大开源数据库:产品架构上完全兼容开源数据库引擎接口,是国内首家兼容MySQL5.7和全球第一个兼容PostgreSQL10的云数据库产品。在世界范围内,MySQL和PostgreSQL是市面上最主流的两大数据库产品,因此,CynosDB完美的兼容性,让企业几乎无需更改代码,就可以轻松实现无缝“上云”。

  • 存储和计算分离,高可用:为了提升系统可用性,CynosDB以软件优化与新硬件结合为理念,采用了先进的计算和存储分离架构,同时实现了计算无节点状态,支持秒级故障切换和恢复,数据备份时间缩短到60秒之内,速度提升了180倍。

  • 释放硬件红利,价格仅为商用数据库的1/15:CynosDB既支持普通的网络和硬件设备,又能够最大程度释放硬件性能红利。同时,灵活的扩展功能和购买方式,减少了用户在计算和存储资源上的浪费,综合下来,CynosDB和同样高性能的传统商业数据库相比,价格只相当于它的1/15。

 

 
本期新秀:京东云DRDS发布1.0版本

 

12月24日,京东云分布式关系型数据库DRDS正式发布1.0版本。

 

DRDS是京东云精心自研的数据库中间件产品,获得了2018年 ”可信云技术创新奖”。DRDS可实现海量数据下的自动分库分表,具有高性能,分布式,弹性升级,兼容MySQL等优点,适用于高并发、大规模数据的在线交易,历史数据查询,自动数据分片等业务场景,历经多次618,双十一的考验,已经在京东集团内大规模使用。

 

京东云DRDS产品有以下主要特性

                                                      

1)自动分库分表

 

通过简单的定义即可自动实现分库分表,将数据实际存放在多个MySQL实例的数据库中,但呈现给应用程序的依旧是一张表,对业务透明,应用程序几乎无需改动,实现了对数据库存储和处理能力的水平扩展。

 

2)分布式架构

 

基于分布式架构的集群方案,多个对等节点同时对外提供服务,不但可有效规避服务的单点故障,而且更加容易扩展。

 

3)超强性能

 

具有极高的处理能力,双节点即可支持数万QPS,满足用户超大规模处理能力的需求。

 

4)兼容MySQL

 

兼容绝大部分MySQL语法,包括MySQL语法、数据类型、索引、常用函数、排序、关联等DDL,DML语句,使用成本低。

 

参考链接:

https://www.jdcloud.com/cn/products/drds

 

 
RadonDB发布1.0.3版本

 

2018年12月26日,MyNewSQL领域的RadonDB云数据库发布1.0.3版本。 

 

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

 

  • 支持全局表功能,加速小表/大表join;

  • 支持流式并行快速获取,可对接ClickHouse MPP引擎进行OLAP分析。

 

推出dbaplus Newsletter的想法

 

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

 

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

 

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

 

感谢名单

 

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

 

 

最新评论
访客 2019年04月17日

总结的真cool

访客 2019年04月17日

非常不错 受用。

访客 2019年04月13日

作者根本就没用过pg吧,两个数据库都用过一年以上再来…

访客 2019年04月09日

niubility!!!!! 大赞贺大佬

访客 2019年03月27日

Spark2.x+Python大数据机器学习实战视频教程 学习:p…

活动预告