更新时间:2024-06-07 GMT+08:00

基于GDS的集群互联互通

技术背景

在大中型企业中,因数仓分层、业务规划等原因,通常会部署多个GaussDB(DWS)集群,并进行跨集群的数据同步。面向集群间的数据同步,通常需满足大数据量、并行执行等要求,如何提供高效的跨集群数据同步能力成为当下数据领域热点之一。

功能描述

GaussDB(DWS)集群间全量数据迁移同步。

GaussDB(DWS)集群间过滤条件数据迁移同步。

技术原理

将触发同步的“一条SQL”,通过查询重写转化为一对GDS不落地导入导出作业,分别在目标集群、源集群上执行,形成高效实时的数据中转通路,实现数据迁移同步。执行时,可以选择在目标集群或源集群上发起,分别对应“拉”、“推”两种方式。

图1 拉取方式

① 远程连接源集群,创建GDS只写外表,发起导出作业。

② 创建GDS只读外表,发起导入作业。

③ 工作线程A接收源集群数据,并写入本地文件。

④ 工作线程B读取本地文件数据,发送给目标集群。

⑤ 目标集群综合两端作业结果,得出最终结果返回给用户。

图2 推送方式

① 远程连接目标集群,创建GDS只读外表,发起导入作业。

② 创建GDS只写外表,发起导出作业。

③ 工作线程A接收源集群数据,并写入命名管道。

④ 工作线程B读取命名管道数据,发送给目标集群。

⑤ 源集群综合目标集群导入作业结果、本集群导出作业结果,返回最终结果给用户。

效果收益

通过一条SQL启动迁移业务,借助GDS不落地,充分利用两端集群的节点算力,提供便捷、高效的GaussDB(DWS)集群间数据逻辑同步/搬迁能力,不占用磁盘空间,提高系统资源利用率。

了解更多请参见基于GDS的跨集群互联互通