InfoQ去Oracle实录:如何在线更换金融核心场景中的数据库?( 六 )


Oracle 在 oltp 场景当中少量 hash join 查询场景 。
Oracle 中多表关联和多层复杂嵌套查询场景 。
MySQL 细粒度拆分后 , 跨库、跨分片的查询场景 。
在 MySQL 集群和 Hadoop 集群之间构建一个秒级数据同步的 ODS 层 。
在这些场景中 , 可以引入 TiDB、Elasticsearch、Impala+kudu、Redis 等多种存储引擎 。 这些存储引擎在合适的场景下替换 Oracle , 产生的效果是不但比 IOE 架构成本低得多 , 性能也会比 Oracle 快得多 。
我们以 TiDB 为例来讲讲使用 MySQL 之外的存储引擎是如何支撑 Oracle 流量的 。
陆金所有个实时对账的场景 , 需要跨用户库、交易库、资金库和资产库进行复杂的关联查询 。 在完成去 O 后 , 数据库在 MySQL 上做了细粒度拆分 , 无法跨多个独立的服务库进行复杂且高频的跨库查询 。
为了支持这个场景 , 我们研发了数据总线来实施解析 MySQL binlog 并生成消息同步至 TiDB , 事务在 MySQL 提交后实现秒级同步至 TiDB 。 之后通过 TiDB4.0 的 TiFlash 功能(类似 clickhouse 的列式存储) , 在 MySQL 和 Hadoop 之间搭建一个实时 ODS , 实现了秒级处理跨库、多表、复杂关联的查询场景 。 性能远超去 O 之前在 IOE 架构下的处理结果 。
更多实践细节 , 可以参考 InfoQ 公开课的视频回放
https://www.infoq.cn/video/NAje834UlKY75bXVjMCN
点个在看少个 bug