开始使用InfluxDB Clustered
InfluxDB是一个专门为收集、存储和查询时间序列数据而构建的平台。InfluxDB Clustered由InfluxDB 3.0存储引擎提供支持,该引擎提供几乎无限的序列基数,提高了查询性能,并与广泛使用的数据处理工具和平台兼容。
时间序列数据是按时间顺序索引的数据点序列。数据点通常由同一来源的连续测量组成,并用于跟踪随时间的变化。时间序列数据的示例包括
- 工业传感器数据
- 服务器性能指标
- 每分钟的脉搏
- 大脑中的电活动
- 降雨量测量
- 股价
本教程分几个部分,将指导您将时间序列数据写入InfluxDB集群,查询,然后可视化这些数据。
开始之前的关键概念
在开始使用InfluxDB之前,了解时间序列数据如何在InfluxDB中组织和存储,以及本文档中使用的某些关键定义非常重要。
数据组织
InfluxDB Clustered数据模型将时间序列数据组织到数据库和表中。
数据库可以包含多个表。表包含多个标签和字段。
- 数据库:存储时间序列数据的位置,以表的形式组织。在InfluxDB云无服务器和InfluxDB TSM中,数据库与桶(bucket)同义。
- 表:时间序列数据的一个逻辑分组。给定表中的所有点应具有相同的标签。表包含标签和字段。在InfluxDB云无服务器和InfluxDB TSM中,表与测量(measurement)同义。
- 标签:为每个点提供元数据的键值对——例如,用于标识数据的来源或上下文的信息,如主机、位置、站点等。标签值可以为空。
- 字段:具有随时间变化的值的键值对——例如,温度、压力、股价等。字段值可以为空,但在任何给定的行上至少有一个字段值不为空。
- 时间戳:与数据关联的时间戳。在磁盘上存储和查询时,所有数据按时间排序。时间戳从不为空。
- 表:时间序列数据的一个逻辑分组。给定表中的所有点应具有相同的标签。表包含标签和字段。在InfluxDB云无服务器和InfluxDB TSM中,表与测量(measurement)同义。
桶和测量是什么意思?
如果您来自InfluxDB云无服务器或由TSM存储引擎驱动的InfluxDB,您可能熟悉桶(bucket)和测量(measurement)的概念。在TSM或InfluxDB云无服务器中,桶与InfluxDB集群中的数据库(database)同义。在TSM或InfluxDB云无服务器中,测量与InfluxDB集群中的表(table)同义。
写入时模式
当您将数据写入InfluxDB时,数据定义了表模式。您不需要创建表或显式定义表模式。
重要定义
以下定义是在使用InfluxDB时需要理解的重要概念:
- 点:由其测量、标签键、标签值、字段键和时间戳唯一标识的单个数据记录。
- 系列:具有相同测量、标签键和值以及字段键的一组点。
- 主键:用于唯一标识表中每一行的列。行通过其时间戳和标签集唯一标识。一行的主键标签集不包括具有空值的标签。
以下是一个InfluxDB查询示例结果:
name: weather
time | city | country | temperature | humidity |
---|---|---|---|---|
2022-01-01T12:00:00Z | London | UK | 12.0 | 88.4 |
2022-01-01T12:00:00Z | Cologne | DE | 13.2 | 88.5 |
2022-02-01T12:00:00Z | London | UK | 12.1 | 94.0 |
2022-02-01T12:00:00Z | Cologne | DE | 11.5 | 87.8 |
2022-03-01T12:00:00Z | London | UK | 11.5 | 82.1 |
2022-03-01T12:00:00Z | Cologne | DE | 10.2 | 76.4 |
2022-04-01T12:00:00Z | London | UK | 5.9 | 87.6 |
2022-04-01T12:00:00Z | Cologne | DE | 7.9 | 93.3 |
可用的工具
以下表格比较了您可以用于与InfluxDB集群交互的工具。本教程涵盖了其中许多推荐的工具。
工具 | 管理 | 编写 | 查询 |
---|---|---|---|
Chronograf | - | - | |
influx CLI | - | - | - |
influxctl CLI* | |||
influx3 data CLI* | - | ||
InfluxDB HTTP API* | - | ||
InfluxDB用户界面 | - | - | - |
InfluxDB v3客户端库* | - | ||
InfluxDB v2客户端库 | - | - | |
InfluxDB v1客户端库 | - | ||
Telegraf* | - | - | |
第三方工具 | |||
Flight SQL客户端 | - | - | |
Grafana | - | - | |
Superset | - | - | |
Tableau | - | - |
避免使用influx
CLI与InfluxDB集群一起使用。虽然它可能偶然工作,但不受支持。
influxctl
管理CLI
influxctl
命令行界面(CLI)用于写入、查询以及在集群中执行管理任务,例如管理数据库和授权令牌。
influx3
数据CLI
influx3
数据CLI是一个社区维护的工具,允许您从命令行在InfluxDB集群中写入和查询数据。它使用HTTP API来写入数据,并使用Flight gRPC来查询数据。
InfluxDB HTTP API
《InfluxDB HTTP API》提供了简单的方式来让您管理InfluxDB集群,并使用HTTP(S)客户端读写和查询数据。本教程中的示例使用cURL,但任何HTTP(S)客户端都适用。
与v1兼容的/write
和/query
端点使用用户名/密码认证方案,并与现有的InfluxDB 1.x工具和代码配合工作。与v2兼容的/api/v2/write
端点与现有的InfluxDB 2.x工具和代码配合工作。
InfluxDB客户端库
InfluxDB客户端库是由社区维护的、针对特定语言的客户端,它们与InfluxDB API交互。
InfluxDB v3客户端库是推荐用于读写InfluxDB集群数据的客户端库。它们使用HTTP API来写入数据,并使用InfluxDB的Flight gRPC API来查询数据。
InfluxDB v2客户端库可以使用/api/v2
HTTP端点来管理资源,如桶和API令牌,并在InfluxDB集群中写入数据。
InfluxDB v1客户端库可以将数据写入InfluxDB集群。
授权
InfluxDB集群需要使用以下其中一种令牌类型进行认证
数据库令牌:一种允许对InfluxDB数据库进行读写访问的令牌。
管理令牌:一种短期的(1小时)Auth0令牌,用于管理您的InfluxDB集群。这些由
influxctl
CLI生成,不需要直接管理。管理令牌授权用户执行与以下相关的任务:- 账户管理
- 数据库管理
- 数据库令牌管理
- 定价
这个页面有帮助吗?
感谢您的反馈!