2022上半年盘点:20+主流数据库重大更新及技术要点汇总

数据库行业半年度回顾

“多元化+差异化”的齐头并进

2022年上半年,各数据库厂商及产品都取得了长足的进步,在某些重点技术领域的突破,无论是产品还是市场方面都得到了不错的反馈,特别是以国产化、云为代表的厂商及产品表现突出。

创新互联公司是一家网站建设、成都网站制作,提供网页设计,网站设计,网站制作,建网站,定制制作,网站开发公司,成立与2013年是互联行业建设者,服务者。以提升客户品牌价值为核心业务,全程参与项目的网站策划设计制作,前端开发,后台程序制作以及后期项目运营并提出专业建议和思路。

从技术方向上看,以分布式、云原生、多模异构、HTAP、AI自治、安全为代表的技术,成为了各个产品发展的重点。在过去数年,分布式数据库发展迅速,是面对海量规模及高并发等场景的利器。通过数年实践,产品的基本功能、稳定性、性能等方面已趋于成熟,各家产品开始在易用性、可观察性、诊断能力、生态兼容等方向发力,并陆续开始有成果落地。相信分布式数据库的不断发展,会在未来得到更大范围的使用。

另一个热点方向则是HTAP,特别是分布式能力的引入,为AP方向的能力提供了更多算力,也为HTAP带来更多想象空间。从用户视角来看,HTAP简化了原有技术栈,统一访问方式,为用户带来更优质的体验。从发展来看,各家产品从HTAP能力的初步具备,逐步过渡到更精准的资源控制、更高效的执行效率等阶段,改善用户使用体验。未来对数据库,特别是分布式数据库而言,HTAP能力将成为厂商竞争的主要方向之一。

在云数据库领域,云原生数据库成为焦点,各厂商已从传统数据库托管类产品的竞争,过渡到自有云原生数据库产品的较量,承载规模、弹性能力、极致性价比等成为了发展要点,特别是Serverless方向,已成为后续发展的主流方向之一。虽然目前尚处于较早期的阶段,但其现有能力已非常诱人,未来发展空间巨大,甚至有可能成为各家发展的分水岭,带来弯道超车的契机。

在NoSQL领域,以图、时序为代表的产品成为了发展热点,一大批初创企业及产品受到了更多关注。在产品能力上,纷纷从兼容生态、突出核心、提升易用性等角度切入,并在更多场景上得到使用验证,大大扩展了原有的使用空间。此外,AI与数据库的结合、新型硬件的使用、安全能力也是各家发展的方向之一。

从数据库厂商对产品研发的角度上看,大厂重点落在智能化、新硬件、数据流转等方向;云厂商在构建新一代云原生、Serverless等方向发力,希望找到突破口实现产品升级;新兴厂商则在某些垂直领域,如HTAP、NoSQL、高兼容等方向着手,寻找差异化竞争路线;而开源产品,则更多在企业级能力、安全性等方面不断提升。

数据库产品半年度盘点

主流数据库的版本升级与更新亮点

在如此百花争鸣的2022上半年,dbaplus社群携手一众数据库行业专家,汇总、梳理并提炼出主流数据库近半年的版本更迭、性能优化、功能提升等关键信息,希望对大家了解数据库发展趋势,以及数据库选型工作有所帮助和启发。

本期要点

DB-Engines数据库排行榜

一、RDBMS

  • Oracle Exadata X9M-2和X9M-8新特性
  • MySQL发布8.0.28和8.0.29版本
  • MariaDB 10.8新特性
  • PostgreSQL发布15 beta 1和14.4版本
  • OceanBase企业版及社区版共迭代9个版本

二、NoSQL

  • Redis发布7.0版本

三、NewSQL

  • TiDB共发布3个大版本

四、时序数据库

  • MatrixDB发布4.4及4.5版本

五、大数据生态圈

  • Elastic共发布4个大版本
  • Greenplum共发布3个大版本
  • Flink发布1.15.0版本
  • ClickHouse共发布6个版本

六、国产数据库

  • ​SequoiaDB发布3.6及5.0.3版本​
  • 达梦数据库发布DM 8.1.2.116版本
  • QianBase发布1.6.6SP6_1~SP6_3
  • ArkDB主要提升及优化
  • OushuDB 5.0版本更新概要

七、云数据库

  • 华为云2022上半年数据库产品更新汇总
  • 阿里云2022上半年数据库产品更新汇总
  • 腾讯云2022上半年数据库产品更新汇总
  • 京东云2022上半年数据库产品更新汇总
  • 青云2022上半年大数据及数据库产品更新汇总

DB-Engines数据库排行榜

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

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

  • Google及Bing搜索引擎的关键字搜索数量;
  • Google Trends的搜索数量;
  • Indeed网站中的职位搜索量;
  • LinkedIn中提到关键字的个人资料数;
  • Stackoverflow上相关的问题和关注者数。

RDBMS

Oracle Exadata X9M-2和X9M-8新特性

Oracle Exadata数据库云平台通过集成设计为Oracle数据库带来出色的性能、可用性和成本效益。

一、最新的Exadata X9M-2和X9M-8特性

  1. 延续了X8M在Exadata存储服务器中添加了Intel Optane™ Persistent Memory,使用100Gb RDMA over Converged Ethernet(RoCE)内部网络架构,取代了之前的InfiniBand网络架构。
  2. 直接从数据库使用RDMA访问智能存储服务器中的持久内存,绕过整个操作系统、I/O和网络软件堆栈,显著降低延迟和提高吞吐量,实现小于19微秒OLTP IO延迟。
  3. Exadata X9M这一系列产品相较于X8M在性能上有了进一步提升,但报价保持不变,性价比大幅提升。

二、同一Exadata Cloud@Customer上支持自治和非自治数据库

