在迁移至分布式数据库的过程中,传统数据库中的存储过程、自定义函数、触发器如何处理改造?

刚刚看了下TDSQL的官方文档,TDSQL 不支持 MySQL 的一些特性如下:自定义函数。视图,存储过程,触发器,游标。外键,自建分区。复合语句,如 BEGIN END,LOOP,UNION。子查询,having 子句(但支持带 shardkey 的 derived table)。我们知道银行业务系统中,使用了大量的存储过程以及自定义函数,...显示全部

刚刚看了下TDSQL的官方文档,TDSQL 不支持 MySQL 的一些特性如下:

  • 自定义函数。
  • 视图,存储过程,触发器,游标。
  • 外键,自建分区。
  • 复合语句,如 BEGIN END,LOOP,UNION。
  • 子查询,having 子句(但支持带 shardkey 的 derived table)。

我们知道银行业务系统中,使用了大量的存储过程以及自定义函数,但是在迁移至分布式数据库的过程中,由于TDSQL不支持这些。贵行是如何改造的呢?
各位老师能否分享一下经验?

收起
参与21

查看其它 3 个回答HenryCH的回答

HenryCHHenryCH软件架构设计师大厂

分布式数据库在核心系统的应用,一定要重构应用。
重构应用就是业务逻辑尽量在应用层完成,在数据库都是简单的SQL语句,避免复杂查询和跨库处理。
Oracle针对数据库市场最重要的成功因素就是存储过程,使得应用用上瘾之后,数据库没法迁移。
侧面可知分布式数据库改造最简单场景就是替换DB2的场景。

银行 · 2020-05-28
浏览2929
  • 您的意思是,重新写套业务应用来适配分布式架构,应用逻辑放到应用层;分布式数据库做数据存储层只负责数据的访存!
    2020-05-29
  • 对,把复杂的应用逻辑放到应用层面,数据库尽量做简单的操作,当然,事务等基本的数据库要点,都仍由数据库来控制。
    2020-05-29
  • Dingk  Dingk回复 atpeace331
    从设计角度讲,直接在数据库写很多复杂的sql,其实并不是好的设计,后续改造,即使原开发人员都很难看明白。只是限于时间等各方面的考虑,造成很多的改造需求,简单的在数据库语句方面叠加一些逻辑。
    2020-05-29

回答者

HenryCH
软件架构设计师大厂
擅长领域: 数据库服务器分布式系统

HenryCH 最近回答过的问题

回答状态

  • 发布时间:2020-05-28
  • 关注会员:6 人
  • 回答浏览:2929
  • X社区推广