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

Newsletter 2020-08-31 14:29:40
本期要点

DB-Engines数据库排行榜

新闻资讯

一、RDBMS

  • MySQL发布8.0.21(GA)版本

  • MariaDB发布10.5.5(GA)版本

  • PostgreSQL发布13 Beta 3版本,年底即将Release

  • OceanBase发布2.2.6版本

二、NoSQL

  • Redis 6.0.0为迄今改变最大版本,最新已发布6.0.6

  • MongoDB发布4.4 Beta版本,被誉为一项“用户驱动的工程”

  • RocksDB发布6.11.4版本

三、NewSQL

  • TiDB发布4.0 GA版本

  • SequoiaDB即将发布5.0正式版

四、大数据生态圈

  • Hadoop发布3.3.0,官方首个支持ARM架构的版本

  • Flink发布1.11.1和1.10.2版本

  • Elasticsearch发布7.9.0版本

  • Greenplum发布6.10.1版本

五、国产数据库

  • ArkDB兼容MySQL 8.0.20

  • OushuDB发布v4.0 GA版本

六、云数据库

  • 云原生数据仓库AnalyticDB发布新功能

  • 腾讯云两款数据库产品更新

  • 京东智联云新产品公测及产品功能更新

  • RadonDB即将发布1.1.2版本

推出dbaplus Newsletter的想法

感谢名单

 

为方便阅读、重点呈现,本文对各板块内容进行了精简,需阅读完整版可点击文末【阅读原文】或登录云盘下载:https://pan.baidu.com/s/1tHtTIoHx08YxhEYNeRTV3A(提取码:cag1)

 

DB-Engines数据库排行榜

 

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

 

 

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

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

  • Google Trends的搜索数量

  • Indeed网站中的职位搜索量

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

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

 

新闻资讯

 

1、2020年5月,开源数据库CockroachDB收获D轮8700万美元融资,目前已积累了超过1.951亿美金的融资。

 

2、2020年6月8日,蚂蚁集团正式宣布将自研数据库产品OceanBase独立进行公司化运作,成立由蚂蚁100%控股的数据库公司北京奥星贝斯科技,并由蚂蚁集团CEO胡晓明亲自担任董事长。

 

3、2020年6月30日,Redis作者antirez辞去Redis项目的领导者和维护者职务,选择将Redis交给Redis社区打理,并邀请了两位同事Yossi Gottlieb和Oran Agra继续维护Redis项目。而他将成为Redis Labs顾问委员会的一员,会为Redis的更多发展可能性输出自己的想法。至于是否还会写代码,antirez表示自己也不知道,目前还没制定好未来的计划。

 

4、2020年6月30日,华为正式宣布开源数据库能力,开放openGauss数据库源代码,并成立openGauss开源社区。

 

5、2020年7月1日,MySQL数据库的开发人员宣布,该团队将停止使用并替换掉数据库源代码和文档中的master、slave、blacklist(黑名单)和whitelist(白名单)等术语。在官方发布的博客文章中,MySQL团队表示,将用新的术语分别替换当前的术语,分别对应为source、replica、blocklist和allowlist。

 

RDBMS

 

 
MySQL发布8.0.21(GA)版本

 

2020年7月13日,MySQL发布8.0.21版本,主要更新有:

 

一、InnoDB

 

  • 动态启用/禁用redo日志

 

这一功能的主要应用场景是初次进行数据导入。大家知道,为了保证数据能够完整的写入,防止意外发生时的数据丢失,MySQL会在数据写入磁盘之前,先将更改的内容写入redo日志。写入redo日志会保证数据的完整,但是写入性能上会有一定的消耗。因此可以在首次进行数据加载的时候关闭redo日志,以提升写入速度,加载完毕后,开启redo日志。通过ALTER INSTANCE ENABLE|DISABLE INNODB REDO_LOG;可以动态的开启/关闭redo日志。

 

  • 增加了一个新的变量–innodb-validate-tablespace-paths := (ON | OFF) 

 

当用户能够明确知道表空间文件未做过任何改动时,可以选择OFF,这时MySQL服务器启动时将不会去检查表空间文件,可以加快启动速度。这一选项主要是针对使用较旧的服务器提供的,可以避免磁盘速度过慢,服务器启动时间过长。

 

  • 对InnoDB的lock_sys mutex进行优化

 

将之前使用的单一lock mutex用global latch,table shard latches,page shard latches进行替换,拆分成更细的粒度,避免以往使用单一lock mutex产生的瓶颈。

 

  • 确保表空间文件的放置限制在已知的目录

 

这样做的目的是允许DBA限制创建文件的位置,避免在恢复过程中出现意外。

 

  • 支持ACID的UNDO DDL

 

之前创建UNDO表空间时,没有使用redo日志,在这个版本里为其加上了redo日志,使其过程符合ACID,并且避免在截断UNDO时使用检查点。

 

二、SQL DDL

 

现在支持CREATE TABLE…SELECT 的原子性,之前该语句会当做两个不同的语句CREATE TABLE 和 SELECT INTO来执行,现在可以作为一个事物进行提交和回滚,因此也适用于MGR。

 

