开始使用 InfluxDB Cloud Dedicated
InfluxDB是专门用于收集、存储和查询时间序列数据的平台。InfluxDB Cloud Dedicated由InfluxDB 3存储引擎提供支持,具备几乎无限的系列基数、改善的查询性能,以及与广泛使用的数据处理工具和平台的互操作性。
时间序列数据是一系列按时间顺序索引的数据点。数据点通常由来自同一来源的连续测量组成,用于跟踪随时间的变化。时间序列数据的示例包括:
- 工业传感器数据
- 服务器性能指标
- 每分钟心跳次数
- 大脑中的电活动
- 降雨量测量
- 股票价格
本多部分教程将指导您如何将时间序列数据写入 InfluxDB Cloud Dedicated,查询,然后可视化这些数据。
开始之前的关键概念
在开始使用InfluxDB之前,理解时间序列数据在InfluxDB中的组织和存储方式以及本文件中使用的一些关键定义是很重要的。
数据组织
InfluxDB Cloud Dedicated 数据模型将时间序列数据组织成数据库和表。
一个数据库可以包含多个表。 表包含多个标签和字段。
- 数据库: 存储时间序列数据的命名位置,数据以表的形式存储。
数据库在InfluxDB Cloud Serverless和InfluxDB TSM中与桶同义。
- 表: 时间序列数据的逻辑分组。给定表中的所有点应具有相同的标签。一个表包含标签和字段。表在InfluxDB Cloud Serverless和InfluxDB TSM中与测量同义。
- 标签: 提供每个点元数据的键值对——例如,用于标识数据来源或上下文的内容,如主机、位置、站点等。标签值可以为null。
- 字段: 随时间变化的键值对——例如,温度、压力、股票价格等。字段值可以为null,但在任何给定行中至少有一个字段值不能为空。
- 时间戳: 与数据关联的时间戳。当存储在磁盘上并被查询时,所有数据按时间排序。时间戳永远不会为null。
- 表: 时间序列数据的逻辑分组。给定表中的所有点应具有相同的标签。一个表包含标签和字段。表在InfluxDB Cloud Serverless和InfluxDB TSM中与测量同义。
桶和测量是什么?
如果来自于 InfluxDB Cloud Serverless 或者由 TSM 存储引擎驱动的 InfluxDB,你可能对 bucket 和 measurement 的概念很熟悉。在 TSM 或 InfluxDB Cloud Serverless 中,Bucket 等同于 InfluxDB Cloud Dedicated 中的 database。在 TSM 或 InfluxDB Cloud Serverless 中,Measurement 等同于 InfluxDB Cloud Dedicated 中的 table。
写时模式
当您将数据写入InfluxDB时,数据定义了表的模式。您不需要创建表或显式定义表的模式。
重要定义
使用InfluxDB时,以下定义非常重要:
- 点: 由其 测量、标签键、标签值、字段键和时间戳 识别的单个数据记录。
- 系列: 一组具有相同的 测量、标签键和值,以及字段键 的点。
- 主键: 用于唯一标识表中每一行的列。行通过它们的 时间戳和标签集 唯一识别。一行的主键 标签集 不包括具有空值的标签。
示例 InfluxDB 查询结果
名称: weather
| 时间 | 城市 | 国家 | 温度 | 湿度 |
|---|---|---|---|---|
| 2022-01-01T12:00:00Z | 伦敦 | 英国 | 12.0 | 88.4 |
| 2022-01-01T12:00:00Z | 科隆 | 德国 | 13.2 | 88.5 |
| 2022-02-01T12:00:00Z | 伦敦 | 英国 | 12.1 | 94.0 |
| 2022-02-01T12:00:00Z | 科隆 | 德国 | 11.5 | 87.8 |
| 2022-03-01T12:00:00Z | 伦敦 | 英国 | 11.5 | 82.1 |
| 2022-03-01T12:00:00Z | 科隆 | 德国 | 10.2 | 76.4 |
| 2022-04-01T12:00:00Z | 伦敦 | 英国 | 5.9 | 87.6 |
| 2022-04-01T12:00:00Z | 科隆 | 德国 | 7.9 | 93.3 |
可用工具
下表比较了您可以用来与 InfluxDB Cloud Dedicated 进行交互的工具。本教程涵盖了许多推荐的工具。
| 工具 | 管理 | 写入 | 查询 |
|---|---|---|---|
| Chronograf | - | - | |
influx CLI | - | - | - |
influxctl CLI* | |||
influx3 数据 CLI* | - | ||
| InfluxDB HTTP API* | - | ||
| InfluxDB用户界面 | - | - | - |
| InfluxDB 3 客户端库* | - | ||
| InfluxDB v2 客户端库 | - | - | |
| InfluxDB v1 客户端库 | - | ||
| Telegraf* | - | - | |
| 第三方工具 | |||
| 航班 SQL 客户端 | - | - | |
| Grafana | - | - | |
| Superset | - | - | |
| Tableau | - | - |
避免在 InfluxDB Cloud Dedicated 中使用 influx CLI。虽然它可能偶然有效,但不受支持。
influxctl 命令行工具
该
influxctl 命令行接口 (CLI)
用于书写、查询,以及执行管理任务,如在集群中管理数据库和授权令牌。
influx3 数据命令行接口
该
influx3 数据 CLI
是一个由社区维护的工具,使您能够从命令行写入和查询在
InfluxDB Cloud Dedicated 中的数据。它使用 HTTP API 来写入数据,并使用 Flight gRPC 来查询数据。
InfluxDB HTTP API
InfluxDB HTTP API 提供了一种简单的方法,让您管理 InfluxDB Cloud Dedicated,并使用 HTTP(S) 客户端编写和查询数据。本教程中的示例使用 cURL,但任何 HTTP(S) 客户端都可以工作。
这个 /write 和 /query v1 兼容的端点与用户名/密码认证方案以及现有的 InfluxDB 1.x 工具和代码一起工作。这个 /api/v2/write v2 兼容的端点与现有的 InfluxDB 2.x 工具和代码一起工作。
InfluxDB 客户端库
InfluxDB 客户端库是由社区维护的特定语言客户端,能够与 InfluxDB API 交互。
InfluxDB 3 客户端库 是用于写入和查询数据的推荐客户端库 InfluxDB Cloud Dedicated。它们使用 HTTP API 来写入数据,并使用 InfluxDB 的 Flight gRPC API 来查询数据。
InfluxDB v2 客户端库
可以使用 /api/v2 HTTP 端点来管理资源,例如存储桶和 API
令牌,并将数据写入 InfluxDB Cloud Dedicated。
InfluxDB v1 客户端库 可以将数据写入 InfluxDB Cloud Dedicated。
授权
InfluxDB Cloud Dedicated 需要使用以下token类型进行身份验证:
数据库令牌: 授予对InfluxDB数据库的读写访问权限的令牌。
管理令牌: Auth0 认证令牌 由
influxctlCLI 生成,用于管理您的 InfluxDB 集群。 管理令牌授权用户执行与以下内容相关的任务:- Account management
- Database management
- Database token management
- Pricing
默认情况下,管理令牌是
- 短暂的
- 针对特定用户发行
- 由OAuth2身份提供者发布
- 由
influxctl管理,无需用户管理
然而,为了自动化的目的,influxctl 用户可以
手动创建一个长期有效的管理令牌
以便与
云专用的管理API一起使用。
手动创建的管理令牌直接与您的 InfluxDB 集群进行身份验证,并且不需要与您的身份提供者进行人工交互。