---
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)