三、优化器

 

  • “prefer_ordering_index” 

 

新的优化器开关,当存在限制语句,使用group by或者order by时,可以通过它将非排序索引切换到排序索引。

 

  • 半连接用于单表的更新和删除

 

通过这项改进,即使是单表也可以使用优化器的半连接优化策略,避免了以往使用硬代码的简单方法。

 

四、群组复制

 

  • 降低group_replication_message_cache_size的最小值

 

使得MGR可以适用于内存容量小的服务器。

 

  • 指定恢复数据的来源

 

可以指定IP和端口号,用于MGR的数据恢复阶段的数据来源。这一改进主要用于安全性和稳定性的改进。

 

  • START GROUP_REPLICATION语句支持使用用户名、密码方式等凭据

 

这一改进可以避免某些环境下产生的安全性问题。

 

  • 修改默认值

 

增大了group_replication_autorejoin_tries和group_replication_member_expel_timeout的默认值,用以改善网络瞬时故障导致的群组不可用,增加了群组的稳定性。

 

 
MariaDB发布10.5.5(GA)版本

 

MariaDB 10.5是当前的GA稳定版本,发布于2020年6月。

 

一、Replication复制权限发生变化

 

  • SHOW MASTER STATUS语句更名为SHOW BINLOG STATUS;

  • REPLICATION CLIENT权限更名为BINLOG MONITOR;

  • SHOW BINLOG EVENTS语句需要BINLOG MONITOR权限;

  • SHOW SLAVE HOSTS语句需要REPLICATION MASTER ADMIN权限;

  • SHOW SLAVE STATUS语句需要REPLICATION SLAVE ADMIN和SUPER权限;

  • SHOW RELAYLOG EVENTS语句需要REPLICATION SLAVE ADMIN权限。

 

例如,在之前的版本,搭建主从复制,赋予账号权限通常是:

 

 

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl';

 

MariaDB 10.5版本里,改为:

 

 

GRANT REPLICATION SLAVE, REPLICATION SLAVE ADMIN, REPLICATION MASTER ADMIN, REPLICATION SLAVE ADMIN, BINLOG MONITOR, SUPER

ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl';

 

二、支持基于binlog为ROW行的复制,触发器在slave从库上工作

 

在传统认知下,基于binlog为statement语句的复制,触发器会在slave从库上工作;而如果基于binlog为ROW行的复制,触发器不会在slave从库上工作。

 

 

With statement-based replication, triggers executed on the master also execute on the slave. With row-based replication, triggers executed on the master do not execute on the slave.

 

参考文献:

https://dev.mysql.com/doc/refman/8.0/en/replication-features-triggers.html

 

在MariaDB 10.5版本里,可以通过参数:

 

 

set global slave_run_triggers_for_rbr = 'ENFORCE';

 

强制设置基于binlog为ROW行的复制,触发器在slave从库上工作。

 

这样的好处是:当你在从库上运行pt-online-schema-change修改表结构时,从库的数据和主库是一致的。

 

注:MySQL 8.0不支持。

 

三、DELETE语句支持RETURNING数据回滚功能

 

可以使用语法DELETE ... RETURNING select_expr [,select_expr2 ...]将单个表的已删除行的结果集返回给客户端。

 

这样的好处是,DBA手滑也没有关系,可以快速找回误删除的数据。执行的时候,可以在SecureCRT或Xshell里开启日志记录功能,方便找回数据。

 

注:

  • 不支持多表JOIN删除,可以支持子查询;

  • UPDATE不支持RETURNING数据回滚;

  • MySQL 8.0不支持RETURNING语法。

 

四、支持更改字段名采用ALGORITHM=INSTANT算法

 

MariaDB 10.5新的ALTER TABLE语法:

 

 

ALTER TABLE t1 RENAME COLUMN c_old TO c_new  ,ALGORITHM=INSTANT;

 

1000万行数据秒级更改字段名字,不锁表。

 

注:MySQL 8.0已支持该语法。

 

五、支持EXCEPT ALL、INTERSECT ALL语法

 

  • EXCEPT 返回两个结果集的差;

  • INTERSECT 返回两个结果集的交集。

 

举例说明:

 

 

mysql> CREATE TABLE t1 (id INT);

Query OK, 0 rows affected (0.00 sec)

 

mysql> CREATE TABLE t2 (id INT);

Query OK, 0 rows affected (0.01 sec)

 

mysql> INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6);

Query OK, 6 rows affected (0.00 sec)

Records: 6  Duplicates: 0  Warnings: 0

 

mysql> INSERT INTO t2 VALUES (1),(2),(3);

Query OK, 3 rows affected (0.00 sec)

Records: 3  Duplicates: 0  Warnings: 0

 

mysql> select * from t1  EXCEPT  select * from t2;

+------+

| i    |

+------+

|    4 |

|    5 |

|    6 |

+------+

3 rows in set (0.00 sec)

 

mysql> select * from t1  INTERSECT  select * from t2 ;

+------+

| i    |

+------+

|    1 |

|    2 |

|    3 |

+------+

3 rows in set (0.00 sec)

 