2022年3月16日,Oracle宣布在同一Exadata专有云数据库一体机(Exadata Cloud@Customer)上支持自治和非自治数据库。多VM自治数据库允许客户使用自己的访问规则、配额和性能SLO来配置隔离的操作环境,例如开发测试、生产。这反过来又使企业不仅可以迁移现有数据库并对其进行现代化改造以获得云优势,还可以创建一个符合公司治理标准的自助服务数据库应用程序开发平台。新的多虚拟机自治数据库功能使企业能够以更低的成本更轻松地采用ADB,为开发人员提供用于新应用程序的完整且简单的自助服务数据库。

三、零数据丢失恢复一体机(ZDLRA)最新的名称改为RA21

Oracle零数据丢失恢复一体机(简称RA21)是一个突破性的数据保护解决方案,不仅消除了数据丢失风险,大幅降低数据保护给生产服务器带来的开销,还能持续验证数据的完整性和可恢复性,通过不断扩展来保护数以千计的数据库,同时为数据备份提供完整生命周期保护,包括磁盘备份、磁带备份和远程复制。

MySQL发布8.0.28和8.0.29版本

2022年上半年,MySQL 8.0发布了8.0.28和8.0.29两个版本,修复了大量的bug,在性能和稳定性方面进一步增强。另外,HeatWave发布了重磅的机器学习功能,以下是详细介绍。

一、优化

InnoDB:InnoDB现在支持 ALTER TABLE ... RENAME COLUMN和ALTER TABLE ... DROP COLUMN使用 ALGORITHM=INSTANT。该操作只修改数据字典中元数据,表数据不受影响,使操作可以瞬时完成。如果未明确指定,只要该DDL支持INSTANT操作,会默认使用。

从MySQL 8.0.29开始,可以将瞬时添加的列添加到表中的任何位置,瞬时添加或删除的列会创建一个新的行版本。最多允许64行版本。

二、复制和克隆

replica_parallel_type系统变量现在已被弃用;每当读取或设置这个变量,或者在my.cnf中设置该选项时,服务器就会发出弃用警告。

8.0.29版本引入了binlog_expire_logs_auto_purge系统变量来控制服务器自动清除二进制日志文件。

group_replication_set_as_primary函数,可以指定新的master成员,用于覆盖自动选举过程产生的master成员。

克隆:增加系统变量“clone_delay_after_data_drop”,允许在接收者删除数据之后增加延时,以使接收者在开始克隆之前释放足够的空间。

三、运维监控

Performance Schema的变化:计时器THREAD_CPU已添加到Performance Schema PERFORMANCE_TIMERS表中。

tmp_table_size变量现在定义由TempTable存储引擎创建的单个内存内部临时表的最大大小。适当的大小限制可防止单个查询消耗过多的全局TempTable资源。

innodb_open_files变量定义了InnoDB一次可以打开的文件数,现在可以在运行时使用语句进行设置。方法是执行SELECT innodb_set_open_files_limit(N)。

8.0.28版本起在全局和每个用户的基础上引入了对内存分配的监视和限制。现在可以通过检查Global_connection_memory状态变量的值来观察所有用户连接消耗的总内存,该变量必须通过设置global_connection_memory_tracking = 1来启用。

字符串:服务器在使用“SHOW”语句输出及报告无效字符时,使用utf8mb3代替之前使用的utf8。

四、开发

时间格式:MySQL之前对时间格式的分隔符或空白等要求宽松,从8.0.29版本开始,则推荐用户使用标准格式,使用其他格式将输出警告信息。

派生的物化表条件推送优化现在可以在大多数的union语句使用。这意味着外部 WHERE条件现在可以推送到物化派生表或视图的查询表达式中的每个查询块中。

函数FROM_UNIXTIME (), UNIX_TIMESTAMP (),和CONVERT_TZ ()可以处理64位的值,FROM_UNIXTIME ()现在支持最大的参数是32536771199.999999秒,对应'3001-01-18 23:59:59.999999' UTC。UNIX_TIMESTAMP ()支持接收最大值'3001-01-18 23:59:59.999999' UTC,对应32536771199.999999秒。

字符集latin1的快捷方式ASCII和UNICODE的快捷方式ucs2被弃用,MySQL的未来版本中将删除它们。用户可以使用CHARACTER SET代替。

五、HeatWave

HeatWave用户现在可以使用内置的HeatWave机器学习(ML),这是一种完全托管、高度可扩展、经济高效的机器学习解决方案,适用于存储在MySQL中的数据。HeatWave ML提供了一个简单的SQL接口,用于训练和使用预测机器学习模型,新手和经验丰富的ML从业者都可以使用。使用HeatWave ML,用户只需调用SQL即可训练模型。同样,用户可以使用单个语句生成预测,从而轻松地集成到用户的应用程序中。

HeatWave现在支持多达1017个基本关系列(加载到HeatWave中的表),以及多达1800个中间关系列(查询处理期间使用的中间表)。基本关系和中间关系的最大列宽增加到了65532字节。

MariaDB 10.8新特性

一、Alter修改表结构实现从库无延迟并行复制

通常,ALTER TABLE主库上执行完毕后,才会被复制并开始在从库上执行。有了这个特性后,当ALTER TABLE在主库上开始执行时,它会立刻被复制并开始在从库上执行,完全消除了从库的复制滞后,实现了从库无延迟并行复制。

使用:

MariaDB[test]> set global binlog_alter_two_phase=1;
MariaDB[test]> set binlog_alter_two_phase=1;
MariaDB[test]> alter table sbtest1 add index IX_pad(pad);

ALTER TABLE回车后,可以立即用mysqlbinlog工具去查看binlog,此时LTER TABLE语句已经记录在binlog文件里。

二、多源复制支持MySQL样式的CHANNEL语法

多源复制可以实现数据分析部门的需求,将多个系统的数据汇聚到一台服务器上进行OLAP(联机分析处理)计算。在10.7及以上版本里,支持MySQL 5.7多源复制的语法。

三、支持降序索引

