文档文档

使用 InfluxQL 管理您的数据库

此页面记录了早期版本的 InfluxDB OSS。 InfluxDB OSS v2 是最新的稳定版本。请参阅 InfluxDB v2 文档

InfluxQL 提供了一整套管理命令。

数据管理保留策略管理
CREATE DATABASECREATE RETENTION POLICY
DROP DATABASEALTER RETENTION POLICY
DROP SERIESDROP RETENTION POLICY
DELETE
DROP MEASUREMENT
DROP SHARD

如果您正在查找 SHOW 查询(例如,SHOW DATABASESSHOW RETENTION POLICIES),请参阅 模式浏览

以下部分中的示例使用 InfluxDB 命令行界面 (CLI)。您也可以使用 InfluxDB API 执行命令;只需向 /query 端点发送 GET 请求,并将命令包含在 URL 参数 q 中。有关使用 InfluxDB API 的更多信息,请参阅 查询数据

注意: 启用身份验证后,只有管理员用户才能执行此页面上列出的大多数命令。有关更多信息,请参阅关于 身份验证和授权 的文档。

数据管理

CREATE DATABASE

创建一个新的数据库。

语法

CREATE DATABASE <database_name> [WITH [DURATION <duration>] [REPLICATION <n>] [SHARD DURATION <duration>] [NAME <retention-policy-name>]]

语法描述

CREATE DATABASE 需要数据库名称

WITHDURATIONREPLICATIONSHARD DURATIONNAME 子句是可选的,并创建一个与创建的数据库关联的单个保留策略。如果您在 WITH 之后未指定其中一个子句,则相关行为将默认为 autogen 保留策略设置。创建的保留策略将自动用作数据库的默认保留策略。有关这些子句的更多信息,请参阅 保留策略管理

成功的 CREATE DATABASE 查询返回一个空结果。如果您尝试创建一个已存在的数据库,InfluxDB 不会执行任何操作,也不会返回错误。

示例

创建一个数据库
> CREATE DATABASE "NOAA_water_database"
>

该查询创建一个名为 NOAA_water_database 的数据库。 默认情况下,InfluxDB 还会创建 autogen 保留策略,并将其与 NOAA_water_database 关联。

使用特定的保留策略创建数据库
> CREATE DATABASE "NOAA_water_database" WITH DURATION 3d REPLICATION 1 SHARD DURATION 1h NAME "liquid"
>

该查询创建一个名为 NOAA_water_database 的数据库。它还为 NOAA_water_database 创建了一个默认保留策略,DURATION 为三天,复制因子为一,分片组持续时间为一小时,名称为 liquid

使用 DROP DATABASE 删除数据库

DROP DATABASE 查询删除指定数据库中的所有数据、测量值、序列、连续查询和保留策略。该查询采用以下形式

DROP DATABASE <database_name>

删除数据库 NOAA_water_database

> DROP DATABASE "NOAA_water_database"
>

成功的 DROP DATABASE 查询返回一个空结果。如果您尝试删除一个不存在的数据库,InfluxDB 不会返回错误。

使用 DROP SERIES 从索引中删除序列

DROP SERIES 查询从数据库中的序列中删除所有点,并从索引中删除该序列。

该查询采用以下形式,您必须指定 FROM 子句或 WHERE 子句

DROP SERIES FROM <measurement_name[,measurement_name]> WHERE <tag_key>='<tag_value>'

从单个测量值中删除所有序列

> DROP SERIES FROM "h2o_feet"

从单个测量值中删除具有特定标签对的序列

> DROP SERIES FROM "h2o_feet" WHERE "location" = 'santa_monica'

从数据库中所有测量值中删除具有特定标签对的序列中的所有点

> DROP SERIES WHERE "location" = 'santa_monica'

成功的 DROP SERIES 查询返回一个空结果。

使用 DELETE 删除序列

DELETE 查询从数据库中的序列中删除所有点。与 DROP SERIES 不同,DELETE 不会从索引中删除该序列。

您必须包含 FROM 子句、WHERE 子句或两者都包含

DELETE FROM <measurement_name> WHERE [<tag_key>='<tag_value>'] | [<time interval>]

删除与测量值 h2o_feet 关联的所有数据

> DELETE FROM "h2o_feet"

删除与测量值 h2o_quality 关联的所有数据,以及标签 randtag 等于 3 的数据

> DELETE FROM "h2o_quality" WHERE "randtag" = '3'

删除数据库中 2020 年 1 月 1 日之前发生的所有数据

> DELETE WHERE time < '2020-01-01'

删除与保留策略 one_day 中的测量值 h2o_feet 关联的所有数据

> DELETE FROM "one_day"."h2o_feet"

成功的 DELETE 查询返回一个空结果。

关于 DELETE 的注意事项

  • DELETE 在指定测量值名称时,在 FROM 子句中以及在指定标签值时,在 WHERE 子句中支持正则表达式。它不支持 FROM 子句中保留策略的正则表达式。DELETE 要求您在 FROM 子句中定义一个保留策略。
  • DELETE 不支持 WHERE 子句中的字段
  • 如果您需要在将来删除点,则必须将该时间段指定为 DELETE SERIES 默认情况下为 time < now() 运行。语法

使用 DROP MEASUREMENT 删除测量值

DROP MEASUREMENT 查询从指定的测量值中删除所有数据和序列,并从索引中删除该测量值。

该查询采用以下形式

DROP MEASUREMENT <measurement_name>

删除测量值 h2o_feet

> DROP MEASUREMENT "h2o_feet"

注意: DROP MEASUREMENT 删除测量值中的所有数据和序列。它不会删除关联的连续查询。

成功的 DROP MEASUREMENT 查询返回一个空结果。