注:MySQL 8.0不支持该语法。

 

 
PostgreSQL发布13 Beta 3版本,年底即将Release

 

一、2020年8月,PostgreSQL 13 Beta 3发布,年底即将Release

 

主要增强:

 

  • 分区表JOIN智能裁剪更智能,支持跨范围裁剪;

  • 支持分区表逻辑订阅;

  • 索引性能大幅度提升,同时大幅度降低索引膨胀;

  • GIN 索引NOT条件检索优化;

  • 优化器增强,支持增量SORT;

  • 支持disk hash聚合、disk hash join;

  • 支持单独的hash work mem,TPCH压测性能大幅提升;

  • 垃圾回收维护命令支持异步IO;

  • 支持帮派limit语法;

  • 支持并行vacuum。

 

二、PostgreSQL常用插件动态

 

1、分布式插件citus发布9.4

 

citus是PostgreSQL的一款比较流行的sharding插件,agpl开源协议,目前为微软所拥有,国内苏宁有较大量使用案例。

 

https://github.com/citusdata/citus

 

2、地理信息插件PostGIS 3.1 alpha2版本发布

 

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

 

http://postgis.net/

 

3、时序插件TimescaleDB发布1.7.2

 

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

 

1.7.2的主要功能增强包括:

  • 支持inline 快速裁剪

 

https://github.com/timescale/timescaledb

 

三、PostgreSQL衍生产品动态

 

1、gpdb发布6.10.1版

 

gpdb是兼容PostgreSQL的开源mpp数据库,适合OLAP场景。

 

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

 

 
OceanBase发布2.2.6版本

 

2020年8月20日,OceanBase正式发布2.2.6版本,其中值得关注的新特性有:

 

一、新增功能

 

1、物理备份恢复

 

从2.2.5版本开始,OceanBase提供了基于数据块copy的物理备份恢复特性。在2.2.6版本中,物理备份恢复提供了更加丰富的功能,并对之前版本的很多功能进行了优化来满足客户对于备份恢复的需求:

 

  • 提供集群级别的全量、增量备份功能,支持集群级别的日志备份,备份集加密等功能;

  • 支持用户设置基于recover window的备份策略,并且可以自动或手动删除过期的备份文件;

  • 支持租户级别的完全恢复,以及给予时间点的不完全恢复。同时还提供了对应的视图和命令来对备份文件、恢复过程进行管理。

 

2、主备库

 

在传统数据库领域中,主备模式是数据库系统实现两地三中心容灾的主要特性,OceanBase在2.2.6版本中提供了类似的解决方案:主备库。

 

  • 备库可以提供最大性能、最大保护两种保护模式,并且支持备库在这两种模式间,进行切换;

  • 主备库系统支持,一主对一备,一主对多备等多种部署方式,而且主集群和被集群的节点数、副本数已经解耦;

  • 对于角色切换功能,目前主备库支持switchover和failover两种切换方式。

 

2.2.6版本在其他方面也提供很多新的功能:

 

  • 对回收站功能进行增强,更多的DDL语句都可以被回收站所保存;

  • 提供了更多的SQL语法的支持,例如:select ... for update, 支持更多的窗口函数,聚合函数;

  • OceanBase全链路支持ssl加密;

  • 支持更多的系统权限,角色,针对用户、角色的权限授予、回收功能。

 

二、性能优化

 

  • 单机DML性能提升50%;

  • 更新内容单机单点查询性能提升30%;

  • 分布式读写混合场景提升40%。

 

三、兼容性提升

 

  • 支持兼容Oracle的权限管理体系,包括对象权限、系统权限等;

  • 支持Oracle模式下外键约束的更多DDL操作,包括enable/disable、 validate/novalidate、rely/norely;

  • 更完善的窗口函数支持;

  • 支持pivot/unpivot功能;

  • 支持在DML(insert, update,delete)语句中使用returning ....into语法。

 

NoSQL

 

 
Redis 6.0.0为迄今改变最大版本,最新已发布6.0.6

 

2020年5月1日,Redis 6.0.0稳定版正式GA。如Redis作者antirez所说,这是迄今最“企业”化的版本(SSL与ACL等特性与企业极相关),也是最大的版本,同时也是参与人数最多的版本。GA版本除了比RC1更稳定,还对部分功能进行了重新设计或是进一步的改进:

 

  • 对客户端缓存某方面的功能进行了重新设计,主要是放弃了“缓存插槽”(caching slot)改为使用键名(key name)。另外还新增了“广播模式”(broadcasting mode),当使用广播模式时,服务器不需要记住每个客户端请求的 key。相反,客户端会订阅 key 的前缀:每当有匹配前缀的 key 被修改时,客户端就会收到通知;

  • 用于主从复制的RDB文件如果不再使用会被删除;

  • 新的ACL LOG命令,可查看不遵循 ACL 权限的客户端(例如访问了无权限的命令和key,以及验证失败),主要用于调试ACL问题。此外还有重新实现的ACL GENPASS,它使用了基于SHA256的HMAC加密算法;

  • 改进PSYNC2主从复制协议;

  • 改进Redis命令行的超时选项;

  • 提升RDB文件的加载速度(~20/30%的提升);

  • 新的STRALGO命令,实现了复杂的字符串算法。这是一个重要的算法,主要用于比较冠状病毒的RNA(以及其他生物体的DNA和RNA)。

 

