写点什么

数据架构选型必读:2021 上半年数据库产品技术解析

  • 2021 年 7 月 16 日
  • 本文字数:14617 字

    阅读完需:约 48 分钟

数据架构选型必读:2021上半年数据库产品技术解析

本期要点

DB-Engines 数据库排行榜

一、RDBMS

  • Oracle 发布 21c,包含 200 多项创新

  • MySQL 发布 8.0.24 及 8.0.25 版本

  • PostgreSQL 发布 14 Beta 1,新增众多特性

  • OceanBase 宣布开源及发布 V3.1 版本

二、NoSQL

  • RocksDB 发布 6.19.x 及 6.20.x 版本

三、NewSQL

  • TiDB 发布 5.0 版本

  • SequoiaDB 发布 3.4.3 和 5.0.2 版本,并正式推出四大产品线

四、时序数据库

  • 本期新秀:MatrixDB 发布 4.0 版本

五、大数据生态圈

  • Elastic 发布 3 个重大版本

  • Greenplum 发布 6.16 版本

五、国产数据库

  • 达梦发布 DM 8.4 版本

  • openGauss 发布 2.0.0 版本并更新 2.0.1 版本

  • QianBase 发布正式 1.6.6SP2 版本

  • ArkDB 上半年更新汇总

六、云数据库

  • 阿里云 20 多款数据库产品上半年更新汇总

  • 腾讯云 8 款数据库产品上半年更新汇总

  • 京东云 9 款数据库产品上半年更新汇总

  • RadonDB 兼容 MySQL 8.0

DB-Engines 数据库排行榜

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



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


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

  • Google Trends 的搜索数量;

  • Indeed 网站中的职位搜索量;

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

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

RDBMS

Oracle 发布 21c,包含 200 多项创新

今年 1 月份,甲骨文公司宣布在 Oracle 云中推出新版本的全球领先融合数据库 Oracle 数据库 21c。Oracle 21c 可作为数据库引擎,为云端和本地部署 Oracle 数据库服务提供支持,最新版本包含 200 多项创新,关键创新包括:


  1. 不可变区块链表:区块链表提供不可变的仅插入功能,表中各行以加密形式链接在一起。Oracle 数据库内置篡改检测和预防技术,可帮助客户防止内部人员或黑客冒充管理员或用户进行非法更改。区块链表作为融合数据库的一部分,可通过标准 SQL 进行访问,并支持完整分析和事务,易用性和功能表现远优于既有的区块链实施。区块链表特性在所有 Oracle 数据库版本中均免费提供。

  2. 原生 JSON 数据类型:提供新的 JSON 数据类型表现方式,将扫描速度加快了 10 倍、更新操作速度提高了 4 倍,使得 Oracle SQL/JSON 在 YCSB 基准测试中的运行速度比 MongoDB 和 AWS DocumentDB 快了 2 倍。与先前的版本相同,用户可以混合或联结 JSON 与其他数据类型;索引任何 JSON 要素以实现快速 OLTP;在所有格式中使用声明式平行 SQL 分析;以及对多个 JSON 文档和集合运行复杂联结,且均不需要编写自定义应用代码。

  3. 数据库内机器学习 AutoML:AutoML 可大规模、自动化构建和比较机器学习模型,促进非专业用户对机器学习技术的利用。借助全新的 AutoML 用户界面,非专业用户能轻松使用数据库中机器学习功能。此外,甲骨文提供全新的异常检测、回归和深度学习分析算法,进一步丰富了数据库中机器学习算法库。

  4. 数据库内 JavaScript:嵌入式 Graal 多语言引擎(Graal Multilingual Engine)支持 JavaScript 数据处理代码运行于存放的数据库之内,消除了成本高昂的网络传输工作。此外,用户可轻松在 JavaScript 代码中执行 SQL,JavaScript 数据类型将自动映射至 Oracle 数据库的数据。

  5. 持久内存支持:数据库数据和重做日志存储在本地持久内存(PMEM)中,可显著提升 IO 绑定负载的性能。用户可直接对存储在直接映射持久内存文件系统中的数据运行 SQL,无需通过 IO 代路径或大型缓冲区高速缓存。此外,新数据库算法可防止将不完整或不一致的数据存码储到持久内存中。

  6. 更高性能的图形模型:可基于关系进行数据建模并探索社交网络、物联网中的连接和模式。进一步优化内存可减少分析大图形所需的内存空间,无需任何更改即可加快现有应用的运行速度。此外,用户还可使用 Java 语法,创建、扩展图形算法,以及 Java 语法在编译时进行优化,亦可作为原生算法使用。

  7. 数据库内存自动化:Oracle 21c 新增自治管理内存列存储,可自动管理内存列存储中的放置和删除对象,然后追踪使用模式并从列存储中移动和删除对象,从而帮助简化流程和提高效率。此外,自治管理内存列存储还能够根据使用模式来自动执行列压缩。Oracle 21c 提供全新的内存矢量联接算法,加快了复杂查询的速度。

  8. 自动化分片:数据分片功能不共享软硬件,可部署在本地或云端环境。为了简化分片设计和使用,Oracle 21c 提供了分片顾问工具(Sharding Advisor Tool),可评估数据库 schema 及其负载特征,针对性能、可扩展性和可用性进行优化的分片数据库设计,同时支持跨分片的自动备份和恢复功能。

MySQL 发布 8.0.24 及 8.0.25 版本

4 月 20 日及 5 月 11 日,MySQL 分别发布了 8.0.24 和 8.0.25 版本。8.0.24 修复及功能更新较多,修复了 219 个 Bug,其中有两位中国人的贡献,Yuxiang Jiang 和 Zhai Weixiang 发现了 Bug 并贡献了修复的补丁程序。


