StarRocks 源端全量迁移并行读取数据
· 阅读需 3 分钟
简述
CloudCanal 近期支持了 StarRocks 源端全量迁移时从各 BE 节点并行读取数据的能力,相较于常规的单点数据串行读取,大大提高了数据读取效率及稳定性。
技术点
并行读取 BE 节点数据
CloudCanal 先从 FE 节点获取查询计划 (Query Plan),得到分片元数据信息,然后将获取到的分片元数据信息作为参数,下发至 BE 节点,最后获取 BE 节点返回的数据。
相较于常规的 FE 单点数据串行读取,并行读取有两点比较明显的优势,一是大幅提高效率,二是单次查询可控,避免单次查询数据量过大,导致 BE 节点内存溢出。

BE 节点级别的断点续传
CloudCanal 会记录每个 BE 节点是否已读取完成。当任务失败或者中断后重启时,CloudCanal 可以过滤已经读取完成的 BE 节点,继续读取数据。
操作示例
步骤 1: 安装 CloudCanal
请参考 全新安装(Docker Linux/MacOS),下载安装 CloudCanal 私有部署版本。
步骤 2: 添加数据源
-
登录 CloudCanal 控制台,点击 数据源管理 > 新增数据源。
-
数据库类型选择 StarRocks,并填写 Client 地址和认证信息。
-
配置 额外参数:
参数 描述 feHttpAddr StarRocks FE 节点的 HTTP 地址,用于 CloudCanal 获取查询计划。例如,feNode:8030。 beThriftAddr StarRocks BE 节点的 Thrift Server 端口。因为查询计划中得到的节点信息是 Thrift Server 的内网端口,当 CloudCanal 无法直接访问时,需要提供可访问的所有 BE 节点 Thrift Server 端口。例如,beNode1:9060,beNode2:9060... -
按照上述步骤,添加目标端数据源。