截止至2020年8月底,Redis 6.0.6已发布,此版本修复了一些bug,其中主要内容包括:

 

  • 修复启用带前缀的CLIENT TRACKING时崩溃的问题;

  • EXEC始终会因EXECABORT而失败,并且已清除多状态;

  • RESTORE ABSTTL不会将过期的密钥存储到数据库中;

  • redis-cli能够更好地处理非优先键名;

  • TLS:关闭tls-auth-clients时忽略客户端证书;

  • Tracking:修复刷新时的无效消息;

  • 在Sentinel启动时通知systemd;

  • 修复因滥用STRALGO而导致的崩溃;

  • module API中的一些修复;

  • 修复一些罕见的泄漏(STRALGO错误滥用,Sentinel);

  • 修复了脚本碎片整理中可能的无效访问。

 

新特性:

 

  • LPOS命令,用于在列表中搜索;

  • 在集群模式下的redis-cli和redis-benchmark中使用user+pass进行迁移;

  • redis-cli支持--pipe、-rdb和--replica选项的TLS;

  • TLS:支持会话缓存配置。

 

 
MongoDB发布4.4 Beta版本,被誉为一项“用户驱动的工程”

 

2020年6月9日,MongoDB 4.4发布beta版本,官方表示,MongoDB 4.4是一项“用户驱动的工程”,它提供了许多MongoDB社区最需要的功能和改进。

 

此版本主要更新内容有:

 

  • 增强聚合(Aggregation)功能:使用新的 Union stage 将来自多个集合的数据组合到单个结果集中,能够用于自定义聚合表达式(Custom Aggregation Expressions),并使用新的运算符进行数组处理、字符串操作等;

  • 完善分片键:在扩展时,通过将后缀添加到分片键来修改数据分布;

  • 对冲读取:将读取请求提交到多个副本,以从最快的节点返回结果;

  • 镜像读取:将读取的可配置子集镜像到辅助节点,以保持其缓存。

 

新版本还包括一项其他功能,例如复合哈希分片密钥、可恢复的初始同步、流复制、全局读写问题等等。

 

更多详情:

https://www.mongodb.com/collateral/mongodb-4.4-guide

 

 
RocksDB发布6.11.4版本

 

2020年7月15日,RocksDB发布正式版6.11.4。最近RocksDB主要围绕着6.11.x和6.10.x这几个版本在进行迭代,主要特性如下:

 

  • sst_dump的时候新加了readahead_size参数,可以指定scan时候读取数据的大小;

  • 增加了Options.file_checksum_gen_factory,用户可以指定checksum的函数,在sst 文件写完之后会把checksum和对应的函数名存储在ExternalSstFileInfo;

  • 在MultiGet的时候增加了value_size_soft_limit,用户可以指定读取Value的累积值,当超过Limit之后忽略后面值的读取;

  • 在调用IngestExternalFiles的时候增加了checksum的校验,用户可以通过verify_file_checksum这个参数来指定,为了向后兼容可以不启用checksum的校验;

  • 对BlockBasedTableBuilder增加了Pipeline和并行压缩优化的支持,把 Block Build/Block Compression/Block Append进行Pipeline,并通过多线程来加速整个处理过程,目前还在验证阶段;

  • 提供了memkink的Block Cache分配机制,可提供通过DRAM所能达到的超大高速缓存(大小可达几TB);

  • sst_dump中增加了对不同compression level压缩文件大小和耗时的统计及显示。

 

NewSQL

 

 
TiDB发布4.0 GA版本

 

一、TiDB 4.0 GA Release Notes

 

2020年5月28日,TiDB 4.0 GA发版,此版本不光在稳定性、易用性、性能、云原生等各方面都有了巨大进步,新增的特性也让TiDB产品能够支持更多元的业务类型。

 

1、兼容性变化

 

TiDB

  • 优化事务过大时系统的报错信息,方便排查问题。

 

TiCDC

  • 优化Changefeed配置文件的结构,提升易用性;

  • 新增ignore-txn-start-ts配置项,过滤事务时条件由原来的commit_ts改为start_ts。

 

2、重点修复的Bug

 

TiKV

  • 修复BR备份时出现DefaultNotFound错误的问题;

  • 修复ReadIndex因响应的数据包乱序而导致系统panic的问题;

  • 修复TiKV重启后由于snapshot文件被错误删除导致系统panic的问题。

 

TiFlash

  • 修复因Raft Admin Command处理逻辑不正确,系统panic导致数据可能会丢失的问题。

 

3、新功能

 

TiDB

  • 新增committer-concurrency配置项,用于控制retry commit阶段的goroutine数量;

  • 支持show table partition regions语法; 

  • 新增tmp-storage-quota配置项,用于限制tidb-server使用的临时磁盘空间;

  • 创建和更改表时新增检查分区表是否使用唯一前缀索引的功能; 

  • 支持insert/replace into tbl_name partition(partition_name_list) 语句; 

  • Distinct函数支持检查collations的值;

  • 哈希分区裁剪时支持is null过滤条件; 

  • 分区表中支持admin check index、admin cleanup index和admin recover index;

  • 支持in表达式的范围分区裁剪。

 

