TL;DR InfluxDB 技术提示 - 理解序列基数中的相关标签

导航至

在本周的帖子中,我们回顾了上周您可能错过的来自 GitHub、IRC 和 InfluxDB Google Group 中最有趣的 InfluxDB 序列基数和 TICK-stack 相关问题、解决方法、操作方法和问答。

将时间戳写入 InfluxDB

问:我是 InfluxDB 的新手,正在学习使用行协议。我有一些历史数据想要写入我的数据库 - 这可以使用行协议实现吗?您能给我概述一下支持的时间戳格式吗?

答:当然!InfluxDB 的时间戳始终采用 Unix 时间;即自 1970 年 1 月 1 日午夜 UTC 以来经过的时间量。

行协议(用于将点写入 InfluxDB 的基于文本的格式)中,时间戳是可选的。如果您提供时间戳,InfluxDB 将使用您服务器的本地纳秒时间(UTC)将点写入数据库。如果您确实指定了时间戳,InfluxDB 将改为使用该时间戳写入点。因此,为了回答您的初始问题:是的,您可以将历史数据写入数据库,您只需要在行协议中指定相关的时间戳即可。

关于将时间戳写入 InfluxDB,还有一些其他事项需要了解

  • 允许的最大时间戳是 92233720368547758062262-04-11 23:47:16.854775806
  • 允许的最小时间戳是 -92233720368547758061677-09-21 00:12:43.145224194。请注意,InfluxDB 支持负 Unix 时间戳,即发生在 1970 年 1 月 1 日午夜 UTC 之前的时间戳。
  • HTTP API 支持写入非纳秒时间戳。只需使用 precision 查询字符串参数来指定时间戳以微秒 (u)、毫秒 (ms)、小时 (h)、分钟 (m) 或秒 (s) 为单位。我们建议在将数据写入 InfluxDB 时尽可能使用最粗略的精度。它可以显着提高压缩率。

查看 行协议HTTP API 文档以获取更多信息!

理解序列基数中的相关标签

问:我已经开始阅读关于 InfluxDB 模式序列基数 的内容。单个度量的序列基数真的只是每个标签的标签值数量的乘积吗?

例如,我有一个包含标签键 firstnamelastnameemail 的单个度量。如果 firstname 有五个不同的标签值,lastname 有五个不同的值,而 email 有五个不同的值,那么我的序列基数是 125 (5 * 5 * 5) 吗?

答:单个 度量 的序列基数实际上是存在的 标签集 的数量。

在您的示例中,如果我们有标签 firstnamelastnameemail,则总基数完全由 email 标签驱动。尽管可能有很多名字和姓氏,但给定的电子邮件地址将永远只有一个关联的名字和姓氏(假设没有人更改他们的名字。)firstnamelastname 是因变量,而 email 是自变量,因此您的序列基数实际上是五。

选择不同的时间范围

问:我正在尝试使用 WHERE 子句中的时间范围 SELECT 数据,但我一直没有得到任何结果。我的查询有什么问题吗?

SELECT * FROM "holidata" WHERE (time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:06:00Z') OR (time >= '2015-09-18T21:36:00Z' AND time <= '2015-09-18T21:42:00Z')

答:目前,InfluxQL 不支持在 WHERE 子句 中选择不同的时间范围。您的查询没有返回任何结果,因为您的两个时间范围之间存在时间间隔。您可以通过将查询拆分为两个单独的查询来解决此问题

# Query 1 for time range one

SELECT * FROM "holidata" WHERE time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:06:00Z'
# Query 2 for time range two

SELECT * FROM "holidata" WHERE time >= '2015-09-18T21:36:00Z' AND time <= '2015-09-18T21:42:00Z'

有关更多 InfluxDB 技巧,请参阅我们的 常见问题解答 页面,并随时在 InfluxDB 用户组 中发布您的问题!

下一步

  • 下载适用于 TICK-stack 的下载已在我们的“下载”页面上线
  • 云端部署:立即开始免费试用 InfluxDB Cloud,它具有完全托管的集群、Kapacitor 和 Grafana。
  • 在您的服务器上部署:想要在您的服务器上运行 InfluxDB 集群?立即试用 InfluxDB Enterprise 的 14 天免费试用版,它具有用于部署、监控和重新平衡集群的直观 UI,以及管理备份和恢复的功能。
  • 讲述您的故事:超过 100 家公司分享了 InfluxDB 如何帮助他们取得成功的故事。提交您的客户评价,即可获得限量版连帽衫作为感谢。