Apache IoTDB vs InfluxDB 开源版,架构性能全面对比!

打印 上一主题 下一主题

主题 523|帖子 523|积分 1569


  分布式、端边云同步、读写查询性能,Apache IoTDB 与 InfluxDB 开源版的细致对照!
  在物联网(IoT)范畴,数据的采集、存储和分析是确保系统高效运行和决策准确的告急环节。随着物联网设备数目的增长和数据量的爆炸式增长,开辟者和决策者们需要选择符合的时序数据管理系统。Apache IoTDB 和 InfluxDB 是两款广泛应用的原生时序数据库,它们在架构设计、性能和功能方面各具特色。
  为了帮助用户在具体应用场景中做出最恰当的时序数据库选择。本文将从:分布式架构、端边云同步本领和性能体现三个方面对 Apache IoTDB 和 InfluxDB 开源版进行具体对比。下面,跟随我们来一探究竟!
  01
  基本概述
  Apache IoTDB(Internet of Things Database)是起源于清华大学的 Apache 顶级项目,也是专为物联网和工业大数据场景设计的高效可扩展时序数据库。IoTDB 旨在提供高吞吐量和低耽误的数据写入和查询本领,支持海量设备和传感器的数据采集。其核心上风在于轻量级、高压缩比和便捷的时间序列数据管理。此外,IoTDB 提供端边云一体化的解决方案,并能够与 Apache Hadoop、Spark、Flink 等大数据系统无缝集成。IoTDB 的分布式架构能够应对大规模物联网数据的存储需求,并提供高可用性和数据一致性。
  InfluxDB 是由 InfluxData 开辟的一款被广泛应用的时序数据库,以其高性能和机动性在开辟者社区中享有盛誉。InfluxDB 专为高并发的时间序列数据写入和查询而优化,提供了强大的查询语言 InfluxQL,以及兼容 SQL 的 Flux 查询语言,使数据分析更加机动。InfluxDB 强大的数据压缩和恒久化计谋有效降低了存储成本。同时,InfluxDB 还支持丰富的生态系统扩展,包罗 Telegraf 作为数据采集代理,以及 Chronograf 和 Kapacitor 用于数据可视化和及时处理。
  02
  分布式架构
  在物联网和大数据应用中,分布式架构是处理海量数据和包管系统高可用性的关键技术之一。分布式架构不但能提高系统的吞吐量和性能,还能提供精良的扩展性和容错本领。接下来,我们将深入探讨 Apache IoTDB 和 InfluxDB 开源版在分布式架构上的设计理念、实现方式及其优缺点。
  Apache IoTDB
  Apache IoTDB 原生支持分布式,并针对物联网场景做了大量优化,以最大化分布式集群的可用性、可扩展性和性能。
  

  • Apache IoTDB 针对大部门时序场景中近期数据操作频仍、历史数据操作较少的特点,设计了专门的数据分区和负载均衡计谋:Apache IoTDB 管理数据和元数据,以数据分片为例,如下图所示,所有设备的读写流量都会通过哈希算法匀称分配到 SeriesSlot ,再通过期间区间计算得到 TimeSlot 及其对应的 DataPartition,而各层映射通过负载均衡算法确保匀称分配,从而使数据的读写可以并行匀称利用集群所有节点的资源。
  通过该方案,不论设备数目是万级还是亿级,时间范围的跨度是 1 年还是 10 年,IoTDB 分片路由信息的维护成本依然是非常轻量的,而具体的时序数据管理又可以分散到集群中,这使得 IoTDB 在面对大规模时序数据时具有很高的可扩展性,如今最大测试过 PB 级别的时序数据存储。
  

  

  • 与业界其他时序数据库相比,Apache IoTDB 是第一个也是唯逐一个提出并应用共识协议统一框架的系统。用户可以根据性能、可用性、一致性和存储成本等需求,机动选择不同的共识算法。在共识协议统一框架下,Apache IoTDB 拥有强一致性共识协议 RatisConsensus、 专为 IoT 时序场景设计的高性能弱一致性共识协议 IoTConsensus、轻量级单副本共识协议 SimpleConsensus,为用户不同的业务需求提供了丰富机动的设置选择。
  • 提供丰富可观测性指标。Apache IoTDB 在分布式架构的全链路中内置了上千种监控指标,覆盖读写流程、共识算法、负载均衡、系统资源等,可以为用户提供可靠的及时监控。
  InfluxDB
  InfluxDB 开源版的分布式特性较为有限,只支持单节点摆设,适用于中小规模的数据处理需求。
  

  • 在开源版本中,InfluxDB 通过期间分片和数据压缩技术来提高数据写入和查询的性能,但不支持原生分布式存储和处理功能。
  

  • 为相识决单节点的局限性,用户通常需要依赖外部工具和方案,例如使用 Telegraf 进行数据分发,或者通过 InfluxDB 企业版来获得完备的分布式支持。
  03
  端边云同步
  随着物联网数据采集技术的发展与云计算服务的兴起,端边云架构在数据管理中的作用愈发告急。越来越多的业务系统在工厂等靠近数据源的地方摆设端侧边侧数据库进行数据采集,并将采集数据汇总到都会数据中心来实现海量数据的存储与分析。接下来,我们将对比 Apache IoTDB 和 InfluxDB 开源版的端边云同步本领。
  Apache IoTDB
  Apache IoTDB 原生内置流处理引擎,支持端边云同步功能,并拥有精良的性能、可拓展性和可用性等。
  

  

  • 近存储计算,以最小 IO、CPU 和网络代价利用数据进行计算,可对核心场景充分优化。Apache IoTDB 充分利用了时序数据库中存储文件的高压缩率特点,将存储引擎  IoTLSM-Tree 中的数据存储文件 TsFile 作为传输单位,降低传输的网络流量并减小云端负载。
  • Apache IoTDB 端边云同步框架允许用户实现自界说的流处理逻辑,可以实现对存储引擎数据变动的监听和捕获、完成对变动数据的处理、实现对变形后数据的向外推送等逻辑。基于自界说流处理插件编程接口,用户可以轻松编写数据抽取插件、数据处理插件和数据发送插件,从而使得流处理功能机动适配各种工业场景,相比 ETL 或用户手动实现的 CDC 更好用易用。
  

  • 提出一种基于日志与文件混淆传输的时序数据库数据同步方法。通过动态选择利用日志文件和数据文件进行同步,可以在包管较低耽误的同时,尽量增大数据吞吐量。
  • 支持分布式高可用。流处理引擎原生支持进度记录、出错自动重试、断点重算等特性,同时支持 at-least-once 传输语义,包管端到端 100% 一致性。
  

  InfluxDB
  InfluxDB 开源版在端边云同步方面的功能相对有限。虽然 InfluxDB 开源版可以通过 Telegraf 代理从边沿设备收集数据,但其本身并不提供专门的同步工具或协议来实现端边云同步。
  开辟者通常需要依赖第三方工具或定制解决方案来实现数据的同步和传输。例如,可以使用 Kapacitor 进行数据处理和传输,或者借助 MQTT、HTTP 等协议手动实现数据同步。这种方式虽然机动,但也增长了实现的复杂性和维护成本。InfluxDB 企业版提供了更多的同步和集成选项,但这些功能在开源版中并不包罗。
  04
  性能
  性能无疑是时序数据库选型中最告急的指标之一。接下来,本文将基于 benchANT 对 Apache IoTDB 和 InfluxDB 开源版进行性能对比。
  benchANT 是德国一家专门做云办法和数据库性能评估的测试机构。在用户对数据库选型很难找到以性能、功能体现为参考基准榜单的情况下,benchANT 致力于在统一的硬件资源和系统设置下对各类主流数据库系统做性能测试,并依据各项指标进行排名。
  基于 benchANT 排行榜的评估效果与其提供的测试情况、条件,Apache IoTDB 团队试图还原了 benchANT 排行榜针对 Apache IoTDB 性能与成本指标的测试流程,并与 InfluxDB 的数据体现进行了对比。
  

  • Apache IoTDB 的写入吞吐量(Write Throughput)通过导入 2,617,920,000 个数据点并计算所需的耗时得到, InfluxDB 测试效果为 52 万点/秒,而 Apache IoTDB 可达到 363 万点/秒,为 InfluxDB 的 7 倍
  • Apache IoTDB 的查询耽误(Read Latency)通过查询“1 个设备的 1 个测点在 1 个小时内按照 1 分钟进行分段聚合的值”这一场景计算得到,InfluxDB 测试效果约为 45 毫秒,而 Apache IoTDB 可达到 2 毫秒,响应速率比 InfluxDB 快 20 倍以上
  

  • Apache IoTDB 的存储占用(Storage Comsumption)通过在测试结束时记录存储空间占用得到, InfluxDB 测试效果为 3 GiB,而 Apache IoTDB 仅占用 2 GiB,存储成本比 InfluxDB 减少 33%
  • benchANT 使用读取吞吐量(Read Throughput)/ 月成本(Monthly Costs),计算出的成本效益(Operations Per Cost),也就是代表“每一美元能够置换多少的读取性能”,进而评估时序数据库的投入性能比。在这一指标中, InfluxDB 成本效益为 12.37 ops/$,而 Apache IoTDB 则达到 64.59 ops/$,约为 InfluxDB 的 5 倍
  

  05
  总结
  在选择恰当物联网和大数据应用的时序数据库时,相识不同数据库在架构设计、功能和性能方面的差异是至关告急的。本文对 Apache IoTDB 和 InfluxDB 开源版进行了具体对比,重点分析了它们在分布式架构、端边云同步本领和性能方面的体现。通过本文的对比分析,希望能够为开辟者和决策者在选择时序数据库时提供有价值的参考,在复杂多变的物联网和大数据情况中做出最优选择!
  

  

  

  

  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表