首页

使用InfluxQL管理数据库

InfluxQL提供一整套的数据库管理命令

数据库管理 保留策略管理
CREATE DATABASE CREATE RETENTION POLICY
DROP DATABASE ALTER RETENTION POLICY
DROP SERIES DROP RETENTION POLICY
DELETE
DROP MEASUREMENT
DROP SHARD

如果您想要的是关于SHOW的查询(例如,SHOW DATABASES或者SHOW RETENTION POLICIES),请查阅Schema探索章节。

以下章节中的示例使用了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创建一个默认的保留策略,名称为liquid,其DURATION为3d,复制因子为1,分片组持续时间为1h

使用DROP DATABASE删除数据库

DROP DATABASE查询从指定数据库中删除所有数据,measurement,series,连续查询和保留策略。

查询采语法如下:

DROP DATABASE <database_name>

删除数据库NOAA_water_database

> DROP DATABASE "NOAA_water_database"
>

成功的DROP DATABASE命令不返回任何结果。如果删除不存在的数据库,InfluxDB也不会返回错误。

使用DROP SERIES从索引中删除series

DROP SERIES查询会删除数据库中的所有数据Point,并从索引中删除该series

注意:DROP SERIES不支持WHERE子句中使用时间条件。查看 DELETE 了解更多

查询采用以下格式,必须指定FROM子句和WHERE子句:

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

在单个measurement删除所有series:

> DROP SERIES FROM "h2o_feet"

在单个measurement中删除具有特定tag的series:

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

Drop all points in the series that have a specific tag pair from all measurements in the database:

在数据库中的所有measurement中删除series中具有特定tag的所有数据点:

> DROP SERIES WHERE "location" = 'santa_monica'

注意:成功的DROP SERIES 查询不返回任何结果。

使用DELETE删除series

使用DELETE在一个数据中删除某一个series的所有数据点。

不像DROP SERIES, 它不会从索引中删除series,并且支持WHERE子句中的时间条件。

查询必须包括FROM子句或WHERE子句,或者同时包含这两者:

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

删除与measurementh2o_feet相关的所有数据:

> DELETE FROM "h2o_feet"

删除所有与measurementh2o_quality相关的数据,并且tag randtag等于3:

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

Delete all data in the database that occur before January 01, 2016:

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

成功的DELETE 查询不返回任何结果。

有关 DELETE的注意事项:

  • DELETE在指定measurement名称和WHERE子句中指定tag value时支持使用正则表达式
  • DELETE不支持WHERE子句中的 fields
  • 如果需要删除数据点,则必须执行时间段,因此默认情况下,DELETE SERIES 运行时间time < now()为默认语法

Delete measurements with DROP MEASUREMENT

使用DROP MEASUREMENT删除measurement

DROP MEASUREMENT查询从指定的measurement中删除所有数据和series,并删除measurement。

查询语法如下:

DROP MEASUREMENT <measurement_name>

Delete the measurement h2o_feet:

删除名称为h2o_feet的measurement

> DROP MEASUREMENT "h2o_feet"

注意:DROP MEASUREMENT会删除measurement中的所有数据点和series。但不会删除相关联的连续查询。

成功的DROP MEASUREMENT查询不返回任何结果。

当前,InfluxDB不支持带有DROP MEASUREMENTS的正则表达式。有关更多信息,请参阅GitHub问题#4275

使用DROP SHARD删除分片

使用DROP SHARD查询删除分片,它还会从元信息中删除分片。

查询格式如下:

DROP SHARD <shard_id_number>

删除分片ID为1的分片

> DROP SHARD 1
>

成功的DROP SHARD查询不返回任何结果。 如果删除不存在的碎片,InfluxDB不会返回错误。

保留策略(RP)管理

以下各节介绍如何创建,更改和删除保留策略。

请注意,当创建数据库时,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将数据保留多长时间。 保留策略的最短持续时间为一小时,最长持续时间为INF(无限)。
REPLICATION
  • REPLICATION子句确定每个数据点在集群中存储了多少个独立副本。
  • 默认情况下,复制因子n通常等于date node的数量。 但是,如果您有四个或更多data node,则默认复制因子n为3。
  • 为了确保数据立即可用于查询,请将复制因子 n设置为小于或等于集群中data node的数量。

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

  • 复制因子不适用于单节点实例。
SHARD DURATION
  • 可选项, SHARD DURATION 子句确定分片组的时间范围。
  • 默认情况下,分片组的持续时间由保留策略的DURATION确定:
保留策略期限 分片组持续时间
< 2 days 1 hour
>= 2 days and <= 6 months 1 day
> 6 months 7 days

最小允许的 SHARD GROUP DURATION1h. 如果 创建保留策略 查询试图将 SHARD GROUP DURATION 设置为小于 1h 且大于 0s, InfluxDB 会自动的讲 SHARD GROUP DURATION 设置为 1h. 如果 CREATE RETENTION POLICY 查询试图讲 SHARD GROUP DURATION 设置为你 0s, InfluxDB 会根据上面列出的默认自动设置SHARD GROUP DURATION

想了解更多请参阅Shard group duration management 推荐配置

DEFAULT

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

示例

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

该查询为数据库NOAA_water_database创建了一个名为one_day_only的保留策略,该策略的期限为1d,复制因子为1

创建默认保留策略
> 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修改保留策略

The ALTER RETENTION POLICY query takes the following form, where you must declare at least one of the retention policy attributes DURATION, REPLICATION, SHARD DURATION, or DEFAULT:

ALTER RETENTION POLICY查询语法如下,必须声明至少一个保留策略属性DURATIONREPLICATIONSHARD DURATIONDEFAULT

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

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

First, create the retention policy what_is_time with a DURATION of two days:

首先,以2d的DURATION创建保留策略what_is_time

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

Modify what_is_time to have a three week DURATION, a two hour shard group duration, and make it the DEFAULT retention policy for NOAA_water_database.

修改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删除保留策略

删除保留策略中的所有measurement和数据:

删除保留策略将永久删除保留在保留策略中的所有measurement和数据。

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不会返回错误。


InfluxDB OSS 2.0 release candidate

InfluxDB OSS v2.0.rc includes breaking changes that require a manual upgrade from all alpha and beta versions. For information, see:

Upgrade to InfluxDB OSS v2.0.rc