和架构师沟通那种“一坨”的系统,推荐只能是OceanBase,Why ?

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2800人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 +9)(1 2 3 4 5 6 7群均已爆满,开8群约320+ 9群 100+)

有的时候你在专注一件事的时候,命运会给你一些相关的事情帮助你成长,最近在看架构方面的知识,提高自己的水平,从架构师的角度来审视数据库的选择和使用,站的更高看的更远。这不就来活了,一个架构师私信我,他们要数据库选型问,选那个数据库更好,我把这段内容进行了记录。

正文


架构师:您好,我看了您不少文章,我有一个问题我们单位要更换数据库,我们现在遇到一个瓶颈的问题,我想收集更多的信息,您看您方便吗?

我:OK

架构师:是这样的,我们单位之前开发了一套系统,使用的是ORACLE,开发的时间比较久了,在我来之前就运行了很多年了。现在要国产化,我想了解一下从数据库的视角您觉得哪个国产数据库更好替换ORACLE。

我:我是这样看的,替换ORACLE的方案很多,国产数据库也很多,替换的方案也很多,但是我们是否应该先把您的业务弄清楚,以及您更换的痛点找到,如果能通过更换数据库解决您的痛点是不是需要考虑的。

1 业务属性 

2 业务特点 

3 架构迭代与递进(如果知道的话)

 4 代码是否可以进行修改 (确认与原有数据库的兼容性) 

5 当前的系统运行的痛点 

6 其他非业务,非架构附属但重要的限制问题。

架构师:这么麻烦,其实就是选一个数据库而已,不过当前系统的痛点是,数据库不能扩容了,这个一直是我们的心病,我们现在的ORACLE的内存已经1T了,硬件上内存已经不能再扩容了,后面如果还继续用ORACLE,我们可能的重新购买机器,至少内存2T的,把库迁移到新的硬件上。

我:为什么,业务不能拆分吗?这么大的库,为什么不用拆分法,如果您的库能拆分,那么可以更换的数据库种类会比较多。

架构师:这个不是我们不拆分,是历史的原因没有办法拆分,我们也想使用微服务,但各种原因不行。

我:为什么不行?

架构师:其实是这样的,在我来之前,这个业务在搭建的时候并不是单位的重点,所以当时把通用数据和业务中的个性化数据写到一个库里面了,后面当我接手的时候,发现虽然前面的架构师已经努力把业务的数据进行独立了,可历史的原因一些“公共”库里面的数据里面已经有业务的数据,同时还有一个问题,早期开发将一些展现给客户的业务特性化的数据也写到了公共库。

导致我们现在一些业务中,的语句必须写成

select xxxx from 业务库的表 left join 公共库的表

这样才能完成业务的数据查询,还有一个问题,早先得的一些事务将写入信息也将一些业务库的数据和公共库的数据搞到了一个事务里面,年代太久了没法拆分。

我:我多说两句,我有几个问题想问一下

1  为什么咱们不能进行公共数据访问服务化下沉呢?您作为架构师应该明白,将通用的数据抽象为一个用户服务,业务层只能通过服务的RPC接口来访问公用数据,上游的业务不能直接通过SQL 来访问公用数据,这个数据库瓶颈的问题不就解决了?

2  一些个性化的数据的提取通过微服务变成两次访问,拆解SQL,由JAVA程序来进行公用数据和用户数据的合并工作,这不就可以了吗?

架构师:不行,这里面有很多事情,比如一些数据的实时性有要求,如果我通过两次获取业务和公共的数据,有可能因为公共的数据的变动导致我的此次查询是错误的。另外我也刚来不久,很多东西我也没有太清楚,如果我用上面的方案出现架构改造的后导致业务失败,这个责任我付不起。

我:其实我觉得您现在的问题,不是数据库可以解决的,您应该重构您的顶层设计了,主要你的问题在与你的系统的交互方式出现了严重的问题,这也是作为ORACLE为基础的数据库系统,经常出现的问题,我们俗称“一坨”shit.

你看互联网的应用系统没有这个问题,为什么因为他们的架构经历了,四个步骤,其中第四点解决主要矛盾迭代设计这个部分,他们使用的都是MYSQL,所以在设计之初就考虑到这方面的问题,所以架构和业务分的很开,加上微服务的使用让数据库不耦合,也不会产生您这样的问题,您说对吗?

架构师:嗯,对因为我们是一个国有企业,一些系统的乙方已经找不到了,或者换了乙方,所以我的难题是一些系统我想改也改不了。所以我想看看能不能从数据库的角度去解决问题。