关于修复的具体内容,请参阅官网(https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-24.html),除此之外,8.0.24 版本在以下所列的功能点进行了更新:


  • MySQL Enterprise Audit 现在支持对审计日志进行删减;

  • 服务器通过在关闭连接之前将原因写入连接的方法,使得客户端收到一个包含客户端超时内容的错误消息,解决了以往服务器关闭连接而客户端无法获得正确原因的问题;

  • 客户端连接失败消息里添加了端口号信息;

  • MySQL Keyring 功能从插件过渡到服务器组件,包括一款社区版/企业版组件及两款企业版组件;

  • 升级使用 curl 7.74.0;

  • Performance Schema 增加了一些新的性能指标,包括:memory/sql/dd::infrastructure,memory/sql/dd::object。并对一些已有的指标进行改进和重命名;

  • 为认证插件增加了系统变量,允许配置 caching_sha2_password 插件运行哈希次数;

  • 空间地理信息方面增加了新的函数 ST_LineInterpolatePoint() 、 ST_LineInterpolatePoints() 、ST_PointAtDistance()和 ST_Collect() 。此外 CAST() 和 CONVERT() 增加了对地理空间数据的支持扩展;

  • InnoDB 的 AUTOEXTEND_SIZE 最大值从 64M 增至 4GB;

  • clone_donor_timeout_after_network_failure 配置的超时时间由之前的固定值 5 分钟扩展到最大 30 分钟,用以提供更多的时常去解决网络问题;

  • 向 MGR 的 allowlist 里面增加新成员不再需要停止/再启动 MGR;

  • 使用--skip-slave-start 启动从服务器不在需要登录数据库服务器的主机。

PostgreSQL 发布 14 Beta 1,新增众多特性

5 月 15 日,PostgreSQL 发布 14 Beta 1,在性能、管理、备份恢复、安全、SQL 等方面均有新特性或增强,以下列举重点特性(对应的场景和价值,可点击本文文末【阅读原文】详细阅读本期 Newsletter 完整版):


一、性能

1、大量连接高并发优化(无论 active 和 idle),上万连接无性能损耗


2、索引增强

  • 缓解高频更新负载下的 btree 索引膨胀

  • 支持 sort 接口,大幅提升 Create GiST 和 SP-GiST 索引的速度

  • 支持 SP-GiST 覆盖索引功能满足任意维度聚集存储

  • BRIN 支持布隆过滤和 multi range


3、并行计算增强

  • 并行顺序扫描支持 chunk 大 IO 利用 prefetch 能力大幅提升顺序 IO 扫描吞吐性能,解决小 IO 无法打满块设备吞吐指标的问题。

  • PL/pgSQL RETURN QUERY 支持并行计算

  • 刷新物化事务支持并行计算


4、内置 sharding 功能接口 postgres_fdw 持续增强

  • 支持外部表异步并行计算

  • bulk insert

  • 远程分区表的子分区可以 import foreign schema 生成外部表

  • 支持 truncate 外部表

  • 支持会话级持久化 foreign server 连接


5、分区表性能趋近完美

  • 分区裁剪能力提升减少子分区 subplan 和重复的 cached plans

  • 增减分区时使用 alter table detach|attach PARTITION concurrently 模式完全避免锁冲突


6、窗口函数性能提升,支持增量 sort,提升带窗口查询的场景的排序性能


7、自定义扩展统计信息增强,支持多个表达式为组合的扩展柱状图信息收集, 提升以表达式为组合过滤条件的选则性评估精度


8、支持 multiple extended statistics,增强 or,and 多条件的选择性评估精度


9、大表 search IN ( consts )优化,支持 linear search TO hash table probe (当 in 里面的 consts 个数>= 9 个时)


10、TOAST 支持 lz4 压缩算法


11、libpq 驱动支持 pipeline 模式,SQL 请求支持异步化通信,大幅度提升性能,降低 RT


二、数据类型和 SQL

1、支持 multi range 类型,兼容 range 类型已知的所有操作符、索引


2、支持 jsonb 下标语法,大幅度简化 JSON 类型的使用,支持 set 原子操作


3、支持存储过程 OUT 参数


4、支持 group by grouping sets,rollup,cube distinct 语法过滤重复 group 组合


5、递归(CTE)图式搜索增加广度优先、深度优先语法,循环语法


6、增加 date_bin 函数,支持任意起点,按任意 interval 切分 bucket,输入一个时间戳返回这个时间戳所在的 bucket timestamp


7、支持 tid range scan 扫描方法,允许用户输入需要扫描指定数据块的范围


8、ecpg 支持 declare statement


三、管理

1、垃圾回收增强

  • concurrently 模式创建索引不会引起垃圾膨胀

  • 增加一个全速 vacuum 模式在触发后会忽略索引和 sleep 参数执行 vacuum 以最快速度完成 vacuum freeze

  • 在表里的垃圾占用的 PAGE 较少时跳过 index vacuum 从而提高 vacuum 效率


2、analyze 提升(支持父表的全局视角统计信息, 支持 IO prefetch 加速 analyze)


3、系统视图和管理函数增强

  • 新增 pg_stat_progress_copy 视图,支持 COPY 导入数据进度监控,导入多少行,排除多少行(where filter)

  • 新增 pg_stat_wal 统计信息视图,跟踪 wal 日志统计信息

  • 新增 replication slot 统计信息视图 - pg_stat_replication_slots

  • pg_locks 增加 wait_start 字段,跟踪锁等待开始时间

  • sessions_killed 统计指标,指导如何分析数据库有没有性能瓶颈,瓶颈是什么?top 瓶颈是什么?如何优化?

  • pg_prepared_statements 增加硬解析、软解析次数统计

  • 支持查看当前会话和其他会话的内存上下文,诊断内存消耗问题


4、新增 GUC 参数

  • 增加 log_recovery_conflict_waits GUC 参数,支持 standby query&startup process conflict 恢复冲突超时(deadlock_timeout)日志打印

  • 增加 track_wal_io_timing GUC 参数,支持 wal 日志 buffer write,fsync IO 等待时长统计,在 pg_stat_wal 视图中查看

  • 增加 idle_session_timeout GUC 参数,断开长时间空闲的会话

  • 增加 client_connection_check_interval GUC 参数, 协议层支持心跳包, 如果客户端已离线,可以快速中断这个客户端此前运行中的长 SQL - Detect POLLHUP/POLLRDHUP while running queries


