admin管理员组文章数量:1487745
「Bi Fang」Solr to ES 迁移工具使用指导
说明
Bi Fang(毕方) 是为 Linux 开发的 Solr to ES 数据同步工具,并在 Centos 和 Ubuntu 上进行了积极测试。
✧ 本工具当前版本有以下限制:
- solr collections 务必有主键;
- solr collections 务必有时间增量字段;
- 时间自增字段需为标准 ISO 8601 格式,样式为 "2024-05-20T22:37:41.474Z";
- 由于本工具 checkpoint 是基于时间戳最小粒度进行滚动而实现的时序翻页,所以时间自增字段需精确到毫秒,否则可能会有性能问题;
- 为避免遗漏增量数据,采用闭区间滚动,每次滚动包含边界;
- 同步速率理论值为2000~12000/s;
- 为保证集群稳定性,默认限制了生产队列上限为2,每个队列最多存储10000条;
- 如 solr 端历史数据发生改变,则无法增量同步至ES;
✧ 本工具有以下特点:
- 以 Service 风格启停;
- 高效时序翻页;
- 支持断点续传;
- 支持预估迁移耗时;
- 支持观测迁移速率、趋势、进度;
- 引入生产者-消费者独立线程模式,在密集时序场景下可以提升同步效率;
- 支持观测每个 batch 的同步耗时(需开启 debug);
- 支持修改 checkpoint 位点进行补数,适用于因为网络抖动等原因导致丢数的问题;
- 支持高效 checksum,精准定位数据条数不一致的最小时间区间。配合修改 checkpoint 能力,可实现精准补数;
- 由于 solr 的排序以及游标能力在大数据规模下可以轻易使 solr 集群瞬间崩溃,所以本工具未引入 solr 这两个能力,从而保障集群稳定性;
工具适用场景
● Solr 时序数据,需要同步至 ES 集群,并且有增量同步 & 断点续传的需求;
1. 准备工作
● 服务器准备
准备一台可以访问 Solr 及 ES 实例的服务器,其网络环境应该是互通的;
2. 执行方式
2.1. 一键安装
Centos
代码语言:javascript代码运行次数:0运行复制rpm -vih .x86_64.rpm
Ubuntu
代码语言:javascript代码运行次数:0运行复制wget .amd64.deb -O /tmp/ems.deb && sudo dpkg -i /tmp/ems.deb
安装完成后会生成 bifang 命令:
代码语言:javascript代码运行次数:0运行复制bifang -v
bifang -h
2.2. 参数说明
代码语言:javascript代码运行次数:0运行复制 -h, --help 查看帮助
-f/--config_file xx.ini 指定 ini 配置文件
-s/--service {start,stop,restart,status} 服务控制命令
-i INDEX, --index INDEX 查看指定索引同步状态
--checksum 校验不一致的时序数据
-v/--version 查看版本
2.3. 配置文件示例
服务安装成功之后,需要准备一个 ini 配置文件。
注意:configs 文本头不可删除,ini 文件的格式需符合 ini 配置文件标准
代码语言:javascript代码运行次数:0运行复制[configs]
solr_url = http://10.10.10.x:8981/solr
es_url = http://10.10.10.x:9200
es_user = elastic
es_password = ******
collections = collection_1,collection_2,collection_3
primary_key = id
delta_field = update_time
bulk_size = 10000
delta_interval = 1m
log_level = DEBUG
配置解释:
代码语言:javascript代码运行次数:0运行复制solr_url solr url,形式需为 http://10.10.10.x:8981/solr
es_url es url,形式需为 http://10.10.10.x:9200
es_user es 用户名
es_password es 密码
collections solr collections,以英文逗号间隔,逗号间不可有空格
primary_key solr collection 主键
delta_field 自增时间字段,需为 date、tdate、pdate 类型之一
bulk_size 批次大小
delta_interval 增量检测间隔
log_level 日志级别
2.4. 执行示例
➢ 启动服务
代码语言:javascript代码运行次数:0运行复制bifang -f bifang.ini -s start
返回样式如下:
➢ 停止服务
代码语言:javascript代码运行次数:0运行复制bifang -s stop
返回样式如下:
➢ 重启服务
代码语言:javascript代码运行次数:0运行复制bifang -f bifang.ini -s restart
返回样式如下:
➢ 查看所有 index 同步状态
代码语言:javascript代码运行次数:0运行复制bifang -f bifang.ini -s status
返回样式如下:
➢ 查看指定 index 同步状态
代码语言:javascript代码运行次数:0运行复制bifang -f bifang.ini -s status -i collection_1
返回样式如下:
➢ 校验数据
代码语言:javascript代码运行次数:0运行复制bifang -f bifang.ini --checksum
返回样式如下:
● 如发现数据不一致的时间区间,则会打印出相应区间并标识该区间两端的数据条数。
● 如发现 ES 数据条数超过了 Solr,则以 Solr 端的时间区间为准进行 checksum,如 Solr 端的时间区间内两端的数据一致,则认为数据一致。
本文标签: 「Bi Fang」Solr to ES 迁移工具使用指导
版权声明:本文标题:「Bi Fang」Solr to ES 迁移工具使用指导 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/shuma/1755046706a3182895.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论