目前,InfluxDB 不支持 DROP MEASUREMENT 的正则表达式。有关更多信息,请参阅 GitHub Issue #4275

使用 DROP SHARD 删除分片

DROP SHARD 查询删除一个分片。它还会从元存储中删除该分片。该查询采用以下形式

DROP SHARD <shard_id_number>

删除 id 为 1 的分片

> DROP SHARD 1
>

成功的 DROP SHARD 查询返回一个空结果。如果您尝试删除一个不存在的分片,InfluxDB 不会返回错误。

保留策略管理

以下部分介绍如何创建、更改和删除保留策略。请注意,当您创建数据库时,InfluxDB 会自动创建一个名为 autogen 的保留策略,该策略具有无限的保留期。您可以在配置文件中禁用其自动创建。

使用 CREATE RETENTION POLICY 创建保留策略

语法

CREATE RETENTION POLICY <retention_policy_name> ON <database_name> DURATION <duration> REPLICATION <n> [SHARD DURATION <duration>] [DEFAULT]

语法描述

DURATION
  • DURATION 子句确定 InfluxDB 保留数据的时间长度。<duration> 是一个持续时间文字INF(无限)。保留策略的最小持续时间为一小时,最大持续时间为 INF
REPLICATION
  • REPLICATION 子句确定每个点的多少个独立副本存储在集群中。

  • 默认情况下,复制因子 n 通常等于数据节点的数量。但是,如果您有四个或更多数据节点,则默认复制因子 n 为 3。

  • 为了确保数据可以立即用于查询,请将复制因子 n 设置为小于或等于集群中数据节点的数量。

重要提示: 如果您有四个或更多数据节点,请验证数据库复制因子是否正确。

  • 复制因子不适用于单节点实例。
SHARD DURATION
  • 可选。SHARD DURATION 子句确定分片组覆盖的时间范围。
  • <duration> 是一个持续时间文字,不支持 INF(无限)持续时间。
  • 默认情况下,分片组持续时间由保留策略的 DURATION 确定
保留策略的 DURATION分片组持续时间
< 2 天1 小时
>= 2 天且 <= 6 个月1 天
> 6 个月7 天

允许的最小 SHARD GROUP DURATION1h。如果 CREATE RETENTION POLICY 查询尝试将 SHARD GROUP DURATION 设置为小于 1h 且大于 0s,则 InfluxDB 会自动将 SHARD GROUP DURATION 设置为 1h。如果 CREATE RETENTION POLICY 查询尝试将 SHARD GROUP DURATION 设置为 0s,则 InfluxDB 会根据上面列出的默认设置自动设置 SHARD GROUP DURATION

有关推荐配置,请参阅分片组持续时间管理

DEFAULT

将新的保留策略设置为数据库的默认保留策略。此设置是可选的。

示例

创建保留策略
> CREATE RETENTION POLICY "one_day_only" ON "NOAA_water_database" DURATION 1d REPLICATION 1
>

该查询为数据库 NOAA_water_database 创建一个名为 one_day_only 的保留策略,持续时间为一天,复制因子为一。

创建 DEFAULT 保留策略
> CREATE RETENTION POLICY "one_day_only" ON "NOAA_water_database" DURATION 23h60m REPLICATION 1 DEFAULT
>

该查询创建的保留策略与上面示例中的策略相同,但将其设置为数据库的默认保留策略。

成功的 CREATE RETENTION POLICY 查询返回一个空响应。如果您尝试创建一个与已存在的保留策略相同的保留策略,InfluxDB 不会返回错误。如果您尝试创建一个与现有保留策略同名但属性不同的保留策略,InfluxDB 将返回错误。

注意: 您还可以在 CREATE DATABASE 查询中指定新的保留策略。请参阅 使用 CREATE DATABASE 创建数据库

使用 ALTER RETENTION POLICY 修改保留策略

ALTER RETENTION POLICY 查询采用以下形式,您必须声明至少一个保留策略属性 DURATIONREPLICATIONSHARD DURATIONDEFAULT

ALTER RETENTION POLICY <retention_policy_name> ON <database_name> [DURATION <duration>] [REPLICATION <n>] [SHARD DURATION <duration>] [DEFAULT]

复制因子不适用于单节点实例。

首先,创建一个 DURATION 为两天的保留策略 what_is_time

> CREATE RETENTION POLICY "what_is_time" ON "NOAA_water_database" DURATION 2d REPLICATION 1
>

修改 what_is_time 以使其具有三周的 DURATION、两小时的分片组持续时间,并使其成为 NOAA_water_databaseDEFAULT 保留策略。

> ALTER RETENTION POLICY "what_is_time" ON "NOAA_water_database" DURATION 3w SHARD DURATION 2h DEFAULT
>

在最后一个示例中,what_is_time 保留其原始复制因子 1。

成功的 ALTER RETENTION POLICY 查询返回一个空结果。

使用 DROP RETENTION POLICY 删除保留策略

删除特定保留策略中的所有测量值和数据

删除保留策略将永久删除存储在该保留策略中的所有测量值和数据。

DROP RETENTION POLICY <retention_policy_name> ON <database_name>

删除 NOAA_water_database 数据库中的保留策略 what_is_time

> DROP RETENTION POLICY "what_is_time" ON "NOAA_water_database"
>

成功的 DROP RETENTION POLICY 查询返回一个空结果。如果您尝试删除一个不存在的保留策略,InfluxDB 不会返回错误。


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像当前一样使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已推出 Public Alpha

InfluxDB 3 开源版本现已可用于 alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 alpha 的一部分。

InfluxDB 3 Core 是我们的新开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何入门的更多信息,请查看