TiFlash

  • Learner读取数据时通过Lock CF的min commit ts值过滤出符合条件的TSO对应的数据;

  • 若Timestamp类型的值小于1970-01-01 00:00:00,系统显式报错以避免计算结果出错;

  • Search log的正则表达式支持使用flag参数。

 

TiKV

  • 支持ascii_bin和latin1_bin编码的排序规则。

 

PD

  • 支持为内置的TiDB Dashboard指定反向代理资源前缀;

  • PD client Region相关接口支持返回pending peer和down peer的信息;

  • 添加Direction of hotspot move leader、Direction of hotspot move peer和Hot cache read entry number等监控。

 

Tools

  • Backup & Restore (BR);

  • 支持备份与恢复Sequence和View。

 

TiCDC

  • 创建Changefeed时新增检查Sink URI的合法性;

  • 系统启动时检查PD和TiKV版本是否符合系统要求;

  • 支持同一个调度任务生成周期内可调度多张表;

  • HTTP API中增加节点角色的信息。

 

二、云原生的混沌工程Chaos Mesh正式进入CNCF沙箱托管项目

 

2020年7月21日,云原生计算基金会(CNCF)宣布云原生的混沌工程Chaos Mesh正式进入CNCF沙箱托管项目,这是CNCF接纳的第二个由PingCAP团队设计并研发的项目。

 

Chaos Mesh是一个云原生的混沌工程(Chaos Engineering)平台,可在Kubernetes环境中进行混沌测试,在各种复杂的环境下可使用混沌工程来保证系统能正常稳定运行。现阶段,组成部分包括:

 

  • Chaos Operator:混沌编排的核心组件——完全开源;

  • Chaos Dashboard:用于管理、设计、监控混沌实验的 Web UI——开发中。

 

 
SequoiaDB即将发布5.0正式版

 

SequoiaDB 5.0版本即将在9月正式发布,主要技术特点包括:

 

  • 多引擎多模:将在现有MySQL、PGSQL、Spark、PosixFs基础上,再新增3种数据引擎的支持;

  • 数据一致性增强:将基于专利级别的STP分布是时钟服务,支持Multi-Master的横向扩展;

  • 混合云数据库:支持存储计算分离的云数据库能力,并可进行跨多云平台部署。

 

大数据生态圈

 

 
Hadoop发布3.3.0,官方首个支持ARM架构的版本

 

2020年7月14日,Apache Hadoop团队发布了3.3.0版本,该版本也是官方首个支持ARM架构的版本,主要变更如下:

 

  • Hadoop用于进行数据传输的protocol buffer升级到3.7.1版本,同时也意味着原有的2.5.0版本的protobuf已经寿终正寝;

  • 支持Java 11的运行环境;

  • 改进了使用亚马逊S3A云存储的功能,包括对安全token的支持,能很好的处理404异常等;

  • 修复并改进了Hadoop使用亚马逊ABFS文件系统的一些问题,并补全了包括故障诊断相关的文档;

  • 进一步提升了HDFS路由的安全性并修复一些bug,使得HDFS基于路由的Federation(RBF)更加稳定可靠;

  • 在HDFS中支持了非易失性SCM内存特性,不过当前的目标仅是能够在读缓存中启动SCM。尽管SCM有非易失特性,但为了和当前的只读缓存一致,并没有只用它的持久性特性;

  • 为Yarn的应用程序提供了应用目录功能,为Yarn应用程序提供编辑和搜索接口。这提高了Yarn用于管理应用程序生命周期的可用性;

  • 在Hadoop中,支持了腾讯云的COS文件系统;

  • 支持机会容器的调度功能。支持通过Resource Manager与分布式调度来实现对基于节点利用率的机会容器的调度功能,并且支持容器的升降级。

 

 
Flink发布1.11.1和1.10.2版本

 

一、Flink 1.11.1发布

 

2020年7月21日,Apache Flink社区发布了Apache Flink 1.11系列的第一个错误修正版本。此版本包含44个修复程序以及Flink 1.11.0的较小改进。部分更新内容如下:

 

1、Bugfix

 

  • 修复KafkaITCase#prepare在travis中出现崩溃的问题;

  • 修复IfCallGen会对blink中的基元类型(primitive types)抛出NPE的问题;

  • 修复上传日志时,重新运行失败的azure作业会再次失败的问题;

  • 修复History服务器没有清理所有job json文件的问题;

  • 修复无法从用户的jar包中创建目录的问题;

  • 修复无法使用JdbcCatalog选择字段的问题。

 

2、Improvement

 

  • 为Kubernetes独立文档提供多项更新;

  • 更新'Fault Tolerance training lesson'文档中的首选标签;

  • 修复“流概念”中“检测模式”页面的无效链接;

  • 提供本地安装的入门指南;

  • 在Pyflink文档中添加使用托管内存(Managed Memory)的Python UDF配置;

  • 从MATCH_RECOGNIZE文档中删除Beta标签;

  • 构建兼容性更好的manylinux1而非manylinux2014;

  • Hive bundle jar URLs被破坏。

 