从10.8版本开始支持降序索引(InnoDB引擎)。可以直接将索引定义为DESC,这样在存储的时候就是降序保存的,在进行降序扫描时,性能会得到大幅度提升。当然,这样做最大的好处是,我们可以用索引处理(order by a desc,b asc,c desc)混合排序的查询了。在10.8之前的版本中,排序的字段顺序必须一致,否则使用不到索引,通过explain命令查看,结果中会出现文件排序(filesort)。

四、MariaDB Xpand分布式数据库发布

MariaDB Xpand是一款(MySQL客户端协议)在线事务处理(OLTP)分布式数据库(对标PostgreSQL协议的CockroachDB),Xpand则是存储引擎。

使用MariaDB Xpand需要许可证密钥(45天非生产试用期)。软件下载地址 https://mariadb.com/downloads/#xpand

特点:

  • 符合ACID的分布式数据库,适用于海量数据、高并发和强一致性在线事务处理(OLTP);
  • 弹性动态横向扩容;
  • Paxos高可用性;
  • 数据分布通过Xpand水平划分为切片,并将切片的副本(默认两个)分布在节点之间;
  • 无限读写扩展,采用无共享架构;
  • 支持复杂查询(例如JOIN和分组聚合操作)。

PostgreSQL发布15 beta 1和14.4版本

2022年1月至今,PostgreSQL发布了15 beta 1和14.4等多个版本,其中值得关注的增强有:

一、性能增强

  1. 排序性能提升显著,尤其是在需要排序的数据量超过了work_mem的情况下,in-memory的排序性能也有所提升;
  2. group by会自动优化列的顺序;
  3. postgres_fdw外部表支持下推case when表达式;
  4. 窗口函数row_number(), rank()和count()性能提升;
  5. full-page-write全页写支持lz4和zstd压缩算法;
  6. \copy元命令加载性能提升;
  7. pg_upgrade和pg_dump性能提升。

二、逻辑复制增强

  1. 支持直接发布某个模式下的所有表;
  2. 发布端支持指定某些列进行发布,比如create publication pub1 for table t2(info);
  3. 发布端支持过滤条件,比如create publication p2 for table t1, t2 where (e = 99);
  4. 原生逻辑复制支持预备事务。

三、并行增强

  1. select distinct支持并行,并行特性继续加强;
  2. postgres_fdw()支持并行提交,之前的版本是本地事务提交之后再串行提交远端事务;
  3. 外部表的查询现在可以在更多的情况下使用并行扫描。

四、其他增强

  1. 支持merge语法,以前的版本可以使用insert ... on conflict替代;
  2. 新增多种正则表达式,regexp_count(),regexp_instr(),regexp_like()和regexp_substr();
  3. 新增SQL/JSON构造器;
  4. 新增SQL/JSON查询函数,json_exists()、json_query()和json_value();
  5. 唯一约束和索引支持将NULL视为不同的值,之前的版本需要使用表达式索引进行限制;
  6. 日志支持JSON格式。

五、相关动态

CitusData于日前推出了Citus 11.0,并宣布将所有企业版的特性都进行开源。此前,Citus在版本更新时通常会同步发布2个版本:开源版本和包含一些额外功能的企业版本。

14.4版本修复了之前的14.0、14.1和14.2三个版本中使用create index concurrently和reindex concurrently导致索引损坏的BUG,会导致数据不一致,需要尽快升级至14.4版本。

OceanBase企业版及社区版共迭代9个版本

2022年1月至今,OceanBase数据库共计迭代9个版本(企业版及社区版),进一步提升与增强性能、安全性、兼容性、诊断监控等企业级核心能力。其中,OceanBase 3.2.3作为3.x的LTS版本,是完整HTAP能力的重要里程碑,新特性如下:

一、OceanBase企业版关键特性

  1. HTAP能力:全面实现向量化引擎,支持所有基础算子向量化,复杂查询场景下带来数量级的性能飞跃,TPC-H性能相比OceanBase 2.2.x提升10倍。
  2. 性能:优化Nest Loop Join,性能提升1倍;支持多表关联SQL语句转化为Nest Loop Join执行计划,通过算子优化大幅提升多表关联性能;提升Table API流式扫描性能,OceanBase 3.2.3流式扫描性能达到HBase 2.4.6的2.2倍。
  3. 兼容性:Oracle模式新增DBLink功能,支持用户通过DBLink访问Oracle的数据;MySQL模式引入Oracle模式的Sequence功能。兼容MySQL 8.0 CTE和CHECK检查约束功能。
  4. 诊断监控:存储过程支持GET DIAGNOSTICS诊断,可使用该功能获取SQL语句或者存储过程执行时的错误信息,帮助用户快速定位、排查解决问题;OCP引入SQL画像和事务画像功能。
  5. 安全性:新增备份恢复完整性校验功能,帮助用户快速发现磁盘静默故障;ODC支持操作记录审计功能,自动记录所有的数据库变更操作。

二、OceanBase社区版关键特性

  1. 支持OBKV能力:提供HBase模型和Table模型的NoSQL能力。读写综合性能超越HBase,且能复用OceanBase底层的强一致和异地容灾能力,并避免了HBase的性能抖动问题。
  2. 支持兼容MySQL 5.7版本的JSON功能,提供半结构化数据支持:很多用户会使用JSON类型存储半结构化数据以弥补关系模型的不足,相比TEXT和LOB类型,JSON类型存储半结构化数据时性能更好,支持高效索引和合法性校验。
  3. 支持回收站中的对象恢复,极大降低因误操作导致的潜在风险:表格删除后进入到回收站,Flashback Table能够将回收站误删除的表格恢复出来,防止误操作。
  4. CDC支持大事务:通过新增持久化模式,数据在同步开始前先进行本地临时存储,避免CDC传输大事务时因内存溢出OOM而导致的断开链接问题。
  5. 支持Kubernetes Operator:用户可以通过容器的形式将OceanBase运行在公有云或私有化部署的Kubernetes集群。
  6. 部署更加便捷:面向开发者提供更加友好的使用体验。将Docker镜像由2C10G优化至2C8G,降低开发者在个人电脑使用OceanBase的门槛。另外,新增了ARM架构支持。

