作为一款全自研的数据库产品,崖山数据库致力于构建自主可控的全栈数据库产品体系,以满足行业用户多元化的需求。
从第一行代码到完整的数据库产品体系,我们为何选择从0到1自研数据库?我们经历了哪些关键的产品节点?每个版本的核心定位与价值如何?本文梳理了YashanDB产品全自研的迭代与演化脉络,希望借此帮助您更全面的了解YashanDB。
YashanDB产品历程回溯
YashanDB自成立之初就坚定走自主研发的道路。从第一行代码开始构建数据库,不仅保障了技术和服务的自主性、可控性,更是保持技术领先性的战略基石。
迄今为止,YashanDB已经发布四个企业版本,分别是V22.1、V22.2、V23.1以及V23.2,产品逐步走向完备和成熟。
V22.1版本:首个relese主备版本
基于原创理论体系,拥有全球顶尖技术团队及二十年工程能力的积累条件下,YashanDB团队在2022上半年发布了第一个主备版本。该版本的定位是支撑多种行业场景PoC,支持特定场景系统上线。经三方机构权威测试,证实YashanDB内核代码自主率100%。兼容上下游信创生态链,与头部厂商进行互认证适配。在该版本中,还具备如下突出特性:
1.进行标准benchmark TPC-C模型测试,TpmC值达到百万以上,并且在同等环境中超过Oracle的20%;
2.实现了主备异常自动切换能力,高可用可达到秒级RTO,RPO=0;
3.原创理论落地,实现大数据变小,实现有界计算透明加速产品化。
V22.2版本:首个长期支持版本
YashanDB团队在2022下半年发布了V22.2版本,为长期服务版本(LTS),推广大量系统上线。这个版本具备企业级产品化能力,覆盖OLTP/OLAP/HTAP交易和分析场景,面向通用行业。在该版本中,还具备如下突出特性:
1.SQL语法全面兼容Oracle;
2.大幅度增强安全企业特性,比如三权分立、表空间数据透明加密等;
3.支持向量化执行引擎,分析能力全面增强。
V23.1版本:完整产品体系
YashanDB团队在2023年10月推出了V23.1版本,为架构版本,完善了YashanDB的产品体系,发布了共享集群、分布式实时数仓、空间数据库三款产品,覆盖更多的业务领域。同时个人版重磅发布,向所有用户和开发者全面开放。在该版本中,还具备如下突出特性:
1.内核能力持续增强,新增自定义类型(UDT)、组合分区、DBlink(跨数据库访问和处理数据)等核心特性;
2.高性价比数仓:具备自适应Cost模型、动态内存管理等特性,且在TPC-H型测试对比中,性能优于开源数据库10倍;
3.支持原生空间数据引擎,兼容主流开源数据库。
V23.2版本:规模复制
YashanDB团队在今年4月初正式发布V23.2 LTS版本,同时配套数据迁移工具、监控运维工具和开发者工具,可以满足支撑各类企业应用,旨在面向金融、央国企和政府等场景,实现多层次全面兼容,具备可规模复制能力。在该版本中,还具备如下突出特性:
1.支持Oracle和MySql平滑迁移至YashanDB;
2.线性扩展比,共享集群双节点TPCC性能达312W;
3.自研配套工具,为客户项目保驾护航。
YashanDB 产品体系概览
崖山数据库管理系统提供包含单机/主备、共享集群、分布式实时数仓等系列数据库产品及解决方案,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,全面兼容私有化及云基础设施,为客户提供一站式的企业级融合数据管理解决方案。
目前,YashanDB 具备四个产品形态和三大工具产品,分别是单机/主备、分布式实时数仓、共享集群以及空间数据库,它们是在产品演进中逐渐发布的。同时单机/主备、三大工具产品已全面在官网(download.yashandb.com)开放下载。
YashanDB数据库
YashanDB单机/主备
单机/主备为YashanDB的第一个发布的产品形态,具备全面的特性,采用先进内核架构,高效地支持众核计算、大内存、新存储介质和网络通信框架,软件层面采用并行和向量引擎、异步并行框架、OCC动态事务调度算法、Raft协议、有界理论等技术方案和算法,为多形态的产品架构提供基础能力,从而满足企业级核心应用对高兼容、高性能、高扩展、高可用等全生命周期数据管理诉求。
1.自研存储、事务管理和优化器等内核引擎;
2.具备通用SQL能力、PL/SQL和接口等兼容能力;
3.支持实时异步备库可读、主备弹性扩展和多中心多容灾高可用功能。
YashanDB分布式数仓
YashanDB在V22.2版本支持分布式形态,持续加强实时数仓的能力,采用全新设计的MPP分布式架构。解决大数据计算效率、数据生产即分析、海量数据存储成本及数据孤岛等数据库瓶颈难题(3V:Volumn、Velocity、Variety),为用户提供灵活的传统数仓加速、一站式数据仓库解决方案。
1.最大32个DN节点;
2.水平弹性扩缩容,可近线性扩展;
3.高效数据压缩,节省存储成本;
4.向量化执行,稀疏索引技术。
YashanDB共享集群
V23.1版本推出单库多实例的多活共享集群数据库系统YashanDB for Cluster(YAC),所有节点之间以强一致性方式实现并发读写,为高端核心业务提供了应用透明的透明多写、高可用、高扩展、高性能的数据库能力。
1.应用透明多写多读,业务无需改造;
2.极致性能,超主流商业数据库50%;
3.故障自动恢复,应用透明切换;
4.计算节点弹性扩展,实现秒级扩容。
YashanDB空间数据库
YashanDB空间数据库支持ST_GEOMETRY数据类型,用于存储和访问符合开放地理空间信息联盟(Open Geospatial Consortium,简称OGC)制定的SFA SQL标准的几何对象,提供一系列的数据类型和函数,可以对空间数据进行高效的存储、索引、查询和分析计算,支持空间数据平台引擎和原生空间数据引擎,为用户提供多种空间数据管理的解决方案。
1.兼容PostGIS数据类型和函数功能;
2.支持原生空间索引,查询性能优于开源数据库;
3.适配主流空间平台厂商,兼容国产软硬件环境;
4.支持多模数据管理,基于SQL的统一跨模计算。
YashanDB 配套工具
崖山运维平台YCM
YCM支持对YashanDB单机/主备、分布式、共享集群三种形态进行管理,包括监控告警、巡检管理、表空间管理、权限管理、会话管理、备份恢复、锁管理、日志分析、慢SQL模块功能。
崖山迁移平台YMP
YMP是为YashanDB数据库配套提供的数据库迁移产品,支持异构RDBMS与YashanDB数据库之间进行迁移评估、离线迁移、数据校验的能力。YMP提供可视化服务,用户只需通过简单的界面操作,即可完成从评估到迁移整个流程的执行与监控,实现低门槛、低成本、高效率的异构数据库迁移实施。
崖山开发平台YDC
YDC旨在帮助用户安全、高效的使用崖山数据库。用户可通过YDC可视化地管理数据库中的表、视图、函数等数据库对象,并且支持存储过程调试等。
YashanDB 最新版本发布
用户驱动产品革新
YashanDB团队始终从用户需求和行业场景痛点出发,持续进行产品的推陈出新。在2024年发布V23.2版本之前,YashanDB在各个领域已经完成大量的PoC和系统上线。YashanDB团队持续收集客户的建议和诉求进行分析总结,并有计划的落实到对应版本中。
(1)PoC客户需求分析:如下是部分领域的客户诉求分析结果,需求主要集中在Oracle系统包、PLSQL和功能等类型。
(2)个人用户与生态:推出V23.1个人版后,YashanDB团队持续收集体验者的反馈诉求,其中以易用性偏多,比如YASQL,大部分Oracle使用者习惯了SQLPLUS的用法,因此希望YashanDB支持SQLPLUS相关的使用建议。此外,在实际业务扩展中还遇到了各类生态适配的诉求,比如CDC数据同步、开源生态工具兼容YashanDB等。具体的需求详见下表:
V23.2版本关键能力
YashanDB每个版本的特性规划都是循序渐进的,经过前三个版本在市场上产品不断打磨,YashanDB在V23.2版本的设计目标为客户项目批量复制,在生产系统上推广使用。为了实现这个目标,且结合市场推广中项目诉求,V23.2版本主要在四个模块下做了大量的新特性增强和优化。
(1)兼容性:为了满足金融、央国企等不同业务场景的客户需求,降低客户迁移成本,YashanDB V23.2版本做了大量的兼容性特性,在Oracle兼容方面,YashanDB持续增强PLSQL、功能、SQL语法、系统包和标准接口能力。另外,为了兼容信创生态,在23.2版本还支持了字符集GB18030,首批获得国家标准GB18030-2022最高级别认证。
1.PL/SQL兼容(BULK COLLECT、FORALL):采用BULK COLLECT子句可以将查询结果一次性地加载到集合类型变量中,避免Cursor逐条地处理的性能损耗;在PL/SQL中可使用FORALL子句批量执行语句,简化PL代码的编写,同时在PL/SQL程序中更新很多行数据的程序的场景下,可以显著提高处理性能。
2.功能、语法兼容(INDEX/TABLESPACE RENAME):当我们希望重新规划表空间和索引名称时,需要将数据迁移到新表空间,然而随着数据量增大所花费的时间越大;重新规划索引名需要先删除后创建,这种方法需要消耗较大的数据库资源和时间。而在支持了在线重命名表空间和索引功能后,只需要秒级就能完成对表空间名和索引名的重新规划。
3.系统包函数(DBMS_LOB、DBMS_ROWID):新增DBMS_LOB系统包,提供对大型对象(LOB)数据类型的访问和操作的能力;新增DBMS_ROWID系统包及对应子函数,支持通过输入ROWID获取的相关信息,比如数据库块号、相对文件号和数据行号等。
4.丰富标准驱动接口(OCI、JDBC):新增OCI接口,支持Zabbix通过OCI接口对YashanDB进行操作。
5.支持GB18030字符集:为了适配国标和响应推进基础软件国产化,YashanDB从V23.2版本开始,行存执行在服务端和客户端的字符集支持设置GB18030,按照GB 18030-2022标准实现级别为3。即支持了国家标准所规定的变长多字节字符集,且完全向后兼容GB 2312-1980,及基本兼容GBK。
(2)性价比:为了使在数仓场景下高效分析、降本提效。YashanDB在压缩比、入库性能和查询性能上做持续增强和优化。
1.自适应高压缩率(3-6倍):新增支持LZ4和ZSTD两种压缩算法,支持创建表时根据不同的字段数据类型选择不同的压缩编码。实际测试导入1TB的LINEITEM表数据,压缩比可以达到1:4.5。同时支持根据数据类型特征自动选择编码,降低了用户的使用难度,节省了数据库的存储成本。
2.增量数据入库性能提升:通过优化降低数据同步任务的内存开销和同步任务流水线优化,使得并发数据同步得到提升,使用LINEITEM表模型,单任务同步性能由原来1MB/s提升到8MB/s。
3.缩小部署规模,降低成本(一主一备部署):在V23.2版本之前,YashanDB分布式DN组只支持单主和一主多备的部署模式,为了满足业务多样性,同时又可以节省成本,因此,YashanDB在V23.2版本实现了DN组一主一备的部署形态。
4.管控资源,合理化使用:支持对用户级别CPU资源管理,通过DBMS_RESOURCE_MANAGER系统包创建资源组,映射用户资源组关系,及创建资源计划,来实现按照用户管控CPU资源。YashanDB在MN、CN和DN各类节点上都实现了CPU资源隔离。
5.只读外部表加快大数据处理和分析:新增支持只读外部表功能,语法兼容Oracle的使用习惯。用户可以指定和链接存储系统上的具体CSV文件或者数据目录对象DIRECTORY的文件,实现不用导入数据库中就可以像访问普通表一样访问的能力。当涉及大规模数据处理和分析时,外部表可以直接在存储系统上执行查询,避免了数据传输的开销,在数据量巨大的情况下可以显著提高查询性能。
(3)高可靠:对共享集群能力持续加强,提高金融核心等关键场景的业务连续和数据安全能力。
1.支持远程备份恢复,便捷灵活:支持通过yasrman远程连接共享集群数据库,在工具侧生成备份集,同时支持将工具侧的备份集恢复到远程数据库。同时共享集群在V23.2版本还支持基于时间点的备份恢复能力。
2.FRA支持数据自动恢复:支持为冗余度为External的DiskGroup的元数据提供冗余备份。元数据被破坏时,可以从Fast Recovery Area数据区获取备份数据并做自动恢复,提升YFS元数据的可靠性。
3.按列加解密:支持通过gs_encrypt_aes128函数对单列或多列内的字符串数据进行加密和gs_decrypt_aes128函数解密数据。
4.并发执行SQL内存动态控制:支持计算内存预分配内存配额,分布式部署形态下并发执行SQL时,可以有效通过参数控制单个stage分配内存配额,防止瞬间申请内存过大导致任务失败。同时,YashanDB还支持stage申请内存排队机制,并且在初次申请失败后具备重试能力,提高了SQL在总内存不足时执行失败的容错率。
5.主备支持滚动升级:为了提高业务可用性、缩减升级YashanDB时间、简化升级操作流程,YashanDB在V23.2版本中支持了小版本(第4位版本号)的滚动升级能力,通过YashanDB配套的运维管理工具yasboot实现在数据库不停机的情况下,将数据库软件升级到新版本。
6.驱动支持配置多个IP或者域名:在实际业务场景中,除了数据库具备高可用能力以外,还需要加上驱动能力一起配合实现的高可用方案才能达到真正的业务高可用。为了支撑广泛的高可用场景,YashanDB在V23.2版本驱动实现了多IP配置。在应用端配置YashanDB驱动时,比如JDBC、C驱动、OCI等,可以配置多个IP,包含主备的IP,当数据库发生主备切换时,驱动配置无需修改,应用可以连接到新的主库上,实现业务快速恢复。
(4)易运维:崖山持续关注着用户使用习惯和反馈的诉求,并且在V23.2版本对易用性做了大量的增强,提升人员技能继承和复用的效果。
1.持续新增AWR能力:新增支持集群相关报告信息(Global Cache Load Profile、Global Cache Efficiency Percentages等),提供运行期间各种集群相关的统计数据,用户可以更好的了解共享集群性能表现。
2.收集统计信息增强(定时自动收集和整库、schema维度收集):分布式部署模式和共享集群部署模式下,也支持了全库、整个schema维度的统计信息收集。同时支持通过特定任务自动收集统计信息,实现了每天默认凌晨2:00开始收集全库的统计信息,包括统计信息缺失或者统计信息已经失效的对象的收集。
3.全面覆盖可视化运维:实现了分布式可视化运维能力,通过YashanDB 运维平台(YCM) 运维YashanDB分布式数据库,提供分布式的巡检管理、监控告警、备份恢复和慢SQL分析等可视化功能,达到了便捷的运维效率目的。
4.丰富YASQL界面设置功能:YASQL支持自定义输出格式和效果,同时支持静默登陆,便于用户脚本批量执行时,减少不必要的信息输出。
5.增加导数工具体验功能:在使用imp工具导入数据到数据库中的时候,如目标表已存在数据,支持使用参数TRUNCATE=Y清空已存在的表数据后导入新数据。
6.一键式收集操作系统和数据库信息:为了更快定位问题和优化系统,YashanDB在V23.2版本提供一键式收集诊断所需信息,包含操作系统基本信息、操作系统和数据库日志、数据库配置信息和数据库视图等信息,同时打包到指定目录,使我们更快、更准地获取到便于定位定界的相关信息,支撑问题解决和性能优化。
V23.2版本配套工具升级
为了支撑YashanDB在不同业务场景的可规模化复制,节省客户迁移、开发和运维阶段的成本,崖山团队为客户项目提供一站式全生命周期工具体系。在V23.2版本中,大幅度提升了各个工具体系的能力,同时还发布自研的开发者平台。
(1)升级崖山运维平台YCM
1.表空间管理:支持分布式部署模式、共享集群部署模式下的表空间管理,包括查看表空间大小、使用率、数据文件等信息。
2.备份恢复管理增强:新增单机/主备部署模式的PITR恢复。
3.短信服务能力:支持自定义推送程序方式,用户通过上传自定义短信推送脚本到平台服务端中,进行站外消息的推送。
4.自身平台权限管理和数据安全增强:支持角色管理功能,平台内置一系列默认角色,供超级管理员去给普通用户自定义分配权限,满足大部分运维场景中对用户权限的限制诉求;支持对平台数据和各个agent主机进行定时备份,通过备份恢复数据到某个时间点和备份文件到期清理的功能。
(2)升级崖山迁移平台YMP
1.支持MySQL/DM8数据库离线迁移数据源:新增对MySQL 5.6/5.7/8.0版本及DM8版本到YashanDB的迁移评估、元数据迁移、数据迁移和数据量统计校验能力。
2.支持数据校验:支持多维度进行数据统计校验,快速校验源端、目标端迁移前后数据是否一致。
3.迁移可用性增强:新增失败重试、断点续传、迁移容错等功能,有效提升迁移可用性。
4.易用性优化:优化界面流程,提示语等,帮助用户快速上手,一键实现数据迁移能力。
(3)发布崖山开发平台YDC
1.图形化对象管理:支持查看YashanDB的所有对象属性详情。
2.智能IDE:支持语法高亮、智能提示和SQL语法自动格式化的易用性功能。
3.PL/SQL DUBUG:支持YashanDB的PLSQL的调试功能。
4.执行记录、日志、结果集显示:可通过执行记录查看执行 SQL 语句详情;通过查看 SQL 执行日志,可以追踪查询的执行情况,查看 SQL 语句执行成功或失败,会显示具体的失败原因;结果集表格化展示,提供符合查询条件的数据结果。
V23.2个人版全新上线
YashanDB V23.2版本同步发布个人版,具备最新全量功能特性
YashanDB产品Roadmap及未来规划
YashanDB企业版本发布节奏是每年发布2个大版本,4月初发布的大版本为长期服务版本,推荐规模化上生产使用;10月份发布的大版本为架构版本,发布众多特性或者粒度较大特性,每个内核版本都具备相应的配套工具。期间按照市场诉求发布小版本,该版本主要是新增小特性需求和bug fix。
(1)内核规划
YashanDB 2024年10月份版本的需求已在研发之中,主要的内核关键特性如下:
1.Oracle兼容性持续增强:Oracle系统包、PLSQL、和动态视图持续增强;
2.MySQL兼容:兼容MySQL数据库的数据类型、视图、函数、SQL Mode等功能;
3.AP能力持续优化:TPC-DS优化、压缩比增强和最大规模扩大等;
4.Database Flashback:数据库级别闪回;
5.发布docker个人版:发布到官网和Docker Hub;
6.CDC同步能力:YashanDB作为数据源的实时同步能力;
7主备集群:支持主备集群复制、高可用等能力。
明年或者更长期的关键特性规划包含:
1.Oracle/MySQL兼容增强;
2.提供云化产品形态:公有云和私有云;
3.支持存算分离架构;
4.共享集群8节点规格商用。
(2)工具体系
YashanDB配套工具持续为客户项目提供全方位支撑,对应的关键特性如下:
崖山运维平台YCM:
1.备份集管理:共享集群支持PITR、备份支持加解密;
2.运维能力增强:企业微信方式推送告警信息、支持审计日志管理(保存、清理)等;
3.未来进一步支持诊断智能推荐、容量监控与预测邓功能。
崖山迁移平台YMP:
1.迁移能力增强:易用性、功能全面增强;
2.增量同步:支持多个数据源增量同步到YashanDB的解决方案;
3.未来进一步支持更多异构迁移以及性能评估。
崖山开发平台YDC:
1.图形化对象管理:支持对象的图形化DDL能力;
2.数据导出:支持表级数据导出。