5、SQL 命令增强

  • REINDEX command 增加 tablespace 选项,支持重建索引到指定表空间

  • REINDEX command 支持分区表,自动重建所有子分区的索引


6、插件功能增强

  • 新增 pg_surgery 插件,可用于修复 corrupted tuple。

  • 新增 old_snapshot 插件,打印快照跟踪条目(每分钟一条, OldSnapshotTimeMapping 结构)的内容,old_snapshot_threshold 相关

  • pg_amcheck 插件增加 heap table 数据页格式错误、逻辑错误检测功能


四、流复制与备份恢复

1、长事务逻辑复制优化,增加 streaming 接口,逻辑复制支持流式 decoder 和发送,无需等待事务结束,大幅度降低大事务、长事务的复制延迟


2、逻辑复制 sync table data 阶段支持多线程,允许同步全量数据的同时接收 wal 逻辑日志,可以缩短大表首次同步到达最终一致的耗时


3、alter subscription 语法增强,支持 add/drop publication


4、recovery 性能增强 - recovery_init_sync_method=syncfs - 解决表很多时, crash recovery 递归 open 所有 file 的性能问题 - 需 Linux 新内核支持


5、允许 hot standby 作为 pg_rewind 的源库


6、增加 remove_temp_files_after_crash GUC 参数,在数据库 crash 后重启时自动清理临时文件


7、standby wal receiver 接收时机优化,无需等待 startup process replay 结束,大幅度降低 standby 在重启后的 wal 接收延迟


五、安全

1、新增 pg_read_all_data,pg_write_all_data 角色,支持一次性赋予 tables/views/sequences 对象的读、写权限


2、默认使用 SCRAM-SHA-256 认证方法,提升安全性,完全规避 md5 可能的密钥泄露和协议攻击问题


3、pg_hba。conf clientcert 支持 verify-ca 或 verify-full 校验客户端证书真伪,检验证书 DN 内容是否匹配连接的数据库用户


4、SSL 客户端证书校验增加 clientname CN DN 提取选项,遵循 RFC2253


5、libpq 协议层支持数据库状态判断(standby or primary)


6、libpq 支持 target_session_attrs 属性配置:"any", "read-only", "read-write","primary","standby",and "prefer-standby"

OceanBase 宣布开源及发布 V3.1 版本

6 月 1 日,OceanBase 正式宣布开源,并成立 OceanBase 开源社区。OceanBase 采用木兰公共协议 MulanPubL-2.0 版,协议允许所有社区参与者对代码进行自由修改、使用和引用。


同时,OceanBase 正式对外发布了 V3.1 版本。该版本实现了更强的混合负载能力与产品化提升。


  1. 混合负载能力:OceanBase 数据库新版本的分布式并行执行引擎可使得 OceanBase 集群的多个数据库节点并行运行查询和 DML 语句,并且能够通过资源组的方式将 TP 和 AP 工作负载使用的资源进行隔离,而且实现了对大尺寸事务的支持,允许用户在一条 DML 语句中修改上亿行数据,真正实现了用一套系统支持实时混合负载。

  2. 兼容性:在 V3.1 版本,OceanBase 数据库兼容了绝大部分 Oracle 数据库的 SQL 语法、函数、过程性语言、系统包、性能视图等功能。

  3. 高可用:在 V3.1 版本,OceanBase 数据库对于集群的总控服务、选举算法、数据动态负载均衡机制都进行了大量的重构和优化,让 OceanBase 数据库在大集群规模、复杂高可用场景下,都能够实现 RTO<30s 的目标,并且数据的负载均衡效率大幅度提高。

  4. 可扩展能力:截止 V3.1 版本,OceanBase 数据库已涵盖了 Oracle 的大多数分区类型,以及 MySQL 的全部分区类型。此外,该版本提高了单机分区数上限并支持了大事务,真正做到通过一套引擎解决混合负载的原生分布式数据库产品。

  5. 产品易用性:在 V3.1 版本,OceanBase 数据库在产品易用性上做了很多工作,包含日志梳理、视图管理和升级。

NoSQL

RocksDB 发布 6.19.x 及 6.20.x 版本

近期,RocksDB 分别发布了 6.19.x 和 6.20.x 版本。2 个大版本主要修复了一些 Bug 及一些使用行为上的变化,新功能上主要围绕 BackupEngine 和 BlobDB 展开。