NoSQL

Redis发布7.0版本

2022年4月27日,Redis正式发布7.0版本,该版本持续开发了近1年之久,在GA版本前有3个候选版本,目前相当稳定,可以用于生产。从Itamar Haber关于版本更新的介绍中可以看出许多优秀的特性和功能来源于Redis用户的反馈和生产环境的使用经验教训,其中值得关注的更新要点有:

  1. Redis Functions:使用服务端的脚本来扩展Redis的新方法;
  2. ACLv2:基于键的更细粒度的访问权限管理,允许用户使用selectors管理多组命令规则;
  3. 集群:支持分片(特定节点)发布/订阅;
  4. 大多数情况下对子命令的一流的处理(影响ACL类别、info命令的统计等);
  5. Multi-Part AOF:将AOF作为多个AOF文件存储在一个文件夹中避免AOF重写带来的性能开销;可以通过配置选项appenddirname设置存放多个AOF文件的存放目录;
  6. 命令键规格:是客户端查找key参数及其读/写目的的更好方法;
  7. 集群:支持主机名,而不仅仅是IP地址;
  8. 改进了对网络缓冲区消耗的内存的管理,以及一个用于当总内存超过限制时删除客户端的配置选项maxmemory-clients;
  9. 集群:断开集群总线的连接以防止不受控制的缓冲区增涨的机制;
  10. AOF:时间戳注释和支持指定时间点的恢复,对于故障恢复非常有用;
  11. Lua:支持EVAL脚本中的函数标志;支持Verbatim和Big-Number类型的RESP3协议的回复;通过redis.REDIS_VERSION,redis.REDIS_VERSION_NUM获取Redis版本;
  12. Redis 7.0开始对RDB文件使用了新版本10格式,与旧版本不兼容,升级时需要仔细阅读,提前测试好兼容性,不可回退;
  13. 为Redis Functions和eval Lua脚本添加API以显式检查ACL;
  14. 键空间事件支持新建的key;
  15. 用listpack替换Hash、List、Zset中的ziplist,以提升性能;
  16. CLUSTER SHARDS命令弃用CLUSTER SLOTS,解锁集群管理更多技巧;
  17. CONFIG SET/GET可以在一次调用中处理多个配置;
  18. 升级jemalloc版本到5.2.1;
  19. list类型支持添加存储大于4GB的元素;
  20. 配置:repl-diskless-sync(无盘复制)现在默认设置为yes;
  21. 移除gopher协议的支持;
  22. 现在允许在数据加载期间使用CONFIG SET、REWRITE、RESETSTAT等命令,管理起来更加友好;
  23. SCRIPT LOAD和SCRIPT FLUSH不再传播到副本/AOF;
  24. 新增许多命令,如:ZMPOP、BZMPOP、LMPOP, BLMPOP、SINTERCARD、ZINTERCARD等。

Redis 7.0添加了近50个新命令和选项来扩展Redis的现有功能。例如,bitmap、list、set、sorted set和stream类型都添加了支持其数据管理用例的功能。此外,缓存语义已扩展为支持存在和比较修饰符。

Redis 7.0特别注重在内存使用率上优化和命令执行性能上的提升,对其管理的每个子系统基本上都进行了多项改进,包括内存、计算、网络和存储。虽然默认情况下启用了一些优化,但其它优化可能需要配置才可以生效。

NewSQL

TiDB共发布3个大版本

2022年1月至今,TiDB陆续发布了5.4、6.0、6.1三个大版本,在性能、兼容性、稳定性、安全性、可用性、可观测性、可管理性等方面做了大量改进,企业级HTAP与云数据库能力得到大幅增强。以上三个版本累计发布新增特性和增强功能145个,修复问题236个,其中值得关注的更新有:

  1. 稳定性:TiDB 6.1作为TiDB 6系版本的长期支持版(Long Term Support),在多个层面夯实产品的稳定性,例如提升TiKV高压场景下的内存稳定性,解决了由于Raft Log复制流量过大导致的OOM问题。
  2. 性能:TiDB 5.4版本中TiFlash存储层大幅优化行存到列存转码效率,在不同并发情况下实测吞吐性能提高60%~90%;新增索引合并查询优化,允许优化器在查询处理中同时选择使用多列的索引以减少回表。
  3. HTAP能力:分析引擎在MPP推出后不断走向成熟,并于4月1日在GitHub开源。6.0版本中TiFlash新增100多个常用内建函数以及若干表关联算子,引入了全新的弹性线程池,这使得TiDB MPP模式在短查询下达到同等计算资源倍增的计算性能,且在高压力查询时稳定性更佳。6.1版本中,分区表的实验特性GA,新增TiFlash MPP下的窗口函数支持。
  4. 可管理性:TiDB 6.0引入数据放置框架,提供了针对分区/表/库级数据在不同标签节点之间的自由放置接口,用户可以针对某张表,某个数据分区的存储位置做出自定义的选择;发布企业级集群管理组件TiUniManager,提供对TiDB集群的全生命周期可视化管理;开放了智能诊断服务PingCAP Clinic的预览,集成了诊断数据采集、智能诊断、智能巡检、云诊断平台等功能。
  5. 数据生态:TiDB 6.0版本中TiCDC对于增量数据的提取、排序、加载、投递等多个处理流程都进行了优化。TiDB 6.1引入了用户级别锁和TiCDC下的Avro格式向Kafka同步数据的支持。TiDB 5.4强化了数据备份效率,在支持Amazon S3、Google Cloud Storage的基础上,新增对Azure环境的支持。

