本文由 dbaplus 社群授权转载。
本年度收录版本回顾
在 2019 年即将结束之际,本期 dbaplus Newsletter 除了呈现今年第四季度各数据库版本更新情况以外,还带来了相关年度总结与发展趋势展望。以下是过去这一年 Newsletter 收录过的版本对照,便于大家直观回顾:
往期回顾:
DB-Engines 数据库排行榜
以下取自 2019 年 12 月的数据,具体信息可以参考http://db-engines.com/en/ranking/,数据仅供参考。
DB-Engines 排名的数据依据 5 个不同的因素:
Google 以及 Bing 搜索引擎的关键字搜索数量
Google Trends 的搜索数量
Indeed 网站中的职位搜索量
LinkedIn 中提到关键字的个人资料数
Stackoverflow 上相关的问题和关注者数
新闻资讯
1、2019 年 8 月 20 日,MongoDB 决定不再维护 Perl 驱动,具体是在 2.2.0 版本发布的 12 个月后正式结束生命周期(2020 年 8 月 13 日)。在那 12 个月内,MongoDB 将仅为该驱动程序提供关键/安全修复程序。
2、2019 年 9 月 17 日,Oracle 宣布将首次采用 VMware,并将正式支持在 VMware 虚拟化环境中运行的 Oracle 企业软件。
3、2019 年 9 月 18 日,Oracle 宣布云服务永久免费。具体来说,Oracle 用户可以永久享受到以下福利:
2 个 Autonomous Database(自主数据仓库或自主事务处理),每个 Autonomous Database 都有 1 个 OCPU 和 20 GB 存储资源;
2 个 Compute VM,每个 Compute VM 有 1/8 OCPU 和 1 GB 内存;
2 个 Block Volumes,总共 100 GB,最多 5 个免费备份;
10 GB Object Storage、10 GB Archive Storage 和每月 50000 个 API 请求;
1 个 Load Balancer,10 Mbps 带宽;
每月 10 TB 的出站数据传输;
5 亿个摄取数据点和 10 亿个服务监测数据点;
每月传递 100 万个通知的选项和每月 1000 封电子邮件。
4、2019 年 9 月 19 日,华为宣布将开源其 GaussDB 数据库,开源后命名为 openGaus,将在 2020 年 6 月正式上线,可覆盖 70%企业业务场景。
5、2019 年 10 月 9 日,SUSE 宣布将逐步停止 OpenStack 相关业务,并正在转向 Kubernetes。
RDBMS 家族
Oracle 数据库年度总结与展望
Gartner 最新发布了两份权威数据库报告,其中甲骨文在 Gartner 2019 年“操作型数据库管理系统关键能力”报告全部四大使用场景中的排名均蝉联第一。四个使用场景如下:
传统事务处理;
分布式可变多模数据处理;
事件处理/动态数据处理;
增强事务处理。
甲骨文还被 Gartner 2019 年“操作型数据库管理系统魔力象限”评为领导者。
2019 年,Oracle 新推出的自治数据库版本 19c 提供了更多的自治能力和新功能。
Oracle Database 19c 新特性摘要:
自动索引(Auto-Indexing) 自动化索引功能在帮助用户简化开发、运维的同时,数据库性能最高可提升 60%;
实时自动统计信息收集 在数据库发生变化时,可自动收集统计数据供 SQL 优化器使用,极大减轻人工 SQL 调优压力;
Active Data Guard 备库 DML 重定向 备端可做 DML 操作, 实现数据中心应用级双活,简化应用部署难度,同时最大化架构可用性和硬件利用率;
自动 SQL 隔离 可将开发人员性能不好的 SQL 进行资源隔离,保障系统正常运行,提升数据库可用性;
物联网(IoT)流处理功能 专为插入快速激增的 IoT 数据打造,让 IoT 更易用、更好用。
另外, 在 2019 年 8 月 8 日的数据库大会上发布了 Oracle 区块链本地解决方案,帮助企业轻松搭建区块链网络。
2019 年 9 月 17 日,甲骨文全球大会上发布了最新的 Exadata X8M,Oracle Exadata X8M 业内首个采用了英特尔®傲腾™DC 持久性内存和创新的数据库 RDMA 技术,与上一版本相比 I/O 吞吐量提高了 2.5 倍,I/O 延迟降低了 90% 。
根据 Oracle 的产品策略, 2020 年将会推出 Oracle 20c,20c 将会提供更多的自治能力,包括原生持久内存(PMEM)数据库、自动机器学习、为安全交易而打造的原生区块链表,以及性能更加强大的二进制 JSON 数据类型。
MySQL 发布 8.0.18 版本
2019 年 10 月 14 日,MySQL 发布 8.0.18 版本。版本亮点:
1、Hash Join
Hash Join 不需要任何索引来执行,并且在大多数情况下比当前的块嵌套循环算法更有效。
2、EXPLAIN ANALYZE
EXPLAIN ANALYZE 将运行查询,然后生成 EXPLAIN 输出,以及有关优化程序估计如何与实际执行相匹配的其他信息。
3、创建用户时可以随机生成密码
为 CREATE USER / ALTER USER / SET PASSWORD 语句添加了语法,以生成强随机密码,并将其作为结果返回给客户端。添加的语法是:CREATE USER user IDENTIFIED BY RANDOM PASSWORD,ALTER USER user IDENTIFIED BY RANDOM PASSWORD,和 SET PASSWORD [FOR user] TO RANDOM。
4、群组复制
group_replication_exit_state_action 增加了 OFFLINE_MODE 模式。
用于指定当服务器无意离开群组时群组复制的行为。OFFLINE_MODE 行为将关闭所有连接,并禁止非 CONNECTION_ADMIN 或 SUPER 权限的用户建立新连接,否则它的行为类似于现有 READ_ONLY 模式。
5、innodb 增加了一个空闲状态下控制写入 IOPs 的选项
该选项在 InnoDB 空闲时控制写 IOP。目的是减少写 IO,以延长闪存的寿命。
此外,还有很多内部细节的改进,详细可访问:https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-18.html
MariaDB 发布 10.4.11 稳定版
2019 年 12 月 11 日,MariaDB 发布 10.4.11 稳定版,主要改进如下:
1、账户锁定
支持管理员锁定/解锁用户帐户,语句:
锁定
当锁定后,用户再次登录时,提示如下信息:
解锁
注:帐户被锁定,现有连接不受影响,新的客户端不允许连接。
查看账户锁定信息
2、用户密码到期
设置用户到期时间
注:单位默认只有 DAY(天),最小为 1 天。
当用户权限到期后,登录时提示修改密码,如下:
解除限制
3、支持更改字符集 utf8->utf8mb4 采用 ALGORITHM=INSTANT 算法
MariaDB 支持表的某一字段,或者整张表,字符集 utf8 转换为 utf8mb4 采用 ALGORITHM=INSTANT 算法(只修改字典信息)。
列表结构:
DDL 变更语句(秒级更改)
需要注意的地方:
反过来 utf8mb4->utf8 是不支持 INSTANT 算法的;
如果你的字段是 latin1 拉丁文,转 utf8/utf8mb4 是不支持 INSTANT 算法的。
注:在 MySQL 8.0.18 版本中,修改字符集 utf8->utf8mb4 是无法使用到 INSTANT 算法的,需要重建表(ALGORITHM=COPY 算法),且会锁表,update/delete/insert/replace into 语句会被 MDL 锁住(Waiting for table metadata lock)
4、字段长度不大于 varchar(256),支持采用 ALGORITHM=INSTANT 算法
需要注意的地方:
varchar(60)减少到 varchar(40)是不支持 INSTANT 算法的。
大于并等于 varchar(256),这里的 256 是指字节(UTF8 占用 3 字节),是不支持 INSTANT 算法的。
注:只对 varchar 类型采用 INSTANT 算法,char 和 int 是无效的,仍旧是需要拷贝数据且锁表。
MariaDB 10.4.11 早期新功能变化,请参考 dbaplus 社群文章《MySQL 8.0与MariaDB 10.4,谁更易于填坑补锅?》
PostgreSQL 12 正式发布
2019 年 10 月 3 日,PostgreSQL 最新稳定版 PG 12 正式发布,带来大量新特性以及性能提升。
1、PostgreSQL 12 正式发布
支持 AM 接口,通过 AM 接口可以扩展存储、索引接口。例如:支持 undo 的 ZHEAP 存储引擎,以及 ZEDSTORE 行列混合存储引擎。
分区表性能得到巨大提升,相比以前版本,在 1024 个分区的情况下,查询性能提升 469 倍。
Btree,GiST 索引支持指定任意字段排序组织形式的聚集存储。大幅提升聚集查询效率,例如轨迹数据、订单跟踪数据的查询效率。
支持审计日志采样。
支持 reindex concurrently 语法,简化索引膨胀维护操作流程。
索引空间利用率提升,读写性能提升。
支持虚拟列。
支持 SQL/JSON path 语言,提升开发者操作 JSON 字段的效率。
2、PostgreSQL 常用插件动态
1)分布式插件 citus 发布 9.1.0
citus 是 PostgreSQL 的一款 sharding 插件,agpl 开源协议,目前为微软所拥有,国内苏宁有较大量使用案例。
9.1.0 加入对 PG 12 的支持。
https://github.com/citusdata/citus
2)分布式代理函数 pl/proxy 发布 2.9
Pl/proxy 是 PostgreSQL 的一款 sharding 代理函数插件,bsd 开源协议。2.9 加入
对 PG 12 的支持。
https://github.com/plproxy/plproxy
3)地理信息插件 postgis 3.0.1 dev1 发布
PostGIS 是专业的时空数据库插件,在测绘、航天、气象、地震、国土资源、地图等时空专业领域应用广泛。同时在互联网行业也得到了对 GIS 有性能、功能深度要求的客户青睐,比如共享出行、外卖等客户。
4)时序插件 timescaledb 发布 1.5.1
timescale 是 PostgreSQL 的一款时序数据库插件,在 IoT 行业中有非常好的应用。github star 数目前有 7401,是一个非常火爆的插件。
1.5.1 的主要功能增强包括:压缩功能,支持多重压缩算法:rle、Gorilla、字典、lz 等压缩算法。
https://github.com/timescale/timescaledb
5)Oracle 兼容插件 orafce 发布 3.8
Orafce 是 PG 的兼容 Oracle 常用类型、包、函数、操作符的扩展插件包。3.8 发布,支持 PG 12。
https://github.com/orafce/orafce
6)阿里云 RDS PG 发布图像识别插件
阿里云 RDS PG 发布 palaemon 插件,支持图像识别,支持 512 维高纬向量索引。内置 hnsw、ivfflat 两种算法。千万级高纬向量毫秒级查询响应。
https://www.aliyun.com/database/postgresqlactivity
7)实时用户画像插件 pg_roaringbitmap 发布 0.5.0
Pg_roaringbitmap 是兼容 roaringbitmap 库的 PG 数据库插件,支持位图类型的压缩存储、开发友好的大量聚合、计算函数和操作符,广泛应用于实时精准用户画像系统。
https://github.com/ChenHuajun/pg_roaringbitmap
3、PostgreSQL 衍生产品动态
1)gpdb 发布 6.1.0 版
gpdb 是兼容 PostgreSQL 的开源 mpp 数据库,适合 OLAP 场景。
https://github.com/greenplum-db/gpdb
OceanBase 发布 2.2.3 版本及年度总结与展望
1、OceanBase 发布 2.2.3 版本
2019 年 12 月 10 日,OceanBase 发布 2.2.3 版本。该版本增加了安全审计、flashback table、备份恢复等功能,同时进一步提升性能和兼容性。
Oracle mode 新增闪回功能(flashback table)。通过该特性,可以恢复因误操作而丢失的数据,2.2.3 版本支持快速闪回到上一次执行每日合并的快照点。
进一步完善数据库安全特性,包括 SSL、审计、透明加密、label security、user profile,基本满足国家信息安全等级保护认证三级的要求。
支持单分区多线程并行转储,从而解决特别大的分区转储性能瓶颈。该特性可通过 alter system set _enable_parallel_minor_merge = true 开启。
性能优化:分区表批量导入性能大幅提升,性能是 2.1 版本的 2~3 倍;分区表批量更新的性能大幅提升,性能是 2.1 版本的 15~28 倍。
完善备份恢复功能,除 MySQL 对象以外,进一步支持 Oracle 对象的备份恢复。另外,支持回收站备份恢复,允许在备份过程中删表、删索引等 DDL 操作。
适配国产硬件,除华为 ARM、海光 CPU 以外,进一步支持飞腾 2000 CPU。
2、OceanBase 2019 年度总结与发展趋势展望
2019 年,OceanBase 在性能和功能等方面都取得了一些突破:
1)2019 年 10 月,OceanBase 通过了数据库联机事务处理(OLTP)的国际标准 TPC-C 测试。OceanBase 不仅是首个通过 TPC-C 测试的中国数据库系统,还以 60,880,800 tpmC 的成绩打破了 TPC-C 的世界纪录。
2)2019 年 11 月,蚂蚁金服正式发布 OceanBase 2.2 版本,该版本内置 MySQL 以及 Oracle 两种兼容模式,并在 Oracle 模式中引入了许多广受欢迎的功能,同时性能和稳定性上也相对 2.0 版本有大幅提升。OceanBase 2.2 版本平稳支撑了 2019 年的天猫双 11,创造了 6100 万次/秒处理峰值的全新纪录。2019 年双 11 中,支付宝的交易和支付的 OceanBase 数据库首次从 MySQL 模式切换为更适合企业级应用的 Oracle 模式,提升性能并降低了延时。
2020 年,OceanBase 将进一步完善内置的 Oracle 功能,实现更多客户的 Oracle 系统的无缝迁移(业务代码不做任何修改)。OceanBase 还将进一步完善集 OLTP 和 OLAP 于一体的 HTAP 混合负载功能,让更多客户用一个系统既实现交易处理,又完成商业智能分析。
NoSQL 家族
Redis 更新 5.0.6 和 5.0.7 版本
1、5.0.7 版本,主要修复了一些非关键的问题
复制相关的命令和回调问题;
AOF fsync 的个别问题;
极个别场景下的内存泄露问题;
Stream 数据行为的个别问题;
在同一时间处理多个键的命令中可能会发生崩溃的问题。
2、5.0.6 版本,主要修复 bug 以及功能增强
格式错误的 HyperLogLog 字符串可能导致对内存的无效访问的 bug 修复;
新 Redis API 模块合并到 Redis 5;
一些与对象创建有关的内存优化;
修复了 flushSlaveOutputBuffer()的 bug,确保 SHUTDOWN 命令会将挂起的缓冲区传输到副本中。
RocksDB 发布 6.4.6 版本及年度总结与展望
1、RocksDB 发布 6.4.6 版本
2019 年 10 月 16 日,RocksDB 发布 6.4.6 版本。在 2019 年第 4 季度,RocksDB 主要在围绕 6.4.x 几个版本进行迭代,主要特性如下:
增加了–secondary_path 参数,可以让 ldb 打开第 2 个实例作为辅助实例。以保证原始数据库的完整性;
以 Index/Filter Blocks 类型的方式预先加载 Compression dictionary block 到 cache 中,并且用户自定义;
添加了 DBOptions :: log_readahead_size,它指定了在读取日志时要预取的字节数。这对于读取远程日志最有用,因为它可以节省往返次数。如果为 0(默认值),则禁用预取;
API 更新:
添加了新的 API:ExportColumnFamily 和 CreateColumnFamilyWithImport 以支持导出和导入 Column Family;
添加了 GetAproximateSizes 来获取 SizeApproximationOptions 对象及 Status。老的 API 将其调用重定向到此新方法,并且如果 include_flags 没有设置 INCLUDE_MEMTABLES 或 INCLUDE_FILES 位,则不再断言。建议使用新的 API,因为类型更安全,返回的的状态更有语意。
**性能方面的改进:
减少在迭代器中对 upper/lower bound 的验证;
改进 row_cache 的性能:除一些事务情况以为,读取较新的 Snapshot,如果 SSTable 共用相同的 cache key 的数据;
查询时,压缩字典不再复制到新对象。
2、RocksDB 2019 年度总结与发展趋势展望****
在即将过去的 2019 年里,RocksDB 从 5.X 来到了 6.X,有一个大版本的更新,在迭代过程中不仅有一些新功能的迭代,而且在一些性能上方面也有不断的提升。RocksDB 被越来越多的开源项目使用,如 MyRacks、TiKV,同时也被越来越多公司运用在自研分布式 KV 存储中。
发布文档详见:https://github.com/facebook/rocksdb/releases
发布 Blog 详见:https://rocksdb.org/blog
NewSQL 家族
CockroachDB 发布 19.2 版本
2019 年 11 月 12 日, CockroachDB 发布 19.2 版本。该版本提高了 CockroachDB 的延迟、可靠性和可用性,主要亮点如下:
1、减少多区域和单区域部署的延迟
CockroachDB 的新优化原子提交协议将事务的提交延迟减半,从两轮降至一轮。与事务流水线相结合,并行提交使普通 OLTP 事务产生的延迟接近理论上的最小值:所有读取延迟之和加上一轮延迟。这降低了涉及多区域和单区域部署中的辅助索引的事务的延迟时间。
2、改进了分布式集群的可靠性和易用性
在 19.2 中,你可以控制某些记录备份到的确切位置。这可以通过将数据保存在特定的云区域来降低云存储数据传输成本,并且可以帮助用户遵从 GDPR 这样的数据注册要求。
该产品的企业版本和开放源码软件版本中也有许多新特性,这些特性简化了配置地理分布式数据库的复杂性。例如,区域配置现在对用户来说更容易设置。还对分区表做了改进,这样就可以轻松地查看在表、索引甚至整个数据库上创建的分区。
更多内容请见发布说明:https://www.cockroachlabs.com/docs/releases/v19.2.0.html
SequoiaDB 发布 3.4 版本及年度总结与展望
1、SequoiaDB 发布 3.4 版本
2019 年 11 月,SequoiaDB 巨杉数据库发布 3.4 版本。
1)针对金融级交易场景进一步优化和技术创新
全面提升金融级交易场景功能与性能,在分布式事务、数据一致性,并发 CURD 性能以及 SQL 兼容能力方面都做了深度优化。
技术创新点主要包括:
分布式事务智能仲裁算法,为分布式事务 2PC 提交增加智能仲裁算法,确保分布式事务的强一致性;
实现多层级内存池和无锁内存模型;引入冲突仲裁机制,突破 Raft 算法极限,实现全并发同步;
全文索引性能大幅提升。优化全文索引连接模型。
另外,为了满足金融级交易场景对稳定性严苛的技术要求,SequoiaDB 还升级了混沌测试框架,集群稳定性得到极大提升。
分布式交易场景下的性能提升,对比上一大版本,SequoiaDB v3.4 在分布式交易场景,读写性能提升达 30%,更新性能提升 1 倍-1.5 倍,查询性能较 v3.2 提升 1.5 倍以上。
2)巨杉数据库工具矩阵发布,易用性提升
同时推出了新一代的巨杉数据库工具包,提升用户易用性;
近期即将发布 SequoiaPerf 性能监控诊断工具,提升性能监控。
2、SequoiaDB 2019 年度总结与发展趋势展望
2019 年,SequoiaDB 先后发布 v3.2 和 v3.4 两个较大版本更新,新版本全面夯实分布式 OLTP 能力,在分布式事务、数据一致性、并发 CURD 性能以及 SQL 兼容能力方面都做了深度优化。在过去这一年,SequoiaDB 全面提升金融级交易场景功能与性能,并已成功在银行新一代分布式核心交易型业务中规模上线应用,应用场景持续拓展,涵盖核心交易、数据中台、内容管理以及实时数据服务等多种场景。
展望 2020,企业级用户处在架构转型关键节点,面临微服务和分布式架构转型的新需求期,因此分布式数据库将在更多场景发挥作用。针对微服务架构,以 SequoiaDB 为代表的新一代分布式数据库将提供数据库的实例化部署,帮助数据库与上层微服务实现更好的对接,数据库也将提供云化管理方式,保证庞大复杂的微服务能够实现更细粒度管理。
发布文档详见:https://doc.sequoiadb.com/cn/sequoiadb-cat_id-1432190607-edition_id-0
发布 Blog 详见:https://news.sequoiadb.com/cn/detail-id-111
TiDB 发布 3.0.6 版本及年度总结与展望
1、TiDB 发布 3.0.6 版本
2019 年 11 月 28 日,TiDB 发布 3.0.6 版本,对应的 TiDB Ansible 版本为 3.0.6。
2019 年 9 月 6 日,TiDB Data Migration(DM)1.0 GA 正式发布。DM 是由 PingCAP 开发的一体化数据同步平台,支持从 MySQL 或 MariaDB 到 TiDB 的全量数据迁移和增量数据同步。无论是从 MySQL 向 TiDB 进行平滑数据迁移还是用 TiDB 作为多个 MySQL 实例的数据汇总库,都可以通过 DM 来实现。DM 在 TiDB DevCon 2019 上正式开源,经过半年多时间在大量用户、开发者的支持和反馈下,其功能和稳定性越来越完善。
2、TiDB 2019 年度总结与发展趋势展望
过去的这一年,整个数据库行业的主旋律有两个大的方向:一方面是在云上存储和计算分离的架构变的越来越流行(以 Aurora 为代表);另一个方面是 NewSQL 的蓬勃发展,开始慢慢的去侵蚀传统的 MySQL Sharding 技术(以 TiDB 架构为代表)。
对 TiDB 来说,过去一年最大的突破主要是 TiFlash 这个架构,TiFlash 让 TiDB 变成了一个真正意义上的 HTAP 的数据库。
明年一个大的趋势是,比如说以 TiDB 为代表的是 NewSQL 数据库会越来越多的和云的技术整合在一起,如 Kubernetes 等,在云上提供一些更加智能的数据库方案。另外,我们认为明年的关键词是智能,希望能看到 AI 的技术去改造传统的数据库领域。
TiDB 源码:https://github.com/pingcap/tidb
TiKV 源码:https://github.com/tikv/tikv
更进一步文档请阅读:https://github.com/pingcap/docs-cn
大数据生态圈
Hadoop 发布 2.10.0 release 版本
2019 年 10 月 29 日,Apache Hadoop 团队发布了 2.10.0 release 版本。该版本较 2.9.0 版本,主要包含了 362 项 bug 修复,功能增强等内容。主要变更如下:
1、HDFS
改进了 Hadoop HA 的功能,在原有的 standby namenode 基础上,新增了 observer 节点。它是主备节点之外的一种新型 NameNode 节点。观察者节点维护与备用节点相同的命名空间副本。它还允许执行客户端的一致性读的请求;
改进了 HDFS 滚动升级相关的功能;
支持新的基于成本的公平调度队列。它使得调度器在决定任务优先级的时候,不在食基于用户操作的数量,而是用户操作的实际成本。这能够有效的保护 namenode 受一些高成本的操作(例如大型 listStatus 操作或递归 getContentSummary 操作)的影响。
2、Yarn
新版本的 yarn 支持用户定义除 CPU 和内存以外的可计数资源类型(比如磁盘资源,网络带宽资源等),甚至于可以把原生 GPU 作为 yarn 中的可调度资源,相关内容可见 Jira YARN-3926,YARN-8200,YARN-6223,YARN-8200。
Flink 发布 1.9.0 版本
2019 年 8 月 22 日,Flink 发布 1.9.0 版本。此版本包括批处理作业的批处理式恢复,以及新的基于闪烁的表 API 和 SQL 查询引擎的预览,还有状态处理器 API 的可用性,它是最常见的请求特性之一,允许用户使用 Flink DataSet 作业读写保存点。最后,包括一个重新设计的 WebUI 和 Flink 新的 Python Table API 的预览以及它与 Apache Hive 生态系统的集成。
Elasticsearch 发布 7.5.0 版本
2019 年 12 月 5 日,Elasticsearch 7.5.0 发布,具有以下新特性:
1、Features/ILM+SLM
添加 API,以按需执行 SLM 保留
将保留添加到快照生命周期管理
2、Features/Ingest
添加丰富处理器
3、Machine Learning
为多类分类问题实施评估 API
实施新的分析类型:分类(classification)
为数据框架分析添加审核消息
实现 DataFrameAnalyticsAuditMessage 和 DataFrameAnalyticsAuditor
4、SQL
SQL:实现 DATEDIFF 函数
SQL:实现 DATEADD 函数
SQL:实现 DATE_PART 函数
SQL:将别名 DATETRUNC 添加到 DATE_TRUNC 函数
SQL:添加 PIVOT 支持
SQL:实现 DATE_TRUNC 函数
新版本还带来大量改进内容,参见:https://www.elastic.co/guide/en/elasticsearch/reference/7.5/release-notes-7.5.0.html
Greenplum 年度总结与展望:从 OLAP 到 HTAP
随着业务需求和数据库技术的发展,HTAP(Hybrid Transactional and Analytical Processing)数据库以其简洁的架构和混合负载处理能力,受到业界越来越多的关注。2019 年 9 月份发布的 Greenplum 6.0 中,Greenplum 优化了对 OLTP 型负载的支持,成为第一款企业级 HTAP 开源分布式数据库。
1、HTAP 或者 Translytical
HTAP 架构可以很好的解决 OLAP 的一些痛点,如下图所示。当然作为一个较新的技术,HTAP 也有其风险,譬如产品成熟度、资源隔离等。
2、Greenplum HTAP 之路
作为一款主打 OLAP 和数据分析的数据库,过去十几年来 Greenplum 团队一直以分析型查询作为主要优化对象。近年来随着 PostgreSQL 内核的升级(Greenplum 6.0 搭载 PostgreSQL 9.4 内核,Master 分支目前是 PostgreSQL 9.6 内核)和客户对 OLTP 型查询需求的提升, 6.0 开发周期中投入部分精力,对 OLTP 型查询进行了优化并取得了不错的效果。
3、Greenplum HTAP 应用场景
Greenplum 过去每次从大版本发布到新客户(注意是客户不是用户)采用通常需要一年以上的时间。然而 Greenplum 6.0 刚刚发布,就已经有多个客户开始使用,主要原因是 Greenplum 6.0 对 HTAP 的支持。
4、总结
相对于传统 OLTP 和 OLAP 分离的架构,HTAP 优势非常明显,Greenplum 6.0 刚刚发布三个月,已经有多个大型客户采用,这对企业级产品而言非常难得。
现阶段 Greenplum 支持 OLTP 的目标是达到单节点 TP 数据库同一能力量级,譬如 PostgreSQL、Oracle 等。从目前测试来看基本上达到了这一目标。未来还有很大改进空间。
国产数据库
本期新秀:GaussDB 年度总结与展望
华为于 2019 年 5 月 15 日正式发布了自主研发的分布式数据库 GaussDB。GaussDB 包括 GaussDB T 和 GaussDB A 两款数据库产品。
GaussDB T 数据库是一款全自研的分布式数据库,主要面向 OLTP 场景,产品特点包括:
高可用:故障倒换时间<10s,支持闪回;
高性能:基于鲲鹏 920 处理器,性能超越业界其他 TOP 商业数据库 30%;
高扩展:分布式强一致,TPC-C 扩展比>0.8;
兼容性:支持 SQL-92、SQL:1999、SQL:2003 等一系列标准的常用语法,兼容业界其他 TOP 商业数据库常用的 SQL 语法,支持离线/在线迁移。
GaussDB A 数据库主要面向 OLAP 场景,支持 MPP(大规模并行处理)分布式部署方式。产品特点包括:
高可用:故障时查询自动重试,同城/异地双集群容灾;
高性能:核心企业数据仓库场景下,分析性能持平其他业界主流分析型数据库,基于 Kunpeng 920 处理器芯片,相对通用同期芯片,TPC-H/TPC-DS 性能提升 30%,支持 GPU 异构多维硬件加速(10 万路摄像头千亿图像比对秒级响应);
高扩展:单集群最大支持 2048 节点,在线扩容,重分布对业务透明;
数据融合:SQL on Anywhere,支持与异构/同构数据源、FusionInsight 大数据库互联互通;
计算融合:支持 x86/华为 Kunpeng CPU、GPU 等异构计算芯片的智能调度,实现算力最优;
数据安全:数据透明加密,支持国密算法 SM4,行级细粒度权限控制。
GaussDB T 预计 2020 年 1 月正式发布,更多详细特性揭秘即将陆续推出。
更多信息请访问:https://e.huawei.com/cn/solutions/cloud-computing/big-data/gaussdb-distributed-database
本期新秀:OushuDB 年度总结与展望
在即将过去的 2019 年里,OushuDB 在性能和分布式存储方面取得了重大突破,尤其是 OushuDB 4.0 的推出具有划时代意义,其中新执行器是利用 SIMD 技术全新实现的 OushuDB 执行引擎,新一代分布式存储 Magma 是 OushuDB 中可以高性能地支持 update/delete/index 和分布式事务的原生存储:
OushuDB 新执行器完整支持了 TPCH 22 个 query,相比老执行器性能提升 5-10 倍;
Magma 存储支持结构化数据存储,提供高性能存储内数据读写支持;
Magma 存储支持表数据 Update 和 Delete 功能;
Magma 存储支持 ACID 分布式事务;
Magma 存储支持主键索引、唯一键索引和普通索引提高数据检索性能;
Magma 存储支持表数据的自动冗余持久化和高可用访问;
Magma 存储支持 Oushu Database 弹性扩容;
OushuDB 执行器和优化器针对 Magma 进行特别优化,实现最优的数据访问性能表现;
OushuDB 执行器和优化器支持对 Magma 表的 Index Scan 和 Index-Only Scan;
Magma 为 P2P 无中心架构,提高集群部署灵活性便捷性同时降低使用维护复杂度;
Magma 支持 JSON 数据格式(JavaScript Object Notation),它是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成;
Magma 支持 JSON 的操作符和相关函数。
2020 年 OushuDB 将进一步优化新执行器。Magma 正式 GA。 OushuDB 架构上存储与计算完全分离,可以弹性伸缩,动态扩展。OushuDB 新执行引擎和新一代分布式存储 Magma 的整合,让 OushuDB 既保证了性能,又可以完美原生匹配云平台的弹性需求。
<更多信息请访问:http://oushu.io/docs/ch/release-notes.html
ArkDB 发布 1.0.2 版本
2019 年 11 月 28 日,ArkDB 发布 1.0.2 版本。其中值得关注的新特性/新功能/新改进/新修复有:
在 ArkDB 内部实现 SQL 语句的并行计算,提升计算能力及 CPU 利用率;
进一步提升主库大批量建表时,从库复制的性能;
优化从库多线程 redo 复制时,自适应 btree、undo 线程;
新增共享 ibd 的支持;
完善周边工具及产品支持,实现并支持 Arkbak 热备工具,支持从原生 MySQL 直接物理备份迁移到 ArkDB;
修复主库 DDL 过程中 Crash 后,可能导致 recover 忽略日志过多从而启动失败的问题;
保持与原生 MySQL8.0 版本功能及特性的同步。
QianBase 发布 1.5 正式版
2019 年 12 月 1 日,QianBase R1.5 版本正式发布。继 QianBase 1.1 后,QianBase 1.5 新增了以下功能:
1)企业级的数据备份恢复功能
基于时间点数据恢复
2)与 Oracle 兼容性功能包含
支持正则表达式相关函数
支持 Numeric 数据类型四舍五入
Trunc 函数截取时间戳
区分字符末尾带空格和不带空格
3)唯一单调递增序列数
4)支持 For Update 锁冲突等待机制
5)SQL 实用工具 DUMP 命令
达梦数据库年度总结与展望
回顾 2019 年,达梦重磅发布了新一代自研数据库 DM8,推出了达梦数据共享集群、透明分布式数据库、数据库弹性计算、混合事务分析处理技术等面向未来的数据技术架构,共通共存解决用户不同场景需求,并且改进细节达 359 项,涵盖了技术生态改进、查询优化改进、数据备份、运维管理、SQL 支持特性、高级对象、日志监控、安全防护、柔性迁移等多个方面。
这其中达梦透明分布式数据库(DMTDD)值得期待,透明分布式数据库是一个既具有分布式数据库的高可扩展、高可用、高并发处理能力,同时又具备传统数据库的所有高级特性,支持传统数据库所有开发接口和业务开发框架且对用户透明的创新架构。该产品具有灵活横向扩展、完整的 SQL 特性支持、多副本数据异地容灾等特点。
展望 2020 年,达梦将在分布式数据库、数据库自治等领域持续发力。
云数据库
本期新秀:POLARDB 年度总结与展望
2019 年,阿里云自研云原生数据库 POLARDB 实现了技术的全面升级。POLARDB MySQL 8.0 兼容版于 9 月 12 日正式发布,这是全球第一个兼容 MySQL 8.0 版本的云原生数据库。其次,POLARDB 分布式数据库服务也正式发布,其存储容量支持最多超 100TB。再次,POLARDB 的高性能存储引擎 X-Engine 即将发布,X-Engine 存储引擎具有高性能和高压缩率,并且经历了 2018 年双 11 的实战考验。
5 月份,POLARDB 发布重大更新,为传统数据库提供了一键迁移上云能力,最快数小时内迁移完成,最多节省 95%的迁移成本。
此外,在 9 月云栖大会上,阿里云正式发布了 POLARDB Box 一体机,能够更好地帮助用户在私有云上使用 POLARDB 数据库,用户部署在自有数据中心即可享受云数据库的便捷体验。
本期新秀:AnalyticDB 年度总结
2019 年 7 月,阿里云分析型数据库 AnalyticDB 3.0 发布。
AnalyticDB 是阿里云全新一代云原生 OLAP 数据库产品,成为云端托管的 PB 级 SQL 数据仓库。其架构较之前版本更轻量,数据更安全,且满足写入强一致、实时可见;同时具备的弹性扩展能力可扩容至数千节点的超大规模,支持 PB 级以上数据容量。
技术上其采用行列混存技术、自动索引、智能优化器,可对千亿级别的数据进行即时的多维度分析透视;其查询速度相比传统的关系型数据库快 10 倍以上;其全面兼容 MySQL 协议和 SQL:2003,通过标准的 SQL 和常用的 BI 工具以及 ETL 工具平台即可使用。
2019 年,分析型数据库 AnalyticDB 通过了基础能力和性能双料认证,通过了全球最大规模的 TPC-DS 100TB 测试标准,完成 640 节点的分布式分析型数据库测试,成为迄今为止信通院评测认证的最大规模分析型数据库集群。
TBase 开源及腾讯云多款产品更新版本
1、腾讯自研 HTAP 数据库 TBase 开源
TBase 是腾讯数据平台团队在开源的 PostgreSQL 基础上研发的企业级分布式 HTAP 数据库管理系统,已在 11 月 8 日开源。
国内镜像地址:https://git.code.tencent.com/Tencent_Open_Source/TBase
TBase 当前分为商用版和开源版两种版本,说明如下:
开源版和商用版共用内核,协议和使用方法一致;
商用版较开源版有更多的商业化功能;
商用版较开源版的版本迭代更超前。
TBase 开源版实现的技术突破详述如下:
具备高性能可扩展的分布式事务能力,支持 RC 和 RR 两种隔离级别;
支持高性能分区表,可使得数据检索效率成倍提升;
SQL 方面兼容 2003 标准、PostgreSQL 语法和常用 Oracle 函数 &数据类型、窗口函数等。
2、8 月 28 日,腾讯云正式宣布自研云原生数据库 CynosDB 的商业化
作为腾讯重磅发布的新一代云数据库 CynosDB,本次发布有以下主要特性:
完全兼容:100%兼容开源数据库引擎 MySQL5.7 和 PostgreSQL10, 原有业务可以零改造平滑上云;
海量存储: 128T 无服务器(Serverless)架构的海量智能存储,在业务层无感知的情况下自动扩缩容,自动维护数据多个副本,副本自动故障检测修复,保障数据安全可靠;
秒级弹性: 无状态(Stateless)的计算节点卸载了除日志外的所有 IO,实现了秒级的故障切换和恢复,并可根据业务峰值需要完成秒级的升降配,实现计算资源的成本最优;
效用计费:分布式共享存储按实际使用量计费,不用不计费,轻松应对业务数据量动态变化和持续增长。
3、9 月 19 日,腾讯云图私有化部署版本发布正式版
其中值得关注的新特性/新功能/新改进/新修复有:
支持私有化部署,支持云上大屏一键同步到云下;
60+可视化组件任客户随意搭建炫酷大屏。
4、9 月,腾讯云数据库正式按地域发布 TXSQL 5.7-201908 版本
该版本主要实现写性能提升,新增功能特性和内核参数,为 MySQL 提供更稳定、高效的性能和服务能力。其中,新增特性包括 DROP 大表操作异步化、GTID 复制功能扩展、隐藏主键功能、非 Super 权限用户 Kill 链接的功能等。另外,在最新的 TXSQL 内核版本中,可以通过内核参数来指定事务调度算法。
TXSQL5.7_ 201908 版以 MySQL 5.7.18 为基准版本进行 5.7 版本的内核开发与支持,新增功能特性如下:
DROP 大表操作异步化
GTID 复制功能扩展
隐藏主键功能
非 Super 权限用户 Kill 链接的功能
其他优化特性
a. 内核级别允许 MySQL 5.7 版本的 gtid 与 MySQL 5.7 版本的非 gtid 建立主从关系,非 gtid5.7 事务同步到 gtid 5.7 实例上生成匿名事务,这个特性目前限于 DTS 迁移过程中使用,大大方便自建环境迁移上云;
b. 添加以资源为优先级的锁调度方式。添加 CATS(Contention-Aware Transaction Scheduling)锁调度方式,提升并发更新性能。
京东云数据库年度总结与展望
京东云数据库在 2019 年中发布了 4 个全新的数据库产品,并提供了数十项功能更新及优化。其中,云数据库 RDS 更高分通过了中国信息通信研究院“关系型云数据库”的评测,成为首批获得该权威认证的云数据库产品。
1、发布云数据库 PostgreSQL
云数据库 PostgreSQL 是一款功能强大的关系型数据库,支持丰富的数据类型及地理信息扩展,具有强大的并行计算能力,并提供了高可用,弹性扩展、备份、监控等全套解决方案。
2、发布云数据库 InfluxDB
伴随物联网、车联网和人工智能的快速发展,由物理设备产生的数据呈指数级增长。京东云正式对外提供云数据库 InfluxDB 服务,可满足日益增多的时间戳数据存储需求,提升了数据库的易用性、安全性,可用性及扩展性,可降低管理维护成本,使客户专注于应用开发和业务发展。
3、发布云数据库 Greenplum
云数据库 Greenplum 可提供在线 MPP 大规模并行处理数据仓库服务,用户在几分钟内即可设置和部署完成新的数据仓库,无需进行复杂的大规模 MPP 集群运维管理。
4、正式上线数据传输 DTS 产品
为简化数据库上云工作,京东云近期推出了数据传输 DTS,支持 MySQL、MariaDB、Percona、SQL Server、MongoDB 等多种数据库迁移,可简单快速地将本地自建数据库迁移至京东云,源数据库在迁移过程中可继续正常运行,从而最大程度地减少应用程序的停机时间。
5、2019 年产品重大功能更新汇总
1)云数据库 MySQL、MariaDB、Percona
国内云服务商里率先支持 MySQL 8.0;
支持 NVME 的本地盘,并新增了内存优化型规格(CPU 内存比为 1:8);
全线支持实例在线的升降配,升级过程业务几乎无感知;
支持自定义数据库端口,满足用户个性化需求;
支持下载慢日志,错误日志。
2)云数据库 SQL Server
支持 NVME 的本地盘,并新增了内存优化型规格(CPU 内存比为 1:8);
新增 2017 企业版,2016 标准版,Web 版,2014 标准版,2012 标准版,满足用户多样化的需求;
支持实例在线的升降配,升级过程业务几乎无感知;
支持调整并迁移数据库实例的可用区,适应用户不断变化的业务架构;
支持自定义数据库端口,满足用户个性化需求。
3)云数据库 DRDS
支持水平扩容,可通过添加节点提升整个系统的存容量和处理能力;
可通过 DDL SQL 创建拆分表,提升用户使用体验;
支持全局自增 ID,满足用户对自增 ID 的需求,同时也提供了更好的 MySQL 兼容性;
可按多种时间维度进行数据拆分,提供了更加灵活的数据拆分方式;
性能优化监控,提供多种重点 SQL 的监控,并可直观的查看各个表的数据分布情况;
支持自定义数据库端口,满足用户个性化需求。
RadonDB 发布 1.0.8 版本
12 月中旬,MyNewSQL 领域的 RadonDB 云数据库发布了 1.0.8 版本。其中值得关注的新功能有:
1、Attach/ Reshard 功能上线
Attach/Reshard 功能的背景:在用户业务运行一段时间,打算往 RadonDB 中迁移,可能需要一些迁移工具的辅助,需要付出一些时间和人力的代价,而且周期比较长。
为解决把单机/高可用 MySQL 中业务迁到 RadonDB 中痛点问题,零门槛,一键迁移,提升效率。并且发挥 RadonDB 底层存储 MySQL 先天优势,无缝接入 RadonDB,且低耦合。Attach 到 RadonDB,不影响老业务的同时,可以通过 RadonDB 查看验证数据。Reshard 可把 MySQL 中的单机数据打散到分布式数据库中,实现数据的智能分布,满足用户数据和流量横向扩展的需求,从单机数据库无缝过渡到分布式数据库。
2、支持 partition list 功能,满足一些金融业务法人隔离性的需求
3、支持’set autocommit=0’ 自动开启事务功能
4、把迁移工具移到 RadonDB 中,成为功能子集
5、执行计划进行了大量重构和优化
6、进一步完善和细化权限管理
以上功能已全部包含在我们的 master 分支:
推出 dbaplus Newsletter 的想法
dbaplus Newsletter 旨在向广大技术爱好者提供数据库行业的最新技术发展趋势,为社区的技术发展提供一个统一的发声平台。为此,我们策划了 RDBMS、NoSQL、NewSQL、时序数据库、大数据生态圈、国产数据库、云数据库等几个版块。
我们不以商业宣传为目的,不接受任何商业广告宣传,严格审查信息源的可信度和准确性,力争为大家提供一个纯净的技术学习环境,欢迎大家监督指正。
至于 Newsletter 发布的周期,目前计划是每三个月左右会做一次跟进,下期计划时间是 2020 年 4 月 6 日~4 月 17 日,如果有相关的信息提供请发送至邮箱:newsletter@dbaplus.cn
感谢名单
最后要感谢那些提供宝贵信息和建议的专家朋友,排名不分先后。
欢迎提供 Newsletter 信息,
发送至邮箱:newsletter@dbaplus.cn
Github 地址:
欢迎技术文章投稿,
发送至邮箱:editor@dbaplus.cn
原文链接:
https://mp.weixin.qq.com/s/i1n3Te8SQc2-9Ahjw7-hHw
评论