InfluxDB 2.0 中 bucket 与 measurement 的区别

更新日期: 2022-08-16 阅读次数: 10895 字数: 290 分类: InfluxDB

官方论坛的一个讨论:

https://community.influxdata.com/t/whats-the-logical-connection-between-buckets-measurements-retention-policies-in-influxdb-2-0/15900

官方的一篇博客文章:

https://www.influxdata.com/blog/data-layout-and-schema-design-best-practices-for-influxdb/

Separate data into buckets when you need to assign different retention policies to that data or require an authentication token.

使用 bucket 的情况

  • 当需要不同的数据保存策略 (保存周期)
  • 需要区分访问权限。不同的 auth token。
  • 当 tag 中有很多关联,且固定不变的值时,就适合拆分为 bucket。例如,一个用户的,邮箱、电话等信息,拆分为 user bucket。这个例子可能不是很恰当,因为 user 信息还是适合放 mysql 这种关系型数据库。

示例中,bucket 与 measurement 同名,都是 MyPlantFriend。

InfluxDB 中 org / bucket / measurement 概念的区别

与 MySQL 进行对比理解:

  • Buckets: 类似 MySQL 中的 Database, 数据桶-数据库,即存储数据的命名空间。
  • Measurement: 对应 MySQL 中的 Table, 度量-表。
  • Point: 类似 MySQL Record, 数据点-记录。
  • Field: Field, 未设置索引的字段。比如,虽然会存储一个时刻的体征数据,血氧含量,但是并不会通过血氧含量的值进行查询。这种就适合 field。
  • Tag: Index, 设置了索引的字段。比如,会查询一个人对应的体征数据,这里的 tag 就是人的 id。

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式