电信运营商数据库国产化

由Oracle数据库迁移到分布式数据库之后,关联查询的语句怎么解决?

由Oracle数据库迁移到分布式数据库之后,除了让尽量把需要关联的表按照相同的规则分布在一个节点外,现在系统的数据量都是5T以上的,不同的表已经按照不同的规则进行了分区,这些表之间的关联查询是应用必须要的而且频率很高,如果需要把所有的表按照统一规则去设置分布字段让同一...显示全部

由Oracle数据库迁移到分布式数据库之后,除了让尽量把需要关联的表按照相同的规则分布在一个节点外,现在系统的数据量都是5T以上的,不同的表已经按照不同的规则进行了分区,这些表之间的关联查询是应用必须要的而且频率很高,如果需要把所有的表按照统一规则去设置分布字段让同一用户下的资料都相同的节点上,这样的话改造就非常大,万一要回退也会非常麻烦,请问一下专家,这个问题还有没有其他好办法来解决复杂的关联查询的问题,又不会导致应用改造过大

收起
参与8

查看其它 1 个回答hanfeng_twt的回答

hanfeng_twthanfeng_twt数据库架构师SphereEx

解决上述问题有几个思路:
1.产品层面
有些分布式数据库产品,提供“自动分布式”能力,即可以实现数据自主分片,不再需要人为干预。这样在结构设计无需做太多修改。针对语句方面,也可以免改造或低改造完成迁移。当然这种方式还是要看业务复杂度,很难做到完全规避因引入分布式带来的改造成本。且针对复杂查询情况下,目标数据库是否能很好处理且保证性能也是需关注的。
2.设计层面
在设计方面,提前做好响应的改造评估工作。如对现有结构、语句通过工具扫描方式,获得当前的工作负载,针对分布式情况下做改造评估等。这种方式不会减少改造工作量,但会提前规划避免被动。这种也是我比较推荐的方式。
3.架构层面
针对复杂的Oracle查询,有些场景可考虑下移到大数据技术栈解决。后者针对复杂关联查询,会更为适合。但两者需解决数据同步问题且业务是否接受一定延迟,也需关注。

金融其它 · 2022-12-15
浏览877

回答者

hanfeng_twt
数据库架构师SphereEx
擅长领域: 数据库服务器分布式系统

hanfeng_twt 最近回答过的问题

回答状态

  • 发布时间:2022-12-15
  • 关注会员:4 人
  • 回答浏览:877
  • X社区推广