二、Flink 1.10.2发布

 

2020年8月26日,Apache Flink 1.10.2发布,这是Apache Flink 1.10系列的第二个Bugfix版本,总共包含73个修复程序以及针对Flink 1.10.1的小改进。官方强烈建议所有用户升级到Flink 1.10.2。

 

1、Maven

 

 

<dependency>

  <groupId>org.apache.flink</groupId>

  <artifactId>flink-java</artifactId>

  <version>1.10.2</version>

</dependency>

<dependency>

  <groupId>org.apache.flink</groupId>

  <artifactId>flink-streaming-java_2.11</artifactId>

  <version>1.10.2</version>

</dependency>

<dependency>

  <groupId>org.apache.flink</groupId>

  <artifactId>flink-clients_2.11</artifactId>

  <version>1.10.2</version>

</dependency>

 

注意事项:在FLINK-18242之后,过时的类OptionsFactory和ConfigurableOptionsFactory会被移除(不适用于 release-1.10 系列),请使用RocksDBOptionsFactory和ConfigurableRocksDBOptionsFactory代替。如果任何类扩展了DefaultConfigurableOptionsFactory,也请重新编译应用程序代码。

 

默认情况下,在FLINK-17800之后,会为RocksDB的ReadOptions将setTotalOrderSeek设置为true,以防止用户误用optimizeForPointLookup。同时支持ReadOptions通过RocksDBOptionsFactory进行自定义。如果观察到出现任何性能下降的情况,请重新设置setTotalOrderSeek为 false(根据测试通常不会发生)。

 

2、部分更新内容

 

Sub-task

  • 修复当Pod Watcher异常关闭时,在KubernetesResourceManager中导致fatal error的问题;

  • 修复Schema#proctime和Schema#rowtime在TableEnvironment#connect代码路径中不起作用的问题。

 

New Feature

  • 在bugfix版本之间为@PublicEvolving激活japicmp-maven-plugin检查 (x.y.u -> x.y.v)。

 

Improvement

  • 改进引发任何未捕获的异常时,SQL Client崩溃的情况;

  • 内存不足的元空间应在TaskManager中应作为Fatal Error处理;

  • 使内存配置日志记录更加用户友好;

  • 改进Python CI测试的错误报告;

  • 删除配置单元连接器的过时文档。

 

 
Elasticsearch发布7.9.0版本

 

2020年8月,Elasticsearch发布了7.9.0版本,汇集了之前发布的新功能特性,如下:

 

  • 正式发布了transforms特性,自动实时聚合数据,为此还专门增加了独立的数据转换节点角色,可以应对海量数据的挑战;

  • 发布了真正意义上的异步搜索,在应对海量数据检索与聚合时,可以采用异步任务的机制,客户端不用等待超时;

  • EQL(Event Query Language),发布了全新的事件查询语言,专门应对日志、安全等领域的搜索,较之前的DSL有更强的表达能力;

  • 新增Data Streams特性,专门应对时序数据处理场景;

  • Off Heap改进,单节点挂在数据量增加数据倍,内存节约数倍。

 

更多详情:

https://www.elastic.co/guide/en/elasticsearch/reference/7.9/release-notes-7.9.0.html

 

 
Greenplum发布6.10.1版本

 

Greenplum 6.0升级了对应Postgres版本的内核(9.4),从而获得了更多Postgres的兼容特性;大幅增强了OLTP型负载的处理能力,从而胜任流计算和HTAP的场景。Greenplum 6.0的其它重要更新还包括:支持复制表、在线扩容、磁盘配额、支持Zstandard压缩算法、基于流复制的全新高可用机制等。

 

Greenplum 6.0自正式版发布以来,保持每月一个小版本的迭代速率,持续为用户提供新功能和修复补丁,目前的最新版是6.10.1。

 

Greneplum 6.10.1于2020年8月14日发布,累积更新的功能如下:

 

一、Greenplum 6.10

 

新增功能:

  • 支持了新的interconnect模式:代理模式。代理模式比TCP方式占用更少的连接和端口资源,比UDPIFC有更好的性能和容错。使用代理模式需要设置如下参数:

  • 在gp_interconnect_proxy_addresses中指定使用的端口,这个端口需要在maser,standby master,primary和mirror上可用;

  • 将gp_interconnect_type设置为proxy。

  • 支持配置参数max_slot_wal_keep_size,设置了每个segment上允许的最大WAL文件大小,单位为MB,默认是-1,没有限制;

  • 支持配置参数gp_add_column_inherits_table_setting,当对AOCO表添加列时,根据这个参数来决定新列是否继承AO表已有的with定义;

  • 支持了新的参数gp_fts_replication_attempt_count,用来设置FTS的创建连接的最大次数;

  • gpload支持参数FILL_MISSING_FIELDS,允许在数据加载时自动对行尾缺的字段补上空值;

  • gpcheckcat支持新的测试模式,aoseg_table,可以用来检查AOCO表的分区信息是否和pg_attribute一致;

  • pgbouncer升级到1.13版本;

  • PXF升级到5.14版本;

  • GPSS升级到1.4.1版本。

 

