SeaTunnel 同步 KingBase 数据到 Easysearch
在国产数据库高速发展的背景下,企业常面临一个两难选择:是为保障核心业务写入性能而牺牲查询效率,还是为满足报表系统的分析需求而承受写入延迟?
答案是利用专业的工具做专业的事。 引入国产分布式查询引擎 Easysearch,正是破解这一难题的关键。您无需让一个数据库同时承担高频交易和复杂分析的重任。只需将 Easysearch 作为专属的“查询加速器”,与主业务数据库对接。所有写入操作依然在原数据库高效完成,而各类查询,特别是来自报表系统的复杂分析请求,则全部导向 Easysearch 处理。
如此一来,效果立竿见影:
- 写入性能无损: 主数据库轻装上阵,专注处理事务,稳定可靠。
- 查询吞吐倍增: Easysearch 横向扩展能力强大,轻松应对高并发查询,报表生成速度显著提升。
今天我们来尝试用 SeaTunnel 同步 KingBase 数据到 Easysearch,让 KingBase 专注于事务处理,Easyearch 对外提供灵活、高效的查询。
KingBase 数据准备
安装过程请大家参考 KingBase 官方文档,本次测试使用 V9R1C10 版本,准备了张测试表 distributors。
SeaTunnel 安装
本篇采用 Docker 方式进行测试,需要先下载 KingBase 相关 jar 包。
SeaTunnel 同步
准备一个配置文件 kingbase_batch_easysearch.conf 如下。
# 定义运行时环境
env {parallelism = 1job.mode = "BATCH"
}
source{Jdbc {url = "jdbc:kingbase8://192.168.31.117:54321/kingbase"driver = "com.kingbase8.Driver"username = "system"password = "123456"query = "select * from distributors"}
}transform {# 此处可进行数据转换、加工
}sink {Easysearch {hosts = ["https://192.168.215.2:9200"]username = "admin"password = "INFINIeasysearch@2025"tls_verify_certificate = falsetls_verify_hostname = falseindex = "${table_name}"}
}
运行容器进行导数,注意把 jar 包映射到 lib 目录。
docker run --name seatunnel-test --rm -it -v /Users/mac/playground/seatunnel/kingbase_batch_easysearch.conf:/config/kingbase_batch_easysearch.conf -v /Users/mac/playground/seatunnel/kingbase8-8.6.0.jar:/opt/seatunnel/lib/kingbase8-8.6.0.jar apache/seatunnel:2.3.12 ./bin/seatunnel.sh -m local -c /config/kingbase_batch_easysearch.conf
待 SeaTunnel 运行完,我们通过 Easyearch 的 UI 可以看到数据已经同步过来了。