背景

chain-tran-all数据量超过4亿,影响查询效率
从产品角度出发应该只支持3个月左右的查询
从系统角度出发有些数据已经迁移出入了,比如eth.bnb.okt已经不走这个链了

方案

数据删除,先删除6月份之前的数据
数据冷热备份,需要代码测改动,后续根据数据的日增和
es的删除是标记删除,会生成task,通过task来管理删除任务,可以查询删除的进展和取消删除
ES 删除历史数据执行步骤 - 图1

删除命令

  1. POST chain-tran-all/blockchain/_delete_by_query?wait_for_completion=false&slices=5&&scroll_size=10000
  2. GET _tasks/vBNkNJCQRxujtFD_IM2wVg:16951571160
  3. POST _tasks/task_id:1/_cancel

步骤

删除时间选在了上午10点左右
ES 删除历史数据执行步骤 - 图2

步骤一,删除2022年1月1日之前的数据,大约1951W,观察删除速度和现实效果

  1. {
  2. "query": {
  3. "bool": {
  4. "must": [
  5. {
  6. "range": {
  7. "createTime": {
  8. "lte": 1640966400000
  9. }
  10. }
  11. }
  12. ]
  13. }
  14. }
  15. }

开始时间 2022-10-09 09:46:54 大约30分钟
步骤二,删除2022年1月的数据,大约2291W条数据
5nWkTN55SyKQD45L3qws-w:16955170362 大约30分钟

  1. {
  2. "query": {
  3. "bool": {
  4. "must": [
  5. {
  6. "range": {
  7. "createTime": {
  8. "lte": 1643644800000
  9. }
  10. }
  11. }
  12. ]
  13. }
  14. }
  15. }

步骤三,删除2022年2月的数据,大约140分钟 数据量107950078
_tasks/vBNkNJCQRxujtFD_IM2wVg:16951571160
步骤四,删除2022年3月的数据,数据量99541003 时间106分钟
5nWkTN55SyKQD45L3qws-w:17071453192