欢迎访问环球CEO
当前位置:首页 > > 正文

MogDB 插件式机制在实现多数据库方言框架兼容与平滑迁移中的价值

发布时间:2024-10-08 12:16分类: 浏览:221评论:0


导读:9月7日下午,由中国开源软件推进联盟 PostgreSQL 分会(简称:PG分会)联合 PostgreSQL 西安用户组共同举办的“PostgreSQL 数据库技术峰会”在西安举办...



9月7日下午,由中国开源软件推进联盟 PostgreSQL 分会(简称:PG分会)联合 PostgreSQL 西安用户组共同举办的“PostgreSQL 数据库技术峰会”在西安举办。本次会议以“PG与国产生态”为主题,结合当下去O和国产化趋势,围绕 PostgreSQL 的应用案例、运维经验、技术要点、行业方向等进行分享交流。

云和恩墨数据库内核研发工程师刘伟在本次活动中以《MogDB 中的 MySQL 兼容性:在 PostgreSQL 体系下的多语法解析器实现》为题,从技术实现的角度分享了源自PG的 openGauss 商业发行版 MogDB 数据库是如何实现对 MySQL 的高兼容。



刘伟首先提出了“MySQL 难民”这一现象,指的是那些曾经在“去IOE”运动中从 Oracle 迁移到 MySQL 的企业,现在又面临因 MySQL 归属 Oracle 的问题而不得不再次选择迁移到国产数据库,以实现自主可控的情况。因此,国产数据库如何才能更好地接收包括 MySQL 在内的多种国外商业或开源数据库的用户?提升对多数据库方言框架的兼容是必要路径。

那么一款数据库产品,该如何实现多数据库方言框架的兼容呢?刘伟表示“插件式”方式是能够满足一套库兼容多种数据库语法的最好方式。openGauss 虽然源自PG,但 openGauss 是多线程模式,而PG是多进程模式,这使得两款数据库的插件实现方式也大相径庭。为了提升对各种不同的数据库的兼容性,在 openGauss 和 MogDB 中创建了很多个hook,用以来实现对语义解析、聚合计算、执行计划、大小写兼容的搜索、PL/SQL语法处理等功能的兼容。这样做的好处十分明显,例如当用户创建了一个兼容 MySQL 的数据库时,在创建的过程中数据库自己就去执行相应的hook语句,无需手动操作,带给用户便捷的使用体验。

随后,刘伟展开介绍了几种 MySQL 功能兼容的技术实现:

  • 立的语法hook:在语法解析器执行时候,检查当前是否有语法hook,如果已经被hook了,则调用插件中的语法解析器;
  • rename table语法变换:openGass 中原本就有rename类似语法,需要变换为 MySQL 兼容性语法,在执行阶段去判断是否为兼容性执行过程,根据语法额外扩展多个表的rename过程;
  • 独立的函数实现:重建单独的B兼容性函数缓存,替换掉server的函数缓存,当SQL处理函数搜索调用,直接引用插件内的函数;
  • 用户锁的实现:允许用户通过SQL加自定义的锁,可以让多个程序之间完成加锁相关的交互过程,使得客户端从任何位置访问都可以得到一致性的锁视图;
  • 独立的通讯协议:openGauss 通过抽象协议层接口,在dolphin插件中实现了 MySQL 协议兼容,用户在设置相关参数后,可通过 MySQL 的JDBC driver或者 MySQL 命令行客户端,直接连接 openGauss。

要想实现平稳的数据库替代,除了数据库产品本身对源数据库的兼容之外,迁移过程也是重要环节。刘伟介绍道,为了能够让异构环境中各类常见数据库平稳地迁移到 openGauss 或 MogDB,云和恩墨推出了MDB迁移套件。该套件能够支持离线迁移在线同步兼容评估数据校验等功能,囊括了数据迁移工作中的方方面面,实现数据迁移的全生命周期管理。

此次峰会在热烈的讨论中落下帷幕,与会者们纷纷表示受益匪浅。刘伟的分享不仅展示了云和恩墨在数据库兼容性和迁移技术上的深厚积累,更为正在寻求数据库国产化路径的企业提供了宝贵的思路和技术指导。

本次峰会的成功举办,再次印证了国产数据库的发展已经步入一个全新的阶段,不仅在技术上实现了与国际领先水平的接轨,更在用户体验和服务质量上取得了显著进步。未来,MogDB 以及其他优秀的国产数据库产品将在中国乃至全球市场发挥更加重要的作用。

数据驱动,成就未来,云和恩墨,不负所托!


云和恩墨创立于2011年,是业界领先的“智能的数据技术提供商”公司以“数据驱动,成就未来”为使命,致力于将创新的数据技术产品和解决方案带给全球的企业和组织,帮助客户构建安全、高效、敏捷且经济的数据环境,持续增强客户在数据洞察和决策上的竞争优势,实现数据驱动的业务创新和升级发展。

自成立以来,云和恩墨专注于数据技术领域,根据不断变化的市场需求,创新研发了系列软件产品,涵盖数据库、数据库存储、数据库云管和数据智能分析等领域。这些产品已经在集团型、大中型、高成长型客户以及行业云场景中得到广泛应用,证明了我们的技术和商业竞争力,展现了公司在数据技术端到端解决方案方面的优势。

标签: