Documentation

开始使用InfluxDB集群

InfluxDB 是一个专门用于收集、存储和查询时间序列数据的平台。 InfluxDB Clustered 由 InfluxDB 3 存储引擎驱动,提供几乎无限的系列基数、 提升的查询性能,以及与广泛使用的数据处理工具和平台的互操作性。

时间序列数据是一系列按时间顺序索引的数据点。数据点通常由来自同一来源的连续测量组成,用于跟踪随时间的变化。时间序列数据的示例包括:

  • 工业传感器数据
  • 服务器性能指标
  • 每分钟心跳次数
  • 大脑中的电活动
  • 降雨量测量
  • 股票价格

这个多部分教程将带您了解如何将时间序列数据写入您的 InfluxDB 集群,查询并可视化这些数据。

开始之前的关键概念

在开始使用InfluxDB之前,了解时间序列数据是如何在InfluxDB中组织和存储的,以及本文件中使用的一些关键定义,是很重要的。

数据组织

InfluxDB 集群数据模型将时间序列数据组织成数据库和表。

一个数据库可以包含多个表。 表包含多个标签和字段。

  • 数据库: 存储时间序列数据的命名位置,数据以的形式存储。 数据库在InfluxDB Cloud Serverless和InfluxDB TSM中与同义。
    • : 时间序列数据的逻辑分组。给定表中的所有应具有相同的标签。一个表包含标签字段在InfluxDB Cloud Serverless和InfluxDB TSM中与测量同义。
      • 标签: 提供每个点元数据的键值对——例如,用于标识数据来源或上下文的内容,如主机、位置、站点等。标签值可以为null。
      • 字段: 随时间变化的键值对——例如,温度、压力、股票价格等。字段值可以为null,但在任何给定行中至少有一个字段值不能为空。
      • 时间戳: 与数据关联的时间戳。当存储在磁盘上并被查询时,所有数据按时间排序。时间戳永远不会为null。

桶和测量是什么?

如果来自InfluxDB Cloud Serverless或由TSM存储引擎支持的InfluxDB,您可能熟悉概念bucketmeasurement。 在TSM或InfluxDB Cloud Serverless中,Bucket与InfluxDB Clustered中的database同义。 在TSM或InfluxDB Cloud Serverless中,Measurement与InfluxDB Clustered中的table同义。

写时模式

当您将数据写入InfluxDB时,数据定义了表的模式。 您不需要创建表或 明确地定义表模式。

重要定义

使用InfluxDB时,以下定义非常重要:

  • : 由其 测量、标签键、标签值、字段键和时间戳 标识的单个数据记录。
  • 系列: 一组具有相同 测量、标签键和值,以及字段键 的点。
  • 主键: 用于唯一标识表中每一行的列。 行通过它们的 时间戳和标签集 进行唯一标识。 行的主键 标签集 不包括值为 null 的标签。
示例 InfluxDB 查询结果

名称: weather

时间城市国家温度湿度
2022-01-01T12:00:00Z伦敦英国12.088.4
2022-01-01T12:00:00Z科隆德国13.288.5
2022-02-01T12:00:00Z伦敦英国12.194.0
2022-02-01T12:00:00Z科隆德国11.587.8
2022-03-01T12:00:00Z伦敦英国11.582.1
2022-03-01T12:00:00Z科隆德国10.276.4
2022-04-01T12:00:00Z伦敦英国5.987.6
2022-04-01T12:00:00Z科隆德国7.993.3

可用工具

以下表格比较了您可以用来与InfluxDB集群交互的工具。此教程涵盖了许多推荐的工具。

工具管理写入查询
Chronograf--
influx CLI---
influxctl CLI*
influx3 数据 CLI*-
InfluxDB HTTP API*-
InfluxDB用户界面---
InfluxDB 3 客户端库*-
InfluxDB v2 客户端库--
InfluxDB v1 客户端库-
Telegraf*--
第三方工具
航班 SQL 客户端--
Grafana--
Superset--
Tableau--
* Covered in this tutorial

避免在 InfluxDB 集群中使用 influx CLI。虽然它可能偶尔有效,但并不被支持。

influxctl 管理员命令行界面

influxctl命令行接口 (CLI)用于写入、查询和执行管理任务,例如在集群中管理数据库和授权令牌。

influx3 数据命令行接口

influx3 数据 CLI 是一个社区维护的工具,允许您从命令行写入和查询 InfluxDB 集群中的数据。它使用 HTTP API 写入数据,并使用 Flight gRPC 查询数据。

InfluxDB HTTP API

InfluxDB HTTP API 提供了一种简单的方法,让您管理 InfluxDB 集群并使用 HTTP(S) 客户端写入和查询数据。本教程中的示例使用 cURL,但任何 HTTP(S) 客户端都可以使用。

与用户名/密码认证方案和现有的 InfluxDB 1.x 工具和代码兼容的 /write/query v1 端点。
与现有 InfluxDB 2.x 工具和代码兼容的 /api/v2/write v2 端点。

InfluxDB 客户端库

InfluxDB客户端库是由社区维护的特定语言客户端,用于与InfluxDB API交互。

InfluxDB 3 client libraries 是用于编写和查询InfluxDB Clustered数据的推荐客户端库。它们使用HTTP API来写入数据,并使用InfluxDB的Flight gRPC API来查询数据。

InfluxDB v2 客户端库 可以使用 /api/v2 HTTP 端点来管理诸如 buckets 和 API tokens 等资源,并在 InfluxDB Clustered 中写入数据。

InfluxDB v1 client libraries 可以将数据写入 InfluxDB 集群。

授权

InfluxDB 集群需要认证 使用以下 token 类型之一:

  • 数据库令牌: 授予对InfluxDB数据库的读写访问权限的令牌。

  • 管理令牌: 一种短期(1小时)Auth0令牌,用于管理您的InfluxDB集群。 这些令牌由influxctl命令行工具生成,不需要任何直接管理。 管理令牌授权用户执行与以下内容相关的任务:

    • Account management
    • Database management
    • Database token management
    • Pricing


Flux的未来

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

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

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

有关如何开始的更多信息,请查看: