InfluxDB: 入门指南

如何开始使用 InfluxDB

👋 欢迎查阅 Stackhero 文档

Stackhero 提供全托管的 InfluxDB cloud 环境,专为高效与简便而设计:

  • 无限制的数据写入、查询、仪表盘、任务和 bucket。
  • 无限制的数据保留:根据您的需求,指标数据可长期保存。
  • 无限制的网络与磁盘传输,无任何隐藏限制。
  • 一键升级:始终体验最新功能与修复。
  • 在您专属的私有基础设施上,始终保持高性能强安全性

使用 Stackhero,您可以专注于数据与洞察。仅需几分钟即可开始使用 InfluxDB cloud hosting,每个环境都针对长期稳定性进行了优化。

InfluxDB 不提供通过其 Web UI 直接创建和管理用户的方法。幸运的是,您可以使用 InfluxDB CLI 来完成这些任务。

您可以通过 Docker 访问 InfluxDB CLI。例如,运行以下命令:

docker run -it -u 0 bitnami/influxdb:2.7.11 /bin/bash

别忘了将 2.7.11 替换为您的 InfluxDB 版本。

容器启动后,创建一个配置。记得将 <XXXXXX>.stackhero-network.com 替换为您的实际 InfluxDB 域名:

influx config create \
  --config-name adminConfig \
  --active \
  --username-password admin \
  --org admin \
  --host-url https://<XXXXXX>.stackhero-network.com

完成此步骤后,您将能够使用 InfluxDB CLI。例如,要创建一个新用户,请运行:

influx user create --name <user> --password <password>

InfluxDB 设计为时间序列数据库,通常处理大量指标。由于这些数据库通常不会自动删除数据,您的数据库可能会无限增长并占用所有可用磁盘空间。

为防止磁盘空间饱和,InfluxDB 提供了两种解决方案:

  1. 保留策略: 删除早于定义日期的数据。例如,您可能决定删除超过 365 天的数据。
  2. 数据降采样: 随时间减少数据分辨率。例如,如果您每秒记录一次温度,您可能希望:
    1. 保留最近 5 分钟的 1 秒分辨率温度数据。
    2. 保持最近 24 小时的最大、最小和平均温度的 1 分钟分辨率。
    3. 存储较旧数据的最大、最小和平均温度的 1 小时分辨率。

使用保留策略可以让您在不需要大量存储空间的情况下长期存储历史数据。您可以在官方文档中找到有关降采样的更多信息。

默认情况下,InfluxDB 会无限期存储数据。虽然这种行为对于传统数据库来说很常见,但对于时间序列数据库来说并不理想,因为它们应该删除过时数据以防止不受控制的增长。

例如,如果您存储电池电压数据,它可能只在几天内相关,而不是几年。为了避免磁盘填满,为每个 bucket 设置保留期至关重要。

要配置数据保留:

  1. 打开您的 InfluxDB Web UI。
  2. 点击“Data”,然后点击“Buckets”。
  3. 点击您要配置的 bucket 旁边的“Settings”。
  4. 选择“Delete data older than”并选择您想要的保留期。

警告 请记住,超过选择的保留期的数据将被永久删除!

请记住,InfluxDB 中的数据是按分片组织的。仅包含过时数据的分片会自动删除,但如果一个分片包含过时和当前数据的混合,则不会被删除。默认情况下,如果没有定义保留策略,分片会保存 7 天的数据。这意味着当您设置保留策略时,可能仍会保留近 7 天的过时数据与当前数据一起。您可以在官方文档中找到有关分片的更多信息。

您可以在此仓库中找到从 Node.js 发送数据到 InfluxDB 服务的示例:https://github.com/stackhero-io/influxdbGettingStarted