文档文档

InfluxDB 设计见解与权衡

此页面记录了早期版本的 InfluxDB OSS。InfluxDB OSS v2 是最新的稳定版本。请参阅等效的 InfluxDB v2 文档: InfluxDB 设计原则

InfluxDB 是一个时间序列数据库。为此用例进行优化需要进行一些权衡,主要是以牺牲功能为代价来提高性能。以下是一些导致权衡的设计见解列表

  1. 对于时间序列用例,我们假设如果相同的数据被多次发送,那么它就是客户端多次发送的完全相同的数据。

    优点: 简化的 冲突解决 提高了写入性能。
    缺点: 无法存储重复数据;在极少数情况下可能会覆盖数据。

  2. 删除很少发生。当它们发生时,几乎总是针对大量旧数据,这些数据对于写入而言是冷数据。

    优点: 限制对删除的访问可以提高查询和写入性能。
    缺点: 删除功能受到显著限制。

  3. 更新现有数据很少发生,并且不会发生有争议的更新。时间序列数据主要是从不更新的新数据。

    优点: 限制对更新的访问可以提高查询和写入性能。
    缺点: 更新功能受到显著限制。

  4. 绝大多数写入都是针对具有非常新的时间戳的数据,并且数据以时间升序添加。

    优点: 以时间升序添加数据性能显著提高。
    缺点: 写入具有随机时间或时间非升序的点性能显著降低。

  5. 规模至关重要。数据库必须能够处理 吞吐量的读取和写入。

    优点: 数据库可以处理 吞吐量的读取和写入。
    缺点: InfluxDB 开发团队被迫做出权衡以提高性能。

  6. 能够写入和查询数据比具有强一致性视图更重要。

    优点: 多个客户端可以在高负载下完成数据库的写入和查询。
    缺点: 如果数据库处于重负载下,查询返回可能不包含最新的点。

  7. 许多时间序列是短暂的。通常存在仅出现几个小时然后消失的时间序列,例如,启动并报告一段时间然后关闭的新主机。

    优点: InfluxDB 擅长管理不连续数据。
    缺点: 无模式设计意味着某些数据库功能不受支持,例如,没有跨表连接。

  8. 没有一个点太重要。

    优点: InfluxDB 具有非常强大的工具来处理聚合数据和大型数据集。
    缺点: 点在传统意义上没有 ID,它们通过时间戳和序列来区分。


此页面是否有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版本现已发布公开 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版的一部分。

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

有关如何入门的更多信息,请查看