📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

此 API 用于删除 Easysearch 集群中的数据流(Data Stream)。删除数据流时,会同时删除该数据流关联的所有后备索引(backing indices)。

API #

DELETE /_data_stream/{name}

API 的作用 #

删除指定的数据流及其所有后备索引。这是一个不可逆的操作,执行后数据将被永久删除。

删除操作的影响:

  • 删除数据流本身的定义
  • 删除数据流的所有后备索引(.ds-{name}-* 格式的索引)
  • 删除所有存储在这些索引中的数据

API 的参数 #

路由参数 #

参数类型是否必需描述
namestring必需要删除的数据流名称
支持:
- 单个名称:logs-nginx
- 通配符:logs-*
不支持逗号分隔的多个名称

查询字符串参数 #

参数类型是否必需默认值描述
master_node_timeouttime可选30s等待主节点响应的超时时间
如果主节点未发现或已断开连接,这个值用于控制等待时间
timeouttime可选30s等待操作完成确认的超时时间

请求示例 #

# 删除单个数据流
DELETE /_data_stream/logs-nginx

# 使用通配符删除多个数据流
DELETE /_data_stream/logs-*

# 删除指定前缀的所有数据流
DELETE /_data_stream/2023-*

# 带超时参数的删除请求
DELETE /_data_stream/logs-nginx?master_node_timeout=60s&timeout=50s

响应示例 #

成功响应 #

{
  "acknowledged": true
}

使用通配符删除多个数据流的响应 #

{
  "acknowledged": true
}

错误响应 - 数据流不存在 #

{
  "error": {
    "root_cause": [
      {
        "type": "resource_not_found_exception",
        "reason": "data_stream [non-existent-stream] missing"
      }
    ],
    "type": "resource_not_found_exception",
    "reason": "data_stream [non-existent-stream] missing"
  },
  "status": 404
}

错误响应 - 正在进行快照 #

{
  "error": {
    "root_cause": [
      {
        "type": "snapshot_in_progress_exception",
        "reason": "Cannot delete data stream [logs-nginx] because a snapshot is in progress"
      }
    ],
    "type": "snapshot_in_progress_exception",
    "reason": "Cannot delete data stream [logs-nginx] because a snapshot is in progress"
  },
  "status": 400
}

删除验证机制 #

系统在执行删除前会进行以下检查:

  1. 数据流存在性检查:确认指定的数据流存在
  2. 快照检查:确保没有正在进行的快照操作
  3. 通配符匹配:使用正则表达式匹配支持通配符模式

使用场景 #

  1. 数据清理:删除不再需要的历史数据流
  2. 环境重置:在测试环境中清理所有测试数据流
  3. 容量管理:删除旧的数据流以释放存储空间
  4. 错误恢复:删除配置错误的数据流以重新创建

注意事项 #

  1. 不可逆操作:删除后数据无法恢复,请谨慎使用
  2. 后备索引同步删除:删除数据流会同时删除所有后备索引
  3. 快照冲突:如果有正在进行的快照操作,删除会失败
  4. 通配符使用:支持通配符批量删除,请务必确认匹配范围
  5. 权限要求:执行此操作需要相应的集群管理权限

安全建议 #

  1. 删除前确认:在删除前先用 GET /_data_stream/{name} 确认数据流信息
  2. 备份数据:删除前确保重要数据已备份或归档
  3. 使用精确名称:尽量避免在生产环境使用通配符删除
  4. 测试环境验证:先在测试环境验证删除操作

与相关 API 的区别 #

API功能
DELETE /_data_stream/{name}删除数据流及其后备索引
DELETE /{index}删除索引(需手动删除 .ds-* 格式的后备索引)
POST /_close关闭索引(不删除数据)

相关文档 #