二、Greenplum 6.9

 

新增功能:

  • gpss升级到1.4.0;

  • PXF升级到5.13,同时PXF提供了新的安装工具可以单独下载使用。

 

三、Greenplum 6.8

 

新增功能:

  • postgis版本升级为postgis-2.5.4+pivotal.2;

  • gpss升级到1.3.6版本- gpinitsystem的-I参数支持更多的定义节点的格式- PXF升级到5.12版本;

  • PL/Container升级到2.1.2版本;

  • 支持将查询移动到另一个resource group中;

  • 支持gpcc6.2及更高版本的数据采集扩展。

 

国产数据库

 

 
ArkDB兼容MySQL 8.0.20

 

2020年8月18日,ArkDB兼容MySQL 8.0.20,其中值得关注的新改进有:

 

  • 重构主从切换方式,修改为异步切换;

  • 修改在切换的时候,index锁没有释放导致的断言错误问题;

  • 修改多个内部参数变量为原子变量,防止出现并发问题;

  • 修复在REDO LOG复制时,MTR提交被忽略导致的死锁问题;

  • 修改一些兼容性问题,为了更好的使用mysql-test来测试ArkDB;

  • 实现了ArkDB与ArkOLAP同步数据的可靠性,支持断点补数据的功能。

 

此外,新版本也涵盖了一些新功能:

 

  • 增加多个mysql-test针对ArkDB的测试用例;

  • 修改arkolap在8.0.20下的部分功能改进;

  • 增加arkolap后台统计信息;

  • Arkolap支持自增列,自增列只会在ArkDB;

  • 增加参数arkolap_max_sync_cache_size;

  • 支持在 Arkolap 正常shutdown时,等待所有未同步的任务执行完成;

  • 修复arkolap部分join无法执行的问题,修复混合引擎查询的crash的问题;

  • 支持ArkOLAP查询语句中,prepare stmt 占位符和参数;

  • 修改redo日志格式,日志头大小变为4个字节;

  • ArkDB连接层Arkproxy计划开源,代码、文档准备中。

 

 
OushuDB发布v4.0 GA版本

 

2020年7月17日,偶数科技正式发布高性能数据库OushuDB v4.0 GA版本,在4.0 Beta版本的基础上增加了很多广受欢迎的新特性,同时在性能和稳定性方面均得到大幅提升。

 

在之前发布的Beta版本中,主要增加了分布式原生表存储Magma,并将其作为OushuDB的新一代数据存储底层实现,和HDFS并驾齐驱。相较于Beta版,本次正式版增加了以下新特性:

 

  • 全新的HDFS存储上的Native ORC格式,可完整支持Update和Delete,并保证事务ACID属性。解决了传统SQL-on-Hadoop引擎难于支持ACID,保证更新删除一致性的缺点;

  • 全新Dispatcher模块,解除了大规模集群下Master和Segment节点之间连接数的限制;

  • 分区算法优化,极大提升分区表的性能;

  • 新执行器支持MERGE JOIN操作符,优化外存算法临时文件大小;

  • 改进了宽表下analyze的性能。

 

云数据库

 

 
云原生数据仓库AnalyticDB发布新功能

 

一、云原生数据仓库AnalyticDB PostgreSQL版

 

  • 2020.6,发布支持物化视图功能;

  • 2020.6,发布资源弹性模式,支持存储弹性伸缩能力;

  • 2020.6,支持从Oracle、SQL Server到AnalyticDB同步;

  • 2020.7,支持从传统数据库(Oracle、TD)迁移评估功能。

 

二、云原生数据仓库AnalyticDB MySQL版

 

  • 2020.6,发布计算存储规格;

  • 2020.7,基础版支持ESSD存储;

  • 2020.7,发布一键建仓功能,方便用户快速构建数据仓库;

  • 2020.7,发布高性能集群规格C32。

 

更多详情:

https://help.aliyun.com/product/35364.html

https://help.aliyun.com/product/92664.html

 

 
腾讯云两款数据库产品更新

 

一、云原生数据库CynosDB一主多从上线

 

2020年6月15日,CynosDB全面升级集群扩展能力,支持一主多从,秒级添加只读节点,基于Redo日志的主从同步延迟达到毫秒级。

 

功能速递:

  • 秒级扩展只读实例,毫秒级延迟,轻松应对业务峰值;

  • 秒级原地升降配,无需复制搬迁数据;

  • 秒级快照备份,物理备份对业务“零”影响;

  • GB/s级的回档速度,发布变更全程无忧。

 

更多详情:

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

 

二、Redis混合存储版正式发布

 

2020年8月20日,Redis发布混合存储版。云厂商中唯一支持原生Redis混合存储方案的产品,产品特性包括:

 

  • 降成本:相对Redis纯内存方案,降低90%的存储成本;

  • 提效率:缓存+存储的混存架构,自动降冷、自动缓存、自动扩展,在存储层实现了冷热数据分级存储,大大提高研发效率;

  • 大容量:分布式Share Nothing架构,提供PB级别的存储容量。

 

 
