数据库管理

最近更新时间:2023-12-14 16:22:01

我的收藏
时序数据库 InfluxDB 版默认兼容 开源 InfluxDB v1.7 版本。本章将说明时序数据库 InfluxDB 版创建数据库、下载数据并将数据写入数据库,对开源 InfluxDB V1.7 的兼容情况。

数据库管理

全新购买的时序数据库 InfluxDB 版实例没有数据库,需手动创建数据库。数据库的创建与删除相关命令使用语义请参见下表。其中,✅表示兼容 InfluxDB,❌表示不兼容。更多信息,请参见 Sample data
命令
作用
兼容性
语义
CREATE DATABASE
创建一个新的数据库
当前 CREATE DATABASE 仅支持配置如下参数,其它参数暂不支持。语义格式如下所示:
CREATE DATABASE <database_name> [WITH [DURATION <duration[默认无限制]>]]
database_name:指数据库库名。
DURATION:数据过期删除时间(TTL , Time To Live),单位:天,取值为非零整数,选填参数。如果不启用数据过期,不配置该参数,如需启用数据过期,该数据库中的数据达到过期时间后将被自动删除清理,请谨慎配置!例如 DURATION 180d,表示该数据库中的数据达到180天即过期自动删除。
创建一个名为 test_tsdb1 的数据库,该数据库的数据永久保留:CREATE DATABASE test_tsdb1
创建一个名为 test_tsdb2 的数据库,该数据库启用数据过期,设置数据被保留30天:CREATE DATABASE test_tsdb2 WITH DURATION 30d
DROP DATABASE
删除数据库
执行语义如下所示:
DROP DATABASE <database_name>
DROP SERIES
删除数据库时间序列数据
-
DROP MEASUREMENT
删除测量值
执行语义:
DROP MEASUREMENT <measurement_name>
DROP SHARD
删除数据分片
-
DELETE
删除数据点,可以根据时间范围和查询条件来删除一个或多个数据点
执行语义: DELETE FROM <measurement_name> WHERE [<tag_key>='<tag_value>'] | [<time interval>]
如下以删除名为 cpu_load 的测量类型中时间戳在某个时间范围内的所有数据点为例,演示其执行方式。 DELETE FROM cpu_load WHERE time >= '2023-05-20T00:00:00Z' AND time < '2023-05-21T00:00:00Z'
CREATE RETENTION POLICY
创建数据保留策略的命令
-
ALTER RETENTION POLICY
修改保留策略
-
DROP RETENTION POLICY
删除保留策略
-

写入协议

InfluxDB Line Protocol 是 InfluxDB 数据库使用的一种数据格式,用于将数据以文本形式写入 InfluxDB 数据库。该协议使用逗号分隔值(CSV)格式,其中包含时间戳、测量标识符、标签和字段。您可以使用该协议将数据写入 InfluxDB 数据库,并从中检索和查询数据。
协议
协议说明
是否兼容
格式
InfluxDB Line Protocol 
InfluxDB Line Protocol 是一种基于文本的数据格式,用于将数据点写入 InfluxDB 数据库。每个数据点都由一个单独的行表示,行中包含时间戳和测量值名称、标签集和字段集的值。
每个数据点都由一个单独的行表示,行中包含时间戳和测量值名称、标签集和字段集的值。
<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
更多信息,请参见官网 InfluxDB line protocol reference
Prometheus
Prometheus 是一种开源的监控系统和时间序列数据库,用于收集、存储和查询各种类型的指标数据。 InfluxDB 提供了一个兼容 Prometheus 的 HTTP API 端点,使得 Prometheus 可以将其数据写入InfluxDB 中。
启用 Prometheus 远程读写 API 与 InfluxDB:
1. 创建目标数据库 在 InfluxDB 实例中,通过 库管理 或参照 管理数据库,创建一个数据库来存储从 Prometheus 发送的数据。 在下面提供的示例中以 prometheus_test 举例,用作数据库名称CREATE DATABASE "prometheus_test"
2. 请将 URL 值添加到 Prometheus 配置文件中的以下设置:
username、password:分别为实例的访问账号与密码。 influxdb_ip:指实例内网 IP 地址。 db:指数据库库名,举例如 prometheus_test。
remote_write:
- url: "http://influxdb_ip:8086/api/v1/prom/write?db=prometheus_test&u=username&p=password"

remote_read:
- url: "http://influxdb_ip:8086/api/v1/prom/read?db=prometheus_test&u=username&p=password"
具体如何配置文件以及如何解析 Prometheus 指标,请参见 Prometheus endpoints support in InfluxDB

下载并写入数据

下载并写入符合 InfluxDB Line Protocol 协议的时序数据,请参见 使用数据库实例。更多信息,请参见 Download and write the data to InfluxDB