【问题标题】:Is it better to use more measurements or just use tags for performance使用更多测量值或仅使用标签来提高性能更好吗
【发布时间】:2019-06-01 01:21:44
【问题描述】:

我正在使用 InfluxDb 记录许多发电厂的测量结果。目前,我正在使用一种带有 power_plant 作为标签的测量,而不是用于测量的字段。是对每个发电厂进行不同的测量还是只使用标签更好。我担心在这一次测量中会有 TB 或更多数据时的性能?

目前我有这样的结构(一次测量中的所有发电厂数据并使用标签发电厂和设备来查询数据)

private static $invertersMeasurement = [
    'value' => NULL,
    'tags' => [
        'power_plant' => NULL,
        'device' => NULL,
        'logger_ip' => NULL,
        ],
    'fields' => [
        'type' => NULL,
        'e_total' => NULL,
        'status' => NULL,
        'error' => NULL,
        'temp' => NULL,
        'pac' => NULL,
        'pdc1' => NULL,
        'udc1' => NULL,
        'idc1' => NULL,
        'pdc2' => NULL,
        'udc2' => NULL,
        'idc2' => NULL,
        'pdc3' => NULL,
        'udc3' => NULL,
        'idc3' => NULL,
        'pdc4' => NULL,
        'udc4' => NULL,
        'idc4' => NULL
        ],
    'time' => NULL
];

去除电厂标签并存储不同测量中每个电厂的数据是否更好?

【问题讨论】:

    标签: database performance database-design schema influxdb


    【解决方案1】:

    不,保留标签,因为某些可视化工具(例如 Grafana)对标签的支持比测量值更好 + 按标签过滤既快速又便宜(如果您没有高基数标签)。无论如何,您的架构对我来说看起来不错。

    【讨论】:

      【解决方案2】:

      问:使用更多测量值会更好吗?

      答: 将所有数据包含在一个测量中的好处是,当点都放在一个地方时,您可以更轻松地执行数据聚合。

      但是,这是在 influxdb v1.7.0 之前出现的问题,其中根本不可能进行交叉测量连接。这意味着您无法在来自不同测量的数据点之间进行数据聚合。

      注意:截至目前,只有 flux,新的 influx 2.0 查询语言允许您进行交叉测量连接。

      在大多数情况下,如果您通过将正确类型的点数据存储到适当的测量中来正确设计方案,则不必进行交叉测量连接。

      查看您的字段,我可以看到一些数据类型,例如温度。也许它们可以放在不同的测量范围内?这样开发人员,尤其是新入职的开发人员,可以更轻松地发现数据?

      这也使您的测量更有条理。当您以一分钟的间隔输入温度数据并且您的某些字段的间隔为 2 分钟时,单个测量数据集可能看起来很混乱。这意味着在某些情况下,特定数据行将始终只有温度场,而没有其他场。

      您需要处理这种极端情况。你是否做linear插值?

      不确定这些 ucp idc 1、2、3 和 4 字段是什么。如果它们以某种方式关联,那么它们应该单独保存在测量中。在某种意义上与某些字段的组合相关联,例如ucp1 和 ucp2,您可以确定数据是否有意义,可以告诉您一些事情。比如温度值高+ucp值低代表机器故障?

      我会将您的数据分组到正确的度量中,否则在 influxdb 中确实不需要 measurement

      【讨论】:

      • 感谢回答。但我会更新需要交叉测量连接。我总是只需要一个发电厂的数据。我也有传感器测量,我存储传感器数据。在逆变器测量(此示例)中,我存储来自逆变器的数据。我将始终拥有完整的行,而不仅仅是一些数据,因为记录器创建 2 个文件(传感器和逆变器)并通过 ftp 推送发送到我的服务器,在那里我有解析器来解码数据并将其保存到流入。 Udc 1,2,3 是串 1 2 和 3 上的电压。idc 是电流,pdc 是功率。 temp 是设备的温度。
      • 非常感谢您的洞察力,听起来您正在为发电厂的某些太阳能系统开发软件。
      • 是的,我在一家做太阳能发电厂的公司工作。我正在建立他们的监控系统。这是一个非常棒的项目:)
      猜你喜欢
      • 2012-03-09
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-17
      • 1970-01-01
      相关资源
      最近更新 更多