京东智联云新产品公测及产品功能更新

 

一、分析型云数据库JCHDB公测

 

JCHDB是京东智联云基于开源ClickHouse打造的分析型云数据库,具有分布式架构,可实现多核、多节点的并行化查询,其查询性能比传统开源数据库的高1-2个数量级。

 

主要特性:

  • 高查询性能:通过多节点的分布式架构和多CPU的并行处理,结合高效的压缩算法和向量化引擎,其查询性能比传统开源数据库高1-2个数量级;

  • 多数据副本:支持多数据库副本,采用异步多主复制,写入任何可用的副本后,数据将分发到所有剩余的副本,在不同的副本上保持相同的数据;

  • 规格丰富,扩展力强:可自行定义分片数和副本数,充分满足不同业务场景的需求。

 

二、产品功能更新

 

1、云数据库MySQL、MariaDB、Percona

 

  • 提供运维账号,支持数据库实例临时授权,方便技术支持人员运维;

  • 支持单实例,适用于临时测试场景,降低测试成本;

  • 实例本地SSD盘容量最大支持3T;

  • 控制台支持一键提升数据库账号为管理员权限。

 

2、云数据库PostgreSQL

 

  • 支持DMS数据管理工具,方便开发测试人员访问;

  • 支持外部数据源接入,提供s3_fdw插件实现PostgreSQL到云存储双向数据传输。

 

3、数据库仓库JDW

 

  • 支持审计,可记录用户执行的所有SQL语句,满足安全合规要求;

  • 支持创建Greenplum 6.1集群,对应PostgreSQL 9.4版本;

  • 支持bitmap插件,人群圈选场景。

 

4、分布式关系型数据库DRDS

 

  • 支持自动读写分离,只读节点可负载分担,单个只读节点故障不影响服务;

  • 支持小表广播。

 

5、云搜索Elasticsearch

 

  • 开放关键参数高级配置,便于集群调优;

  • 支持周期创建索引,实现索引的生命周期管理;

  • 支持SQL插件,满足不用用户的使用习惯;

  • 支持数据节点缩容,保障用户有适量的资源,节约成本;

  • 支持7.5.2版本,满足不同用户的需求。

 

6、数据传输DTS

 

DTS提供数据订阅功能:

  • 提供数据订阅服务,可实时获取数据库的增量数据,并根据业务需求自由消费,可用于缓存更新策略、业务异步解耦等场景;

  • 支持订阅云数据库MySQL、自建MySQL的增量数据,订阅目标端为Kafka实例,通过使用Kafka Client可以直接消费数据订阅通道中的数据。

 

 
RadonDB即将发布1.1.2版本

 

RadonDB即将发布1.1.2版本,自上次1.1.0到这个版本期间也发布了1.1.1和1.1.2版本,主要功能点如下:

 

1、一键数据均衡功能:radon rebalance

 

在用户业务在分布式数据库上运行一段时间后,在大量数据的写入下,通过监控会发现不同后端数据有多有少,随数据量的增加,有的差别会比较大,从而导致数据量很大的节点负载会比较重。基于这种场景,我们新增加了数据均衡功能:radon rebalance。这个命令旨在重新平衡后端之间的数据(分区表)。

 

更多详情:

https://github.com/radondb/radon/blob/master/docs/sql_statements/radon_administration_statements.md#radon-rebalance

 

2、进一步完善读写分离功能

 

3、支持白名单地址段功能

 

针对有些用户需要支持一些连续地址片段的白名单,比如10.0.0.0/24,配置可以根据正则表达式进行配置。

 

更多详情:

https://github.com/radondb/radon/blob/master/docs/api.md#config

 

4、增加xa事务的管理功能

 

针对一些异常场景下两阶段事务中有些prepared事务没有最终提交,且后端节点可能比较多,需要提供统一管理接口可以查看整体集群中事务相关状态,并能及时处理异常事务。

 

更多详情:

https://github.com/radondb/radon/issues/602

 

5、丰富和完善集成测试相关case

 

6、各种生产环境和场景下发现的问题的fix和完善,如并发极端情况的死锁问题

 

以上功能已全部包含在我们的master分支:

https://github.com/radondb/radon

https://github.com/radondb/radon/releases/tag/v1.1.1

https://github.com/radondb/radon/milestone/14?closed=1

 

推出dbaplus Newsletter的想法

 

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

 

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

 

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

 

感谢名单

 

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

 

 

  • 欢迎提供Newsletter信息,

    发送至邮箱:newsletter@dbaplus.cn

  • Github地址:

    https://github.com/dbaplus/DBAplus_Newsletter 

  • 欢迎技术文章投稿,

    发送至邮箱:editor@dbaplus.cn

 

往期回顾:

 

最新评论
访客 2020年09月22日

完蛋了 看我我感觉我彻底不会MySQL了

访客 2020年09月21日

你们的数据量有多大,对于TB级数据支撑的了么?本人测…

访客 2020年09月20日

zan

访客 2020年09月18日

访客 2020年09月14日

您好,请问您运用JanusGraph对比的数据后端存储用的是…

活动预告