Link Search Menu Expand Document

删除

目录

  1. 删除
    1. 删除桶

删除

作为一个时间序列数据库,InfluxDB 并未针对交互式删除进行优化。通常,数据会根据桶的保留策略过期而被删除。因此,与写入和查询相比,InfluxDB 中的删除操作计算成本高且速度慢。可以删除未因保留策略而过期的数据,但必须注意性能影响。

您可以使用以下任一方法删除时间序列数据:

  1. InfluxDB CLI 命令 influx delete
  2. InfluxDB v2 API delete 端点

使用 InfluxDB CLI 从特定时间范围、测量值和标签内的桶中删除数据。例如,如果我们想从 Air Sensor 示例数据集中删除一些传感器数据,我们可以使用以下命令:

influx delete --bucket 'Air sensor sample dataset' \
  --start 'rfc3339time1' \
  --stop 'rfc3339time2' \
  --predicate '_measurement="airSensors" AND sensor_id="TM0100"'

请记住,rfc3339time 时间戳的格式为 %Y-%m-%dT%H:%M:%SZ,例如:2020-03-01T00:00:00Z。执行删除操作后,以下查询将不返回任何结果:

from(bucket: "Air sensor sample dataset")
  |> range(start: rfc33391, stop: rfc33392)
  |> filter(fn: (r) => r._measurement == "airSensors")
  |> filter(fn: (r) => r.sensor_id == "TM0100")

同样,您可以使用 InfluxDB v2 API 删除相同的数据:

curl -i -XPOST '<yourInflxDBURL>api/v2/delete?orgID=<yourOrgID>bucket=<yourBucketID>\
  --header 'Authorization: Token <yourToken>' \
  --data-raw  '{
"start": "rfc3339time1",
"stop": "rfc3339time2",
"predicate": '_measurement=\"airSensors\" and sensor_id=\"TM0100\"'
}'

请记住,您需要将 <yourInflxDBURL> 替换为:

  • InfluxDB OSS URL
    • 默认情况下为 [https://127.0.0.1:8086/](https://127.0.0.1:8086/)
  • 来自您所在区域和提供商的 InfluxDB Cloud URL
    • 例如 https://us-west-2-1.aws.cloud2.influxdata.com/

请回顾第一部分,了解如何获取您的 <yourbucketid><yourorgid>

删除桶

如上所述,最常见的删除数据方法是简单地让数据根据保留策略过期。但是,有时您可能希望删除大量数据。这可以通过删除整个桶来实现。如果您需要保留桶中的某些数据,可以使用以下步骤:

  1. 创建一个新桶,使用任意名称。
  2. 创建一个查询以检索您想要保留的数据,并将其复制到新桶中。
  3. 删除原始桶。
  4. 将新桶重命名为原始桶名称,以便现有查询继续工作(假设查询使用桶名称而不是桶 ID)。

下一节