关于修复的具体内容,请参阅官网(https://github.com/facebook/rocksdb/releases),除此之外,在以下所列的功能点进行了更新:


  • 添加了将 BackupEngine 备份作为只读数据库打开的功能,使用 BackupEngine::GetBackupInfo()提供的 BackupInfo::name_for_open 和 env_for_open 和 include_file_details=true;

  • 添加了对集成 BlobDB 的 BackupEngine 支持,当共享表文件时,在备份之间共享 Blob 文件。由于当前的限制,blob 文件始终使用 kLegacyCrc32cAndFileSize 命名方案,并且增量备份必须读取数据库中的所有 blob 文件并对其进行校验和,即使对于已备份的文件也是如此;

  • 向 BackupEngine::CreateNewBackup(WithMetadata)添加了一个可选的输出参数,以返回新备份的 BackupID;

  • 添加了 BackupEngine::GetBackupInfo / GetLatestBackupInfo 用于查询单个备份;

  • 尽管用于启用它的 API 预计会发生变化,但根据 SST 架构(与版本>= 6.15.0 兼容),使功能区过滤器成为长期支持的功能;

  • 为 BlobDB 的新实现支持压缩过滤器。添加 FilterBlobByKey()到 CompactionFilter. 子类可以覆盖此方法,以便压缩过滤器可以确定在压缩期间是否必须读取实际的 blob 值。使用新的 kUndeterminedinCompactionFilter::Decision 表示需要进一步的操作来让压缩过滤器做出决定;

  • 向 BackupEngine::GetBackupInfo 添加一个选项以包含每个备份文件的名称和大小。特别是在备份之间存在文件共享的情况下,这提供了对备份空间使用情况的详细洞察。

NewSQL

TiDB 发布 5.0 版本

4 月 8 日,TiDB 发布 5.0 版本,在性能、稳定性、易用性、高可用与安全合规等方面都取得了很大进步,并增加了多个企业级特性,在 OLTP Scale 的基础上实现了一栈式数据实时分析的需求,关键特性如下:


  • TiDB 通过 TiFlash 节点引入了 MPP 架构。这使得大型表连接类查询可以由不同 TiFlash 节点共同分担完成。当 MPP 模式开启后,TiDB 将会根据代价决定是否应该交由 MPP 框架进行计算。MPP 模式下,表连接将通过对 JOIN Key 进行数据计算时重分布(Exchange 操作)的方式把计算压力分摊到各个 TiFlash 执行节点,从而达到加速计算的目的。经测试,TiDB 5.0 在同等资源下,MPP 引擎的总体性能是 Greenplum 6.15.0 与 Apache Spark 3.1.1 两到三倍之间,部分查询可达 8 倍性能差异。

  • 引入聚簇索引功能,提升数据库的性能。例如,TPC-C tpmC 的性能提升了 39%。

  • 开启异步提交事务功能,降低写入数据的延迟。例如:Sysbench 设置 64 线程测试 Update index 时, 平均延迟由 12.04ms 降低到 7.01ms,降低了 41.7%。

  • 通过提升优化器的稳定性及限制系统任务对 I/O、网络、CPU、内存等资源的占用,降低系统的抖动。例如:测试 8 小时,TPC-C 测试中 tpmC 抖动标准差的值小于等于 2%。

  • 通过完善调度功能及保证执行计划在最大程度上保持不变,提升系统的稳定性。

  • 引入 Raft Joint Consensus 算法,确保 Region 成员变更时系统的可用性。

  • 优化 EXPLAIN 功能、引入不可见索引等功能帮助提升 DBA 调试及 SQL 语句执行的效率。

  • 通过从 TiDB 备份文件到 Amazon S3、Google Cloud GCS,或者从 Amazon S3、Google Cloud GCS 恢复文件到 TiDB,确保企业数据的可靠性。

  • 提升从 Amazon S3 或者 TiDB/MySQL 导入导出数据的性能,帮忙企业在云上快速构建应用。例如:导入 1TiB TPC-C 数据性能提升了 40%,由 254 GiB/h 提升到 366 GiB/h。

SequoiaDB 发布 3.4.3 和 5.0.2 版本,并正式推出四大产品线

一、3.4.3 和 5.0.2 版本发布

2 月以来,SequoiaDB 巨杉数据库主要在 3.4.3 版本和 5.0.2 版本上完善功能,并进行性能方面的优化,已于 6 月 27 日发布。


3.4.3 和 5.0.2 都是修复版本,目前两个版本上修复的问题相同。从大版本上来看,5.0 大版本包含更丰富的功能,包括 MVCC、按时间点恢复和 STP(时间序列协议)等功能。


1、功能


SQL 引擎:

  • 完善 SQL 实例组功能

  • MySQL/MariaDB 增加 preferedinstance 配置参数,可灵活配置读操作访问的实例


SequoiaDB 引擎:

  • fap 功能完善,支持 MongoDB 的 findAndModify 及 bulkWrite 功能

  • 增加数据源功能,实现跨集群的数据访问


2、性能优化


SQL 引擎:

  • 优化 MySQL 索引查询性能

  • 优化 MySQL multistatement 数据插入性能


SequoiaDB 引擎

  • 优化并发回放性能

  • 优化主子表下对切分键排序查询的性能


二、正式推出四大产品线

5 月 15 日,巨杉数据库基于「湖仓一体」架构,针对不同的业务需求场景发布 DP 融合数据平台、TP 事务型数据库、CM 内容管理数据库和 DOC 文档型数据库四大产品线。「湖仓一体」架构支持联机交易、流处理和分析,并同时支持结构化、半结构化和非结构化数据的存储,能降低数据流动带来的开发成本及计算存储开销,提升企业海量数据处理的“人效”和“能效”。

时序数据库

本期新秀:MatrixDB 发布 4.0 版本

MatrixDB 是北京四维纵横数据技术有限公司自研的超融合时空数据库,可同时支持关系型数据和时空数据的快速采集、高效存储、实时分析以及机器学习(ML+AI)。与传统的关系数据库+专用时空数据库相结合的架构相比,超融合时空数据库性能快 10-100 倍,并能大幅降低成本,提升开发运维效率。


5 月 11 日,MatrixDB 正式发布 4.0 版本,新版包括如下新特性:


1、Mars 引擎


Mars 引擎是自研的存储引擎。该引擎包含如下特性:

  • 列式存储

  • 数据编码和压缩

  • 聚集下推优化

  • 无索引扫描的优化


在时序场景中,适合存储历史冷数据,基于时间戳的聚集查询性能极高。


2、多节点自动化部署


在 MatrixDB 3 系统单节点自动化部署的基础上,实现了多节点自动化部署。只用不到 5 分钟,即可部署好一个多节点集群。


3、冷热分级存储 UDF


为方便用户为时序表建立分区、维护分区表、冷热数据转换,实现了关于创建分区模板、建立分区、替换冷热分区的一整套管理接口。


4、time_bucket_gapfill


时序组件 MatrixTS 中,在 time_bucket 函数基础上,增加了 time_bucket_gapfill 函数。可以为缺失的时间间隔按照规则填充。目前支持两种填充规则:

  • locf:用聚合组中之前出现的值填充;

  • interpolate:对缺失的值做线性插值填充。

大数据生态圈

Elastic 发布 3 个重大版本

截至 6 月 20 日,Elastic.co 发布了 3 个重大版本,7.11.x、7.12.x,7.13.x,令人期待的 8.x.x 版本预计第 4 季度或 2022 年发布。



2021 上半年 Elastic 版本发布


1、Runtime field 运行时字段


  • 在 7.11.x 之前版本,应用中若需要动态组合一些字段,如查询或者聚合,或者其他、默认采用的 Script-Painless 脚本,虽然功能上能满足,但性能是一个损失,同时若字段需要复用,则需要同时执行多个脚本;

  • runtime field 运行时字段,算是 ES 一个小小的新创新,带来了一些新的玩法,大大简化之前版本直接使用脚本的的场景,也能支持多个场景复用字段,达到灵活与性能兼具;

  • runtime field 运行时字段,目前官方提供 2 种使用形式,一种提前在 mappings 中定义,一种是在 DSL 中动态创建。建议可以尽快使用,尽可能将旧版本直接使用 script 的场景切换到最新的运行时字段方式来;

  • runtime field,运行时字段,虽然带来了诸多便利与好处,但也需要注意不可滥用,毕竟运行时计算依然依赖了 script。


2、Forzen tier 冻结层


  • 7.12.x 版本,Elasticsearch 推出了冻结层特性,相比 7.10.x 增加了一个新的数据层概念,要知道 ES 为了解决海量数据的存储成本,推出了非常大胆创新的 Searchable Snapshots 能力,相比其它数据产品,ES 备份的数据快照不用还原就可以搜索使用,虽然性能相比正常的索引稍微弱一些,但也大大的节约了时间与存储成本。冻结层就属于这个概念,目的就是把备份快照数据划分到冻结层,提供了索引从创建到所有可能使用阶段的生命周期管理;

  • 结合 ILM (index lifecycle management),让索引的自动化运维能力大大提升;

  • 配套 Searchable snapshots 索引快照搜索能力,单集群可轻松应对海量数据存储与查询,用极少资源挂载数百 TB 或 PB 数据量成为可能,还在对于成本考虑的公司或技术人员可以换换思维了。


node.roles: [ data_frozen ]
复制代码


3、JDK16.x 运行环境


  • 从 7.12.x 开始,Elasticsearch 升级了内置默认的 JDK 版本,当前版本是 jdk16.x, 至于为什么升级到最新版本,官方并没有给出最佳解释,升级 JDK 当然可以获得一些性能提升或者其它方面便利;

  • JDK16.x 版本,查阅官方增加了一些新的特性,其中最引入注意的是 Vector API,近几年支持 SIMD 指令集数据分析产品大火,介于 JDK 版本特性问题,基于 Java 语言编写的大数据产品想要在数据分析能力得到性能的极致提升,非常难于实现,不如硬件 CPU 直接。JDK16.x 开始支持 SIMD 指令,如果 ES 在未来某个版本开始直接支持 SIMD,那么单机数据分析性能也可以直追 Clickhouse,再结合 Elastic Stack 生态,个人很看好;

  • 目前很多 Java 家族数据产品,想要做到 SIMD,不借助 JDK 的话,只能通过 JNI 方式,混合使用 C++的能力。这很别扭,也很无奈, 很期待 Elasticsearch 早日支持 JDK Vector API。

Greenplum 发布 6.16 版本

Greenplum 6.0 自正式版发布以来,保持每月一个小版本的迭代速率,持续提供新功能和修复补丁,目前的最新版是 6 月 4 日发布的 6.16.2,更新功能如下:


1、服务器

  • 解决了分区键类型和搜索值类型不同时 Postgres planner 分区选择的问题;

  • 解决了以下问题:在具有 exec 位置 INITPLAN 的函数上运行 \df+ 时,Execute on 列未正确显示“initplan”;

  • 解决了由于服务器保存某些数据上下文的时间超过所需时间而可能发生的内存不足情况;

  • 修复了创建 DOMAIN 时 master 和 segment 之间 collname 值的不一致;

  • 解决了在指定 CREATE MATERIALIZED VIEW 失败并显示 ERROR:division by zero when WITH NO DATA was being specified。


2、执行器

  • 解决了由于内存上下文 TupleSort 的双重释放导致数据库出现 PANIC 的问题。


3、gpload

  • 解决了 gpload 会因列名使用大写或混合大小写字符而失败的问题。gpload 现在会自动为 YAML 控制文件中尚未引用的列名添加双引号。


此外,在过去的一个月中,Greenplum 监控管理平台 Greenplum Command Center(GPCC)和流数据处理和下一代 ETL 组件 Greenplum Stream Server(GPSS)均进行了版本更新。其中,GPSS 1.6.0 已于 5 日 28 日正式发布,GPCC 6.5 已于 5 月 31 日正式发布。


注:更多版本的更新介绍,可详细阅读本期 Newsletter 完整版(点击本文文末【阅读原文】可下载)

国产数据库

达梦发布 DM 8.4 版本

近期,达梦发布了 DM 8.4 版本,其中值得关注更新如下:

  • DM DSC+DataWatch 功能完善,对标 Oracle RAC+ADG 的同城双中心方案;

  • 新增用户代理身份认证支持;

  • 新增异步备库延时和定点重演支持;

  • 新增 dblink 连接到网关功能支持;

  • 新增超长大字段支持;

  • Linux 下支持记录操作系统日志;

  • 新增字符串后缀空格比较统一策略;

  • 新增调试工具显示游标计划;

  • 新增查询分区子表支持全局索引;

  • 新增部分空间函数支持;

  • 新增读写分离集群支持按服务名配置指定读负载的分配策略;

  • 集群增加查看同步延时的时间差;

  • 新增嵌套表支持参数为查询表达式支持;

  • 新增物化视图的明细表类型支持临时表;

  • 新增合并公用表达式的过滤条件并下放实现;

  • 动态视图加载机制改造。

openGauss 发布 2.0.0 版本并更新 2.0.1 版本

3 月 30 日,openGauss 发布 2.0.0 版本,其中值得关注的更新如下:

  • 运维功能增强:极简安装、扩容工具功能增强、灰度升级、WDR 诊断报告新增数据库运行指标;

  • 高可用增强:支持延迟备库、备机支持逻辑复制、备机 IO 写放大优化;

  • 开发功能增强:Data Studio 客户端工具也针对内核的多个特性增加了适配。


6 月,openGauss 发布 2.0.1 版本,其中值得关注的更新如下:

  • 增加备机 xlog 归档功能;

  • 增强智能索引推荐能力。

QianBase 发布正式 1.6.6SP2 版本

6 月 5 日,QianBase(钱库金融数据库)R1.6.6SP2 版本正式发布。自 2 月份截止到 QianBase1.6.6SP2 发布,累计新增了以下功能:


数据库:

  • Binlog reader 功能

  • 表数据和索引比对功能

  • Savepoint 支持多回滚点

  • QueryCache 一系列功能增强

  • 导入导出功能

  • 预热只保存事务内语句

  • 预热强制指定执行计划

  • Querycache 虚表与 querycache_hdfs 数据进行对应

  • 可设定 RS 级别以及事务级别行锁数量上限

  • 备份恢复

  • 支持 binlog reader 表备份恢复

  • 快速恢复模式

  • 滚动升级和滚动重启


连接服务:

  • 多 ActiveDCSMaster

  • JDBC T4 驱动缓存


基础架构:

  • 支持 NTP 服务器 HA 配置

ArkDB 上半年更新汇总

2021 上半年 ArkDB 主要更新如下:


  • ArkDB 升级兼容 MySQL 8.0.23。

  • ArkDB 引擎物理复制模型重构,实现极速主从切换,大幅提升切换的稳定性。

  • 优化启动流程,提升启动速度大幅提升。

  • ArkDB 重构 logic 复制逻辑,避免潜在的死锁发生。

  • ArkDB 优化 mvcc index search btree 一致性读的问题,index lock 无锁化优化,死锁优化。

  • ArkDB 新增对压缩表空间和自定义 page size 的支持。

  • ArkDB 写性能优化,增加大量测试用例,大幅提升 ArkDB 稳定性。

  • Arkolap 增加流控功能,提升 OLTP 引擎和 OLAP 引擎的数据同步性能。

  • Arkolap 功能优化,支持在线动态调整同步相关参数。

  • Arkolap 支持 binlog 复制模式。

  • Arkolap 兼容性改进,兼容了更多的特殊语法和类型。

  • ArkDB 中间件 Arkpoxy 大幅性能优化提示。

  • ArkDB 中间件 Arkpoxy 完成对 8.0 的完全兼容。

  • ArkDB 备份稳定性提升,完善了快照备份功能。

云数据库

阿里云 20 多款数据库产品上半年更新汇总

一、云原生关系型数据库 PolarDB 与分布式版 PolarDB-X 更新


  • PolarDB PostgreSQL 版宣布开源:阿里云宣布开源云原生数据库能力,PolarDB for PostgreSQL 正式对外开放源代码。阿里云将加大开源数据库社区投入,与合作伙伴、开发者共同打造生态,共建云原生数据库 2.0。

  • PolarDB MySQL 新版本 5.7.1.0.6 发布上线:支持秒级加字段(Instant add column)功能,用户频繁扩充字段瞬时完成;以及多项“秒杀”场景优化(Statement Queue)。

  • PolarDB-X 发布 5.4.10 版本:主要能力包括支持 LOCALITY 语法、支持全局二级索引的智能索引推荐、新增支持三权分立模式等功能。


二、阿里云 RDS 数据库产品更新

  • RDS MySQL 新功能发布:只读实例支持多 Endpoint 功能,只读实例可为不同业务提供不同 Endpoint,提升业务隔离性。支持 validate_password 插件,密码校验插件可帮助客户灵活配置密码强度、密码长度、密码规则、大小写规则、特殊字符规则等校验条件,提供更为安全方便的配置策略。RDS MySQL 适配 validate_password 插件,满足多样的密码配置需求。


三、阿里云 NoSQL 数据库产品更新

  • 云原生多模数据库 Lindorm 新功能发布:支持 Ganos 引擎,提供时空数据的存储、检索和分析能力。Ganos 是阿里云推出的一款包含管理「空间几何数据」、「时空轨迹」、「专题栅格」、「遥感影像」的时空大数据引擎系统。内置了高效的时空索引算法、空间拓扑几何算法、遥感影像处理算法等,结合阿里云 Lindorm 的分布式存储能力及 Spark 分析平台能力,可广泛应用于空间/时空/遥感大数据存储、查询、分析与数据挖掘场景。 

  • 发布数据流订阅功能 Lindorm Streams,数据流式订阅功能支持行级保序,当数据发生变更时,通过订阅触发其他应用的业务处理,方便增量、实时数据和业务的联动处理。

  • 云数据库 Redis 版新功能发布:Redis 云盘版支持主从实例自动弹性变配功能,用户可配置当业务高峰时,自动升配应对业务高峰;发布网络带宽调整功能,用户可根据业务需求灵活弹扩实例的带宽,并快速无感的提升实例带宽;性能监控全面升级,优化监控指标展示效果和响应速度,同时交互上增强了操作便捷度,选择查看时间范围十分钟内可提供 5 秒级别的监控数据,更精准的定位线上问题;推出访问审计日志,提供更强大的日志审计能力。

  • 图数据库 GDB 新功能发布:只读节点功能正式全网发布,满足大量的数据库读取需求,增加应用的吞吐量,实现读取能力的弹性扩展,分担数据库压力。


四、云原生数据仓库和数据湖更新

  • 云原生数据仓库 AnalyticDB MySQL 版新功能发布:弹性模式发布了 ES8(8 核 32GB) ES16(16 核 64GB)两个入门级小规格。弹性模式分时弹性功能支持跨 AZ 弹性,解决了此前分时弹性由于 ECS 等基础资源不足导致资源弹出失败问题,提高了分时弹性功能的可用性。

  • 支持物化视图批量更新功能,支持用户自定义物化视图以及数据刷新逻辑,用于简化定时报表和 ETL 计算开发过程。

  • 发布基于 Spark 引擎的离线计算能力,支持一份数据,既可用 ADB SQL 引擎进行读写、查询计算,也可以用 Spark 引擎进行迭代计算。

  • 云原生数据仓库 ADB PostgreSQL 版新功能发布:发布共享 SSD 云盘实例,支持共享云盘功能和多 Master 节点架构,通过主备节点支持共享 SSD 云盘架构,节省存储资源。通过多 Master 节点架构,提升数据高吞吐写入能力,以及提升高并发查询能力。

  • 发布 COPY/UNLOAD 命令,支持导入和导出 OSS 数据,其同时兼容 Redshift 语法,帮助 Redshift 业务迁移;内核发布自动收集信息,自动垃圾空间回收功能 Auto Vacuum & Analyze;发布单节点内并行查询功能,低并发下单条查询可以充分利用多核资源,提升性能。

  • 数据库混合云敏捷 DBStack 版 V1.0.0 发布,AnalyticDB PostgreSQL 版作为数据库轻量化底座 DBStack 上的第一款发布产品,用于更好的支撑 Teradata/Oracle/DB2 等传统数据仓库迁移。

腾讯云 8 款数据库产品上半年更新汇总

一、腾讯云 MySQL 发布 8.0 20201230 版本

4 月,腾讯云 MySQL 发布 8.0 20201230 版本,其中值得关注的新特性有:

  • 合并官方 8.0.19、8.0.20、8.0.21、8.0.22 变更

  • 支持动态设置 thread_handling 线程模式或连接池模式


新改进:

  • 优化 BINLOG LOCK_done 锁冲突,提升写入性能

  • 使用 Lock Free Hash 优化 trx_sys mutex 冲突,提升性能

  • redo log 刷盘优化

  • buffer pool 初始化时间优化

  • 大表 drop table 清理 AHI 优化

  • 审计性能优化

  • 同时修复若干 bug


4 月,发布数据库代理能力。数据库代理是位于云数据库服务和应用服务之间的网络代理服务,用于代理应用服务访问数据库时的所有请求。


数据库代理访问地址独立于原有的数据库访问地址,通过数据库代理地址的请求全部通过代理集群中转访问数据库的主从节点,进行读写分离,将读请求转发至只读实例,降低主库的负载。


二、腾讯云数据库 PostgreSQL 新功能汇总

2 月份以来,云数据库 PostgreSQL 发布了诸多特性,其中包括大量安全增强特性以及管理优化的功能。其中重点能力有:实例安全组、二次身份认证、实例回收站、5 秒监控与告警。


三、腾讯云 MongoDB 发布 4.2 正式版

MongoDB 发布 4.2 正式版:

  • MongoDB 发布 4.2 正式版,正式支持的分片集群下的事务,同时支持自定义 proxy 数量、mongod 数量等能力,优化了的备份回档能力,配合业务使用更方便。


MongoDB 支持跨可用区部署:

  • 腾讯云 MongoDB 发布了跨可用区部署的公测版,用户可以选择将集群的 3 个节点部署在 3 个不同可用区。

  • 目前跨可用区的第二期和第三期在持续开发中,未来将支持普通集群到跨可用区集群的任意转换,用户可自行调整节点的部署方式。


四、腾讯云数据库 SQL Server 2019 正式发布

4 月,SQL Server 发布新特性,其中值得关注的新特性有:实例版本升级、实例架构升级、tag 支持、离线迁移,并发支持、备份易用性优化、实例支持修改 vpc 网络。


5 月,SQL Server 2019 正式上线对外发布,支持多种产品架构,在性能、易用性、安全性上显著增强。


五、腾讯云 DBbrain 新功能汇总

4 月,DBbrain 正式对外发布支持自建数据库自治,可采用直连接入或者 agent 接入两种方式接入自建数据库,使得多种类型的自建数据库(包括腾讯云 CVM 自建数据库、用户本地 IDC 自建数据库、其他云厂商虚拟机上的自建数据库等)也能拥有 DBbrain 提供的监控告警、诊断优化、数据库管理等自治服务能力。       


5 月,DBbrain 发布新特性,其中值得关注的新特性有:

  • 合规审计:支持日志导出;自定义审计规则;上线合规审计计费;

  • 无主键表:新增扫描实例无主键表功能,并加入健康报告内容;

  • 健康评分:评分打分周期从 30min 优化到 5min;

  • 自治服务:支持实例热点更新保护功能;

  • 空间分析:支持用户发起任务拉取表空间、碎片信息;

  • 邮件发送:支持邮件分时段发送;

  • SQL 优化:支持 insert, update, delete 语句索引、重写建议;

  • 热点更新保护:正式全量对外发布;

  • kill 会话:支持可查看 kill 会话历史记录及持续 kill 详情。

京东云 9 款数据库产品上半年更新汇总

一、云数据库 MySQL、MariaDB、Percona

  • MySQL 实例支持小版本升级,可将 MySQL 版本升级到当前的最新版本。

  • 运维账号,支持权限设置,可在技术支持人员运维时,提供合适的权限。

  • 提供空间保护功能,可根据配置在空间不足时,自动清理 binlog。

  • 主备切换时,可通过站内信,邮件等方式通知运维人员。

  • 慢日志,审计日志支持按用户和关键字进行过滤检索。


二、分布式数据库 TiDB

  • 提供参数配置功能, 满足不同业务系统的调优需求。

  • 支持小版本升级,可将 TiDB 集群升级到当前版本的最新小版本。

  • 支持节点重启,可以手动重启集群中的指定节点,满足灵活的运维需求。

  • 支持从 RDS MySQL 到 TiDB 的增量迁移,可在线数据。


三、分析型云数据库 JCHDB

  • 提供参数配置功能, 满足不同业务系统的调优需求。

  • 上线 20.8.11.17 和 21.3.5.42 版本,提供更丰富的版本选择。

  • 支持集群版本升级,可将集群升级到指定的版本。

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

  • 支持慢查询功能,满足业务优化的需求。


四、云数据库 PostgreSQL

  • 提供最新的 PostgreSQL 13 版本。

  • 支持创建实例时进行资源的打标(Tag)。

  • 支持自动续费。


五、数据库仓库 JDW

  • 支持小版本升级,可将 JDW 集群升级到当前最新的小版本。

  • 支持慢查询功能,满足业务优化的需求。


六、数据迁移 DTS

  • 数据订阅支持 PostgreSQL。

  • 支持 MySQL 到 TiDB 的增量数据同步。


七、JMR

  • 发布 JMR-2.1.1 版本,组件升级 Tez-0.9.1、Hadoop 组件分离为 HDFS 2.8.5 & YARN 2.8.5。

  • 发布 JMR-2.2.0 版本,OS 升级为 CentOS 7.6、升级组件 Hue 4.7.1、新增 Flume 1.9.0、升级 Flink 版本至 1.12.4。

  • 增强 HBase 服务监控。

  • 增强对组件服务的监控告警/服务运维能力。

RadonDB 兼容 MySQL 8.0

1、新增和提升功能

值得关注的新功能:RadonDB 兼容 MySQL 8.0。


2、主要语句修改

主要做了以下语句的兼容修改:


Data Definition Statements

  • 新增了对 ALTER DATABASE Statement、RENAME TABLE Statement 语句的支持;

  • 完善了对 ALTER TABLE Statement、CREATE DATABASE Statement、CREATE INDEX Statement、CREATE TABLE、DROP DATABASE Statement、DROP INDEX Statement、DROP TABLE Statement、TRUNCATE TABLE Statement 语句的解析和功能支持。


Data Manipulation Statements

  • 完善了对 DELETE Statement、INSERT Statement、REPLACE Statement、UPDATE Statement、CHECKSUM TABLE Statement、KILL Statement 语句的解析和功能支持;

  • 新增了对 CHECK TABLE Statement、OPTIMIZE TABLE Statement、ANALYZE TABLE Statement 语句的支持。


Utility Statements

  • 完善了对 EXPLAIN Statement 语句的解析和功能支持。

  • 新增了对 DESCRIBE Statement 和 HELP Statement 语句的支持。

  • 新增了对大小写敏感验证。


Xenon 更新

  • Raft 协更新:learner 不再执行 change master to 和 start slave 操作;

  • 修复数据量较小情况下重建失败问题:在重建之前校验 GTID,检查有无本地事务;重建之后移除 binlog;

  • 修复部分经常跑失败的测试用例,部分代码重构;

  • 改进日志系统,优化日志输出信息;改进创建账号时 ssl 标志不友好的方式;改进包管理方式,使用 go mod 管理。


3、开源多款数据库容器化产品

RadonDB 开发团队研发并开源了多款数据库容器化产品(MySQL、PostgreSQL、ClickHouse),支持在 Kubernetes 和 KubeSphere 上安装部署和管理。正式成立 RadonDB 开源社区。


本文转载自:dbaplus 社群(IDdbaplus)

原文链接:数据架构选型必读:2021上半年数据库产品技术解析

2021 年 7 月 16 日 08:001454

评论

发布
暂无评论
发现更多内容

毕业总结

Geek_35a345

互联网大厂“围城”,android界面开发

android 程序员 移动开发

人工智能的下一站:精细化生活场景的智能时代,靠着这份900多页的PDF面试整理

android 程序员 移动开发

今日头条屏幕适配方案终极版正式发布!,移动应用开发平台

android 程序员 移动开发

从0开始写一个基于Flutter的开源中国客户端(4),android应届毕业生面试题

android 程序员 移动开发

从简历被拒,到头条Android面试。二本渣渣如何在359天成功拿下offer

android 程序员 移动开发

使用二阶贝塞尔曲线实现添加购物车动画,移动互联网开发专业

android 程序员 移动开发

今年40岁了,忽然接到公司裁员通知,接下来的路我该怎么办

android 程序员 移动开发

今日头条APK瘦身之路,android组件化开发框架对比

android 程序员 移动开发

他经历了什么?七年资深Android程序员想转学Java,网友纷纷留言劝阻

android 程序员 移动开发

代理模式,薪资翻倍

android 程序员 移动开发

linux系列之: 你知道查看文件空间的两种方法吗?

程序那些事

Linux 操作系统 程序那些事 11月日更

【得物技术】主子订单模型

得物技术

互联网 模型 电商 订单系统 订单

浮感

feitian

从Android开发者的角度看一看IOS和Flutter中的列表实现

android 程序员 移动开发

ClickHouse用户资源隔离在 GrowingIO 的实践

GrowingIO技术专栏

Clickhouse 多租户 rbac 用户资源隔离 限流熔断

从面试无人问津到手拿百度offer,还原一段野生程序员的成长经历

android 移动开发

为您的应用配置 Play Feature Delivery,flutter视频教程仿京东

android 程序员 移动开发

五千字长文,深度解密:那些BAT大厂的Android面试官到底在想些什么

android 程序员 移动开发

携程商旅订单系统架构优化实践

GavinYe

架构 中台 后端 OTA 订单系统

从另一个角度解读handler原理,android开发书籍pdf下载

android 程序员 移动开发

从月薪8k到年薪60w,闭关3个月靠“刷题,移动端开发技术

android 程序员 移动开发

使用DataBinding还在为数据处理头疼?这篇文章帮你解决问题

android 程序员 移动开发

二本学历,五年抄代码经验,疫情期被裁,真牛皮

android 程序员 移动开发

从 0 到 1,带你解剖 MVP 的神秘之处,并自己动手实现 MVP !

android 程序员 移动开发

新消费:如何让企业持续增长

石云升

学习笔记 11月日更 新消费

产品级Flutter开源项目FunAndroid,Provider MVVM的最佳实践

android 程序员 移动开发

互联网寒冬即将过去,Jetpack将是燃起来的第一把火,我先收藏为敬

android 程序员 移动开发

从简历被拒,到拿下头条面试,我花了一年的时间(经验分享+面试题)

android 程序员 移动开发

从事这么久的Android 开发工作,知道自己处于什么段位嘛?

android 程序员 移动开发

你曾遇到的某大厂奇葩问题:Android组件化开发,组件间的Activity页面跳转

android 程序员 移动开发

Flutter 自动化测试

Flutter 自动化测试

数据架构选型必读:2021上半年数据库产品技术解析-InfoQ