此外,2022年5月,PingCAP宣布TiDB Cloud在全球范围正式商用,为用户提供云上全托管的DBaaS服务,支持用户在全托管的数据库上运行关键业务交易和实时分析任务,充分享受云上的性能优势和业务连续性保障。

时序数据库

MatrixDB发布4.4及4.5版本

2022年上半年,MatrixDB总共更新了2个版本,4.4~4.5,主要特性包括Mars2存储引擎、流式计算、兼容Kubernetes与Prometheus生态等,在数据写入、数据存储、集群监控方面都取得了重大突破,详细更新如下:

  1. Mars2存储引擎:在Mars存储引擎的基础上,开发出了第二代存储引擎Mars2。相比一代,Mars2性能更高,并可以在引擎内部后台自动压缩,不再需要显式压缩转换;对upsert语义支持更好;支持列存压缩,空间占用更小。
  2. 监控系统升级:与Prometheus生态完美对接。
  3. MatrixGate升级:支持数据去重;新增超时设置,提高健壮性;支持指标信息查看,方便了解系统负载及定位问题。
  4. 滑动窗口流式计算:在流计算场景,可以对最近一段时间内的数据持续地分析运算。不同于滚筒窗口的不重叠,滑动窗口的时间窗口是可以重叠的。滑动窗口通常搭配监控告警使用,当最近一段时间内数据满足预设条件时,数据服务端会向客户端发送告警消息。
  5. Kubernetes支持:与Kubernetes生态完美兼容,可以在Kubernetes上部署MatrixDB集群。
  6. MxBench性能测试工具:MxBench是MatrixDB数据加载和查询的压测工具,可以根据用户给定的设备数量、时间范围、指标数量配置快速生成随机数据,自动创建数据表,串行或并发进行数据加载和查询。用户可以灵活配置指标类型、采集频率、空值率、随机度等,还可以指定查询的线程数、定制查询语句等。
  7. 查询统计组件:通过将相同的查询汇总到一起,来统计查询执行次数、耗时、资源占用信息等。对数据库执行过的SQL进行统计和监控,从而更好地了解各种类型查询的资源消耗,以及发现分析慢查询。

大数据生态圈

Elastic共发布4个大版本

截至2022年6月底,Elastic.co发布了4个大版本,从7.17.X~8.2.X,每个大版本中间包括几个小升级版本;7.17.X与8.0.X属于同步发行版本,7.17.X版本的主要作用是帮助7.X版本升级并顺利迁移到8.X版本,作为中间的过渡版本。2022年最重要的是结束了7.X版本延续,发布了8.X,并侧重更多的智能搜索能力特性。

7.17.X~8.2.X版本的增强与提升:

1、Elasticsearch Java Api Client:自7.15版本开始,在Java编程语言范围内,Elastic.co官方推荐开发者使用Java Api Client进行应用集成,同比Java High Level REST Client更加轻量,更少依赖,更适合Java语言最新特性,至此到8.0版本开始,从官方层面不再更新维护Java High Level REST Client,也是作为一个时代的演变的结束。

2、Security:

  • 自8.0版本开始,Elasticsearch默认会启动基本的安全策略,并自动配置生成安全证书,同时启用ssl/https;
  • 集群内部tcp通信需要配置ca证书,新节点加入已有集群,可以通过专用工具生成临时的token;
  • 集群外部访问也需要配置https证书,同时需要使用分配的用户名与密码访问。

3、KNN aearch api:

  • KNN,全称“k-nearest neighbor”,直译“近邻算法”,是数据挖掘或者机器学习中经典朴素简单的算法之一;
  • Elasticsearch在较早时间,引入了向量字段类型“dense_vector”,支持了更多的智能搜索,如NLP、图像、语音等领域搜索,但是由于查询时采用脚本动态计算模型,性能上容易出现瓶颈,8.0版本引入KNN算法模型,可有效满足更大规模的向量检索,同比性能提升数倍;
  • Elasticsearch目前引入的KNN算法模型并非朴素的算法,而是目前业界最流行的“HSSW Algorithm”,详细参考wiki。

4、PyTorch for nlp:8.0版本引入了PyTorch模型支持,更方便地支持NLP应用 。

5、Storage savings:8.0版本发布,针对keyword、match_only_text、text类型,采用了更高效的文本编码算法,节约了更多的存储空间,若是应用于日志领域,效果应该更明显。实际上从7.0到7.17版本,中间也有多次存储空间的效能提升。

6、Doc value only search:

  • 针对一些简单的字段类型,elasticsearch提供了基于doc_value的检索能力, 通过牺牲原有倒排索引的检索能力,换取了更快的索引写入速度、更高的压缩存储能力,更快统计聚合与排序性能;
  • 目前支持的字段包括:numeric数值类型、date日期类型、keyword类型、ip地址、boolean布尔类型。

7、OpenJDK upgrade:Elasticsearch当前已经升级到OpenJDK 18.X。

Greenplum共发布3个大版本