我:其实我的方案还挺多,至少我有两个方案

1.1 代码拷贝,也就是你在拆分的时候,将公共库的代码和公共库的数据一起拆分,到每个业务模块里面。 

1.2 更换分布式数据库产品

1.1
我先说第一个,您在拷贝公共代码到各个业务库后,最大的难题是公共数据的在业务库的同步的问题,那么我们可以采用CDC数据同步工具,据我了解目前TapData的数据同步是即时的,他们有实时数仓的案例,那么也就可以满足您数据实时的要求,将您的公共库的数据同步到业务库中,并进行查询时的使用。

但这里面的关键在CDC数据同步的软件,这是您业务是否能正常的核心点。

剥离公共库方案
剥离公共库方案

1.2 更换分布式数据库,我建议您使用OceanBase来解决您现在的数据库瓶颈。

1 OB 兼容ORACLE数据库产品的SQL语法

2 OB 兼容ORACLE的存储过程

3 OB 可以在您切换的时候不用动大部分的业务代码。

主要还是因为您的系统现在是“一坨”的状态,所以您现在短时间从业务的角度去微服务,剥离业务和公共数据之间的关系,以及剥离公共数据是有困难的,所以采用OceanBase也是目前您解决问题成本最小的方案,毕竟我看出来您的业务代码“乙方”应该没有能力进行修改。

不过我还是建议您,后期可以拆分了,可以把公共数据通过OceanBase的租户方式进行拆分,进行强拆满足您后期的架构重构中,阻止一个SQL在业务库和公共库写成一个SQL进行公共调用的问题。

且这个方案后期数据库将不是瓶颈,如果您不进行架构的重构也可以持续运营下去。同时从非技术因素上这里也考虑了您单位的属性,您单位是不是有一个可以选择的国产数据库的名单,这些名单都有OB。


总结:一个数据库的选择不是上来就比对数据库的差异,而是要先把业务,他系统的架构的根本痛点找到,在比对合适的数据库进行选型,上来就推荐数据库的我只能给他俩字“瞎鬼”。

                             追逐太阳的男人--林春 《金融数据库转型实战》                           

竹板这么一打,架构很复杂,选型看病要治本,头疼钻头脚痛切脚,那是西医的干活,中医望闻问切找病根,层层拆解寻妙法。

置顶

DBA 怎么变得更强-应对架构师提出高并发问题?

鸿门宴讲PostgreSQL --  被拉去央企救场一天

       美国知名大学开授China数据库理论,你没看错!

       DBA 会架构,实际案例分析--“IT流氓”得下跪

搞 PostgreSQL多才多艺的人--赵渝强 《PG数据库实战派》

追逐太阳的男人--林春 《金融数据库转型实战》

打破DBA局限:像架构师一样思考,提升你的技术价值-- 访蚂蚁金服P9 朱春茂

OceanBase 相关文章

OceanBase 单机版可以大批量快速部署吗? YES

OceanBase 6大学习法--OBCA视频学习总结第六章

OceanBase 6大学习法--OBCA视频学习总结第五章--索引与表设计

OceanBase 6大学习法--OBCA视频学习总结第五章--开发与库表设计

OceanBase 6大学习法--OBCA视频学习总结第四章 --数据库安装

OceanBase 6大学习法--OBCA视频学习总结第三章--数据库引擎

OceanBase 架构学习--OB上手视频学习总结第二章 (OBCA)

OceanBase 6大学习法--OB上手视频学习总结第一章

没有谁是垮掉的一代--记 第四届 OceanBase 数据库大赛

OceanBase  送祝福活动,礼物和幸运带给您

跟我学OceanBase4.0 --阅读白皮书 (OB分布式优化哪里了提高了速度)

跟我学OceanBase4.0 --阅读白皮书 (4.0优化的核心点是什么)

跟我学OceanBase4.0 --阅读白皮书 (0.5-4.0的架构与之前架构特点)

跟我学OceanBase4.0 --阅读白皮书 (旧的概念害死人呀,更新知识和理念)

聚焦SaaS类企业数据库选型(技术、成本、合规、地缘政治)

OceanBase 学习记录-- 建立MySQL租户,像用MySQL一样使用OB

PolarDB 相关文章

MySQL 和 PostgreSQL 可以一起快速发展,提供更多的功能?

这个MySQL说“云上自建的MySQL”都是”小垃圾“

        PolarDB MySQL 加索引卡主的整体解决方案

“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!

PostgreSQL 的搅局者问世了,杀过来了!

在被厂商围剿的DBA 求生之路 --我是老油条

POLARDB  添加字段 “卡” 住---这锅Polar不背

PolarDB 版本差异分析--外人不知道的秘密(谁是绵羊,谁是怪兽)

在被厂商围剿的DBA 求生之路 --我是老油条

PolarDB 答题拿-- 飞刀总的书、同款卫衣、T恤,来自杭州的Package(活动结束了)

PolarDB for MySQL 三大核心之一POLARFS 今天扒开它--- 嘛是火

PostgreSQL 相关文章

PostgreSQL  无服务 Neon and Aurora 新技术下的新经济模式 (翻译)

PostgreSQL的"犄角旮旯"的参数捋一捋

PostgreSQL逻辑复制槽功能

PostgreSQL 扫盲贴 常用的监控分析脚本

“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!

PostgreSQL  添加索引导致崩溃,参数调整需谨慎--文档未必完全覆盖场景

PostgreSQL 的搅局者问世了,杀过来了!

PostgreSQL SQL优化用兵法,优化后提高 140倍速度

PostgreSQL 运维的难与“难”  --上海PG大会主题记录

PostgreSQL 什么都能存,什么都能塞 --- 你能成熟一点吗?

PostgreSQL 迁移用户很简单 ---  我看你的好戏

PostgreSQL 用户胡作非为只能受着 --- 警告他

全世界都在“搞” PostgreSQL ,从Oracle 得到一个“馊主意”开始
PostgreSQL 加索引系统OOM 怨我了--- 不怨你怨谁

PostgreSQL “我怎么就连个数据库都不会建?” --- 你还真不会!

病毒攻击PostgreSQL暴力破解系统,防范加固系统方案(内附分析日志脚本)

PostgreSQL 远程管理越来越简单,6个自动化脚本开胃菜

PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆

PostgreSQL 如何通过工具来分析PG 内存泄露

PostgreSQL  分组查询可以不进行全表扫描吗?速度提高上千倍?

POSTGRESQL --Austindatabaes 历年文章整理

PostgreSQL  查询语句开发写不好是必然,不是PG的锅

PostgreSQL  字符集乌龙导致数据查询排序的问题,与 MySQL 稳定 "PG不稳定"

PostgreSQL  Patroni 3.0 新功能规划 2023年 纽约PG 大会 (音译)

PostgreSQL   玩PG我们是认真的,vacuum 稳定性平台我们有了

PostgreSQL DBA硬扛 垃圾 “开发”,“架构师”,滥用PG 你们滚出 !(附送定期清理连接脚本)

DBA 失职导致 PostgreSQL 日志疯涨

MySQL相关文章

MySQL SQL优化快速定位案例 与 优化思维导图

"DBA 是个der" 吵出MySQL主键问题多种解决方案

MySQL 怎么让自己更高级---从内存表说到了开发方式

MySQL timeout 参数可以让事务不完全回滚

MySQL 让你还用5.7 出事了吧,用着用着5.7崩了

MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验

用MySql不是MySQL, 不用MySQL都是MySQL 横批 哼哼哈哈啊啊

MYSQL  --Austindatabases 历年文章合集

MongoDB 相关文章

MongoDB  大俗大雅,上来问分片真三俗 -- 4 分什么分

MongoDB 大俗大雅,高端知识讲“庸俗” --3 奇葩数据更新方法

MongoDB 学习建模与设计思路--统计数据更新案例

MongoDB  大俗大雅,高端的知识讲“通俗” -- 2 嵌套和引用

MongoDB  大俗大雅,高端的知识讲“低俗” -- 1 什么叫多模

MongoDB 合作考试报销活动 贴附属,MongoDB基础知识速通

MongoDB 年底活动,免费考试名额 7个公众号获得

MongoDB 使用网上妙招,直接DOWN机---清理表碎片导致的灾祸 (送书活动结束)

MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模

MongoDB  双机热备那篇文章是  “毒”

MongoDB   会丢数据吗?在次补刀MongoDB  双机热备

MONGODB  ---- Austindatabases  历年文章合集

临时工访谈系列

没有谁是垮掉的一代--记 第四届 OceanBase 数据库大赛

ETL 行业也够卷,云化ETL,ETL 软件不过了

SQL SERVER 系列

SQL SERVER维保AI化,从一段小故事开始

SQL SERVER 如何实现UNDO REDO 和PostgreSQL 有近亲关系吗

SQL SERVER 危险中,标题不让发,进入看详情(译)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值