前面几篇文章我们介绍了关于Elasticsearch-dump工具的使用。在本文的话,我们来介绍下增量备份。
其实使用Elasticsearch-dump工具没有增量备份这个说法。但是我们可以通过一些策略的形式来进行备份。下面我们来介绍下。
在使用Elasticsearch-dump工具的时候有两个特别的参数我们需要注意下:
--skip-existing
这个参数的含义是当目标elasticsearch集群里面存在这条数据的时候,他就不会再重复同步这条数据了。
--esCompress
这个参数的含义是在http头里面添加上压缩。
关于这两个参数我们就可以来一个策略性的数据增量备份,也就是我们把elasticsearch-a集群的数据备份到elasticsearch-b集群的时候我们添加上这两个参数即可,可以达到的效果是:
1、如果elasticsearch-b集群里面存在这个数据的话,他就会直接跳过继续扫描其他数据。可以加快备份的速度。最后进入到elasticsearch-b集群的数据就是增量的。
2、添加上esCompress=true后可以增大elasticsearch-b集群的吞吐量。
以上我们是通过这种策略的方式来完整elasticsearch集群的增量备份的。但是其实他还是会扫描全表的数据。只是中间减少了很多环节而已,执行时间还是会比较长。
另外一种增量备份的方式是使用scrollid,也就是在备份的时候获取上一次的scrollid来进行挨个查询备份,这虽然也可以达到增量备份的目的,但是个人考虑两个方面而没有使用:
1、每一个scrollid会有一个过期时间,到了过期时间之后就会丢掉,如果同步任务发生意外的话,会导致丢掉数据,那么只能重新全量备份,整个过程非常漫长。 2、scrollid查询的时候,我发现有时候会同步完数据后,目的es集群的数据量和源es集群数据量有差别。
还没有评论,来说两句吧...