2022年1月1日至今,Greenplum发布了从6.19.1到最新版6.21.0(6月15日发布),共三个大版本。Greenplum 内核基于 PostgreSQL,针对大数据场景和用户需求开发了众多优秀特性并作了极致优化。随着Greenplum 版本更新至6.20,内核部分主要更新内容如下:

  1. Greenplum 6.20.0 引入了新的 contrib 模块gp_array_agg。该模块为Greenplum数据库实现了一个并行的array_agg( )聚合函数。
  2. 查询优化器(GPORCA)现在支持对包含堆分区和AO分区的分区表进行位图扫描。
  3. 查询优化器(GPORCA)支持为有序聚合生成查询计划,从而提高查询性能。
  4. GPDB 支持平台更加丰富,添加了对Redhat RHEL8版本的支持。
  5. 安全方面的改进和提升。
  6. Resource Group:资源组在按百分比分配CPU资源方面,将包括一个新模式。之前支持弹性模式,若系统有空余资源,可动态分配。现在,除了现有的弹性模式,还支持强制模式,严格按照配置供给资源,有效满足了客户更丰富的场景需求。
  7. gp_parallel_retrieve_cursor 并行检索cursor模块:用户可以使用它在Greenplum数据库主节点上创建一种特殊的cursor,并按需要或并行地直接从Greenplum segment上检索查询结果。Greenplum将这种cursor称为并行检索cursor。
  8. Greenplum新增了对pg_trgm和btree_gin两个插件的默认支持:pg_trgm提供了基于三元组搜索的文本相似度计算函数,以及相应的索引运算符。btree_gin为常用数据类型实现了 GIN 索引运算符类。
  9. GP2GP功能:greenplum_fdw模块是一个外部数据包装器(FDW),用户可使用它在一个或多个Greenplum Database version 6.20+集群上运行查询。通过新的greenplum_fdw模块和gp_parallel_retrieve_cursor模块,可访问存储在一个或多个外部Greenplum数据库集群中的数据,达到并行按需获取,实现跨集群cluster的并行和按需检索数据。
  10. 安全保护加强:Greenplum Database 6.21.0增加了对scram -sha-256密码哈希算法和scram -sha-256客户端身份验证方法的支持,增强密码安全保护。
  11. Diskquota升级至2.0版本:新版Diskquota增加了hard-limit模式,如果查询在执行期间超出磁盘配额限制,将强制终止该查询。与此同时,针对不同类型的tablespace,新版Diskquota允许用户定义不同的磁盘配额限制以及可容忍的最大数据倾斜比率。

Flink发布1.15.0版本

  1. 进一步明确了Checkpoint与Savepoint在语义上的区别,提高了Savepoint的性能,并允许用户更精确的控制Savepoint的生命周期;
  2. 进一步完善了流作业自动伸缩调度器的能力;
  3. 为用户提供了批作业根据数据量自动设置算子并发的能力;
  4. 提供了跨Source水印对齐的能力;
  5. 初步实现了Changelog Statebackend;
  6. 默认打开Final Checkpoint功能,保证有限数据作业流批处理结果一致;
  7. 初始提供了SQL作业状态兼容版本升级的能力;
  8. 提供了批模式下对Window table-valued函数的支持;
  9. SQL提供了对Json函数的支持;
  10. 进一步完善了Application部署模式;
  11. 增加和完善多个外部系统连接器;
  12. 去除了对特定Scala版本的依赖;
  13. 优化了Python API的性能。

ClickHouse共发布6个版本

2022年1月至今,ClickHouse主要发布了6个stable version, 其中包含一个LTS版本:v22.3。在这些版本中,ClickHouse在性能、集成度、可用性、稳定性方面取得了长足的进步。其中值得关注的特性有:

  1. schema自动推导:ClickHouse在v22.1加入了该特性,能自动根据外部文件后缀判断对应的压缩方法和数据格式,还能从ORC、Parquet、CSVWithNamesAndTypes、TSVWithNamesAndTypes等格式的文件中自动获取schema。
  2. 副本粒度的并行查询:在生产集群中,一个ClickHouse分片下通常由多个副本。默认情况下每个查询只能使用分片下某一个副本的计算和存储资源。因此ClickHouse在v22.1增加了一个新配置:allow_experimental_parallel_reading_from_replicas,在开启的情况下ClickHouse将会在一个分片的多个副本间分担查询任务,提升了集群资源的利用率。
  3. 列的稀疏编码:ClickHouse在v22.1中加入了该实验特性。列的稀疏编码是一种特殊的列编码,类似于LowCardinality,但它对用户完全透明:如果某一列主要包含零值,ClickHouse会自动将其编码为稀疏格式并自动优化稀疏编码列的计算。
  4. Hive表引擎:ClickHouse在v22.1中加入该特性。通过它可实现对Hive数仓的SELECT查询,目前支持ORC/Parquet/TEXT格式的Hive表查询,并通过分布式查询、本地文件缓存、行列裁剪、元数据缓存等方式不断优化Hive表引擎的性能。
  5. Projection Is Production Ready:Projection可让同一个ClickHouse表中拥有多份不同的数据表示,例如在一张表中同时存储聚合和明细数据。ClickHouse会自动优化查询,为其选择最合适的Projection。区别于物化视图,Projection可保证表的数据一致性。在v22.2中,Projection这个重量级特性已经是Production Ready状态
  6. ClickHouse Keeper Is Production Ready:在ClickHouse中,ClickHouse Keeper是ZooKeeper的替代品。它兼容 ZooKeeper的协议和数据模型,并可无缝替代 ZooKeeper(最高版本3.5)供ClickHouse和其他应用使用。它可作为独立组件运行,也可以嵌入到 clickhouse-server中运行。经过不断优化,从v22.3 LTS开始ClickHouse Keeper在读写方面都比ZooKeeper更快,同时消耗更少的内存,日志和快照的磁盘占用也更低。在v22.3 LTS中,ClickHouse Keeper已处于Production Ready的状态
  7. 半结构化数据:ClickHouse在v22.3 LTS中引入了这个实验特性。通过半结构化类型,ClickHouse可在未指定JSON schema的情况下分析JSON数据。JSON中可任意嵌套array和map等复杂类型,ClickHouse内部会自动调整对JSON数据的表示。该特性大大提升了ClickHouse分析半结构化数据的易用性和性能。
  8. 事务:ClickHouse在v22.4中引入了事务作为实验特性。通过BEGIN TRANSACTION, COMMIT, ROLLBACK语句支持原子地插入多张表或物化视图,以及从单个快照进行满足一致性和隔离性的读取。
  9. ClickHouse启动加速:v22.4中引入了配置use_metadata_cache,通过它可选择将元数据缓存于内嵌的RocksDB存储引擎中。当ClickHouse启动时,它会尽量从缓存中获取元数据,否则退化到从磁盘文件获取。在极端情况下(700k个parts), 它能使启动时间从75分钟缩短到20秒
  10. 并行Hash Join:v22.5中引入了并行Hash Join。这种新的Join实现将Join切分成多个block然后并行执行。这对大数据量的Join尤其有用,在并行度足够高的情况下可减少80%的查询时长。该特性可通过配置join_algorithm = 'parallel_hash'来开启。

