--- title: "删除数据流" date: 2026-01-09 lastmod: 2026-01-09 description: "介绍如何在 Easysearch 中删除数据流及其关联的后备索引。" tags: ["数据流", "索引管理", "删除"] summary: "此 API 用于删除 Easysearch 集群中的数据流(Data Stream)。删除数据流时,会同时删除该数据流关联的所有后备索引(backing indices)。 API # DELETE /_data_stream/{name} API 的作用 # 删除指定的数据流及其所有后备索引。这是一个不可逆的操作,执行后数据将被永久删除。 删除操作的影响: 删除数据流本身的定义 删除数据流的所有后备索引(.ds-{name}-* 格式的索引) 删除所有存储在这些索引中的数据 API 的参数 # 路由参数 # 参数 类型 是否必需 描述 name string 必需 要删除的数据流名称 支持: - 单个名称:logs-nginx - 通配符:logs-* 不支持逗号分隔的多个名称 查询字符串参数 # 参数 类型 是否必需 默认值 描述 master_node_timeout time 可选 30s 等待主节点响应的超时时间" --- 此 API 用于删除 Easysearch 集群中的数据流(Data Stream)。删除数据流时,会同时删除该数据流关联的所有后备索引(backing indices)。 ## API ``` DELETE /_data_stream/{name} ``` ## API 的作用 删除指定的数据流及其所有后备索引。这是一个**不可逆**的操作,执行后数据将被永久删除。 **删除操作的影响:** - 删除数据流本身的定义 - 删除数据流的所有后备索引(`.ds-{name}-*` 格式的索引) - 删除所有存储在这些索引中的数据 ## API 的参数 ### 路由参数 | 参数 | 类型 | 是否必需 | 描述 | |------|------|----------|------| | `name` | string | 必需 | 要删除的数据流名称
支持:
- 单个名称:`logs-nginx`
- 通配符:`logs-*`
不支持逗号分隔的多个名称 | ### 查询字符串参数 | 参数 | 类型 | 是否必需 | 默认值 | 描述 | |------|------|----------|--------|------| | `master_node_timeout` | time | 可选 | 30s | 等待主节点响应的超时时间
如果主节点未发现或已断开连接,这个值用于控制等待时间 | | `timeout` | time | 可选 | 30s | 等待操作完成确认的超时时间 | ## 请求示例 ```bash # 删除单个数据流 DELETE /_data_stream/logs-nginx # 使用通配符删除多个数据流 DELETE /_data_stream/logs-* # 删除指定前缀的所有数据流 DELETE /_data_stream/2023-* # 带超时参数的删除请求 DELETE /_data_stream/logs-nginx?master_node_timeout=60s&timeout=50s ``` ## 响应示例 ### 成功响应 ```json { "acknowledged": true } ``` ### 使用通配符删除多个数据流的响应 ```json { "acknowledged": true } ``` ### 错误响应 - 数据流不存在 ```json { "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 } ``` ### 错误响应 - 正在进行快照 ```json { "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` | 关闭索引(不删除数据) | ## 相关文档 - [创建数据流](./create-data-stream.md) - [查询所有数据流](./get-all-data-streams.md) - [查询指定数据流](./get-specific-data-stream.md) - [删除索引](./delete-index.md)