国产数据库

SequoiaDB发布3.6及5.0.3版本

2022年1月至今,巨杉数据库SequoiaDB主要发布了v3.6及v5.0.3两个版本,在性能等方面进行了优化提升。

一、主要特性:

  1. SQL引擎:新增了建表语句选项,支持映射到存储引擎中已存在的集合;
  2. 存储引擎:新增了上下文清理机制,回收站能力,及Flink 连接器,提供 SequoiaDB 与流式框架对接的能力。与此同时,对索引元数据纳入编目节点统一管理,增强索引一致性,并提供独立索引能力,支持根据业务需要在特定的节点上创建索引。

二、性能优化(主要集中在SQL引擎方面):

  1. SELECT ... LOCK IN SHARE MODE更新为使用共享锁,提升操作并发性能;
  2. 优化部分场景下SELECT COUNT的性能;
  3. 优化多字段IN查询以及多字段多范围查询时的性能;
  4. 优化联合索引关联查询时,支持BKA JOIN算法以提升对应JOIN操作的性能;
  5. 优化提升OR条件下INDEX MERGE的性能等。

三、工具优化:

  1. SQL引擎:新增实例组用户密码变更工具ha_inst_group_chpass,元数据映射初始化工具sql_enable_mapping,元数据映射查看工具sql_get_mapping等; 
  2. 存储引擎:sdbimprt工具返回唯一索引冲突数。

达梦数据库发布DM 8.1.2.116版本

2022年1月至今,达梦数据库主要发布了DM 8.1版本,其中值得关注的更新如下:

  1. 基于AWR功能,提供DBA_HIST_TBSPC_SPACE_USAGE动态视图,通过该视图可以查询快照时间点的表空间的空间使用情况;
  2. 新增了SVI权限角色和新的系统视图,进一步控制普通用户的权限,增加系统安全性的同时不影响普通用户的正常使用;
  3. 分区表增删子表与查询并发;
  4. 新增支持两种加密算法XASJ_SYMM, XASJ_ASYMM;
  5. 新增支持json_table相关功能;
  6. 新增text数据类型比较功能;
  7. 对多表连接+层次查询+order by rowid场景的SQL语句执行速度进行优化;
  8. 对unpivot查询获取执行计划优化。

QianBase发布1.6.6SP6_1~SP6_3

易鲸捷QianBase™在2022年上半年结合用户需求和项目实践,陆续发布了QianBase™ 1.6.6SP6_1~SP6_3,针对产品的功能、可用性、稳定性及数据一致性等方面进行进一步优化,主要新增特性及功能增强包括:

1、数据库:

  • 优化ESP退出机制,支持session连接断开或事务结束时退出ESP,该机制通过CQD控制;
  • 优化offender对于中文字符编码的支持。

2、存储引擎:优化RegionServer GC策略,支持单个大事务多个分支场景以及多个大事务并发场景。

3、连接服务:

  • 增加WMS对于高并发场景的支持;
  • 优化dcsstop机制。

4、异步复制:

  • 提升JDBCTX从断点读取binlog性能;
  • JDBCTX支持numeric超过18位解析;
  • 修改binlog初始化后默认为最大可靠模式并提示配置远程集群信息;
  • 解决主备切换后DDL导致集群故障的场景。

5、数据一致性:

  • 解决事务卡在提交的第二阶段但客户端返回成功的一致性问题;
  • 解决update与delete并发执行时更新丢失的问题。

6、高可用:解决在线balance后锁残留问题。

7、其他:优化sqcheck功能。

ArkDB主要提升及优化

2022年1月至今,ArkDB主要在以下方面进行了提升和优化:

  1. Arkolap自动优化SQL路由策略优化;
  2. ArkDB冷热数据分片管理实现;
  3. ArkDB冷热数据分片统一读写实现;
  4. ArkDB实现数据写入的精确统计分析;
  5. 稳定性提升优化;
  6. 新增存储引擎ArkFT,用来处理全文索引数据处理请求;
  7. 修改Arkolap存储引擎的创建方式;
  8. 通过使用libcurl来优化对ES访问性能以及功能完备性。

OushuDB 5.0版本更新概要

2022年上半年,OushuDB发布的5.0版本主要在以下方面进行了提升和优化:

  1. 多主节点架构,实现了主节点集群的高可用,可以水平扩展,支持分析型负载的高并发;
  2. 多虚拟存储集群架构,支持多租户的存储资源隔离,有效解决了单一存储集群资源瓶颈的限制;
  3. 分区表元数据重构,极大地降低了元数据体量,提升了分区表操作的性能;
  4. AO表事务重构,减少了对元数据的读写,进一步提升update/delete性能。

云数据库

华为云2022上半年数据库产品更新汇总

一、华为云GaussDB(for openGauss)

GaussDB(for openGauss)主要发布了2.7.1.200,新特性主要有:

  1. 行存转向量化:行存转向量化适配,混合负载时性能提升。在相同资源环境和业务负载情况下,TPC-H性能较“行存引擎+行存执行框架”提升30%。
  2. 并行逻辑解码:在使用JDBC或pg_recvlogical解码时,通过设置parallel-decode-num参数来开启并行解码特性,数据库内核通过一个读取线程、多个解码线程以及一个发送线程之间的流水线协同运行进行逻辑解码操作,解码速度显著提升。
  3. Global SysCache:将系统缓存与会话解耦,绑定到线程上,结合线程池特性达到降低内存占用的目的,同时结合全局缓存,提升缓存命中率,保持性能稳定。
  4. 支持流式容灾:计划内、计划外容灾切换保证分布式事务强一致,相比之前的基于OBS的容灾,流式复制提供更快的性能和更高的可用性,RPO<10秒,RTO<10分钟。
  5. 支持NAS备份恢复:可备份到NAS并基于NAS恢复,适合期望把备份文件存放在云外的客户。

二、华为云GaussDB(for MySQL)

新功能如下:

  1. 数据库代理Proxy支持会话级一致性读,解决读取一致性诉求;
  2. 数据库代理Proxy支持规格变更;
  3. GaussDB(for MySQL)支持秒级监控,提供1S和5S的监控粒度,助力用户问题排查;
  4. GaussDB(for MySQL)支持SQL限流功能,提升业务稳定性;
  5. GaussDB(for MySQL)支持DAS慢日志导出;
  6. 支持慢日志脱敏开关功能,用户可以自行控制日志是否脱敏;
  7. 备份恢复\按时间点恢复支持恢复到当前实例、已有实例;
  8. 支持定时重启实例。

三、 华为云RDS系列产品

  1. 极速型SSD云盘,结合25GE网络和RDMA技术,可以提供单盘最大吞吐量达1000 MB/s并具有亚毫秒级低时延性能;
  2. 数据库停机不计费功能,支持对数据库实例关机,通过暂时停止按需实例以节省费用;
  3. RDS for MySQL高可用只读实例:当只读实例所在物理机故障后,备用只读实例会自动顶替以达到高可用,减少由于只读实例长时间重建和恢复对业务的影响;
  4. RDS for MySQL多Proxy功能:云数据库MySQL支持开通单Proxy或多Proxy功能。其中,多Proxy功能支持创建多个Proxy实例并设置只读权重,适用于需要业务隔离的场景;
  5. RDS for PostgreSQL支持升级内核小版本:支持手动升级内核小版本,内核小版本的升级涉及性能提升、新功能或问题修复等;
  6. 新增SQL Server 2019系列,支持跨版本恢复。

四、华为云GaussDB(for Redis) 

新发布的核心特性有:

  1. 企业级双活容灾:支持建立主备容灾实例,数据实时同步,10s RPO;
  2. 多租隔离能力提升:单实例支持6w多DB;
  3. 前缀搜索性能提升:SCAN match prefix*速度比开源Redis快1000倍;
  4. 服务化能力提升:WebClient网页客户端、快速规格选型、监控指标聚合等;
  5. 业务场景提升:排行榜、延迟队列等业务场景下性能提升;
  6. 支持0改造搬迁:完全兼容主从/哨兵/集群模式SDK,业务无需改代码即可上云;
  7. 兼容性提升:支持布隆过滤器、Redisson分布式锁API、阻塞命令、key过期事件监听等。

五、文档数据库服务DDS

DDS主要发布了4.2版本等其他管控特性,新特性主要有:

  1. 4.2版本正式商用;
  2. 集群时间点备份恢复;
  3. 副本集支持添加只读节点;
  4. 支持租户面小版本升级。

六、分布式数据库中间件DDM

  1. DDM备份恢复功能:DDM恢复特性用于误删库或者RDS for MySQL本身出现异常等业务场景,可根据过去的某个时间点,将DDM元数据数据与已经PITR恢复完成的RDS for MySQL实例进行匹配,重建DDM和RDS for MySQL的关联关系,恢复DDM;
  2. 管理员账号功能;
  3. 只读组可在同VPC内跨子网创建功能。

七、数据复制服务DRS

  1. 同步场景和灾备场景支持包周期和多规格,并统一调整价格策略;
  2. DB2-GaussDB(for openGauss)同步场景下支持DB210.1,11.1,11.5版本;
  3. MySQL-MySQL、GaussDB(for MySQL)等10+条重要链路的常用功能特性拉齐(包括行过滤、增量DDL等);
  4. 支持同步场景的TiDB-GaussDB(for MySQL)新链路;
  5. 支持同步场景的DB2-Kafka新链路;
  6. 支持同步场景的SQL Server-GaussDB(DWS)新链路;
  7. 支持同步场景的MongoDB副本集-MongoDB副本集新链路;
  8. 同步场景下MySQL-CSS支持行过滤、列过滤、对象选择excel导入、任务克隆等功能;
  9. 同步场景下MySQL-GaussDB(DWS)支持增加时间戳、行过滤等常用数据加工功能。

阿里云2022上半年数据库产品更新汇总

一、阿里云数据库自研产品

1、云原生关系型数据库PolarDB

1)PolarDB-X发布三个版本

2022年1月,PolarDB-X正式发布2.0.1版本,更新内容包括新增读写分离、集群扩缩容等特性,兼容maxwell和debezium增量日志订阅,以及新增其他众多新特性和修复若干问题。

2022年3月,PolarDB-X正式发布2.1.0版本,包含了四大核心特性,全面提升PolarDB-X稳定性和生态兼容性,其中包含基于Paxos的三副本共识协议。

2022年4月,PolarDB-X正式发布2.1.1版本,重点推出冷热数据新特性,可以支持业务表的数据按照数据特性分别存储在不同的存储介质上,比如将冷数据存储到Aliyun OSS对象存储上。

2)PolarDB for PostgreSQL

2022年3月2日,开源PolarDB企业级架构重磅发布,首次公开开源PolarDB的总体结构设计和企业级特性,对PolarDB for PostgreSQL的存储计算分离架构、HTAP架构、三节点高可用架构进行了全面介绍。

PolarDB for PostgreSQL 100%兼容PostgreSQL,采用基于共享存储的存储计算分离架构,具有极致弹性、毫秒级延迟,支持HTAP的能力,还支持时空、GIS、图像、向量、搜索、图谱等多模创新特性,可应对企业对数据处理日新月异的需求。

  • 极致弹性:存储与计算能力均可独立地横

    新闻名称:2022上半年盘点:20+主流数据库重大更新及技术要点汇总
    URL标题:http://www.shufengxianlan.com/qtweb/news37/278937.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联