IoTDB 与 HBase 对比详解:架构、功能与性能

news2024/11/23 1:39:12

708a2ec3a706ac458954b30de9d8bcf8.png

五大方向,洞悉 IoTDB 与 HBase 的详尽对比!

在物联网(IoT)领域,数据的采集、存储和分析是确保系统高效运行和决策准确的重要环节。随着物联网设备数量的增加和数据量的爆炸式增长,开发者和决策者们需要选择合适的时序数据管理系统。Apache IoTDB 和 Apache HBase 是两款广泛应用的数据库,它们在架构设计、性能和功能方面各具特色。

为了帮助用户在时序应用场景中做出更适合的时序数据库选择,本文将从:分布式架构、端边云同步能力、部署易用性、分析与计算能力和性能表现五个方面对 Apache IoTDB 和 Apache HBase 进行详细对比。

01 基本概述

Apache IoTDB(Internet of Things Database)是起源于清华大学的 Apache 顶级项目,也是专为物联网和工业大数据场景设计的高效可扩展时序数据库。

Apache HBase 是一个高性能、面向列的分布式 NoSQL 数据库,基于 Google 的 BigTable 架构设计,运行在 Hadoop 生态系统之上。它利用 Hadoop 分布式文件系统(HDFS)进行数据存储,并通过 Zookeeper 进行分布式协调。

02 对比方向一:分布式架构

Apache IoTDB

Apache IoTDB 原生支持分布式,并针对物联网场景做了大量优化,以最大化分布式集群的可用性、可扩展性和性能。

  • Apache IoTDB 针对大部分时序场景中近期数据操作频繁、历史数据操作较少的特点,设计了专门的数据分区和负载均衡策略

通过该方案,不论设备数量是万级还是亿级,时间范围的跨度是 1 年还是 10 年,IoTDB 分片路由信息的维护成本依然是非常轻量的,而具体的时序数据管理又可以分散到集群中,这使得 IoTDB 在面对大规模时序数据时具有非常高的可扩展性,目前最大测试过 PB 级别的时序数据存储。

59e09222003ff1a0a49b3d62ab402042.png

  • 与业界其他时序数据库相比,Apache IoTDB 是第一个也是目前唯一一个提出并应用共识协议统一框架的系统。用户可以根据性能、可用性、一致性和存储成本等需求,灵活选择不同的共识算法。在共识协议统一框架下,Apache IoTDB 拥有专为 IoT 时序场景设计的高性能共识协议 IoTConsensus、强一致性共识协议 RatisConsensus、 轻量级单副本共识协议 SimpleConsensus,为用户不同的业务需求提供了丰富灵活的配置选择。

  • 提供丰富可观测性指标。Apache IoTDB 在分布式架构的全链路中内置了上千种监控指标,覆盖读写流程、共识算法、负载均衡、系统资源等,可以为用户提供可靠的实时监控。

Apache HBase

Apache HBase 的数据文件底层存储于 HDFS(Hadoop Distributed File System)。因此 Apache HBase 的分布式架构分为计算和存储两层。

Apache HBase 在计算层可以基于日志同步实现多集群多活或单集群内 region 多副本 的 replica 机制,在存储层基于 HDFS(Hadoop Distributed File System)实现存储文件的多副本分布式存储。本文主要探讨 Apache HBase 在存储层,即 HDFS 的分布式架构与设计。

ce9d742032ba130b45bc6988f4840cf9.png

  • HDFS 的核心容错和一致性机制依赖于数据块副本(Replication)。每个文件被拆分为多个 Block(数据块),这些数据块会存储在多个 DataNode 上,并且每个数据块会有多个副本(默认情况下是 3 个)。

  • HDFS 使用了基于 Chain Replication 的 Pipelines 机制来保证副本数据之间的一致性。数据会被串行地写入到各个副本中。假设有三个副本,数据会首先写入第一个 DataNode,然后通过管道的方式传递给下一个 DataNode,依次类推。

二者差异

共识算法灵活性

  • IoTDB 提出并应用了时序数据库界第一个共识协议统一框架。用户可以根据性能、可用性、一致性和存储成本等需求,灵活选择不同的共识算法。

  • HDFS 提供了最小副本数和异步复制等机制加速读写过程,但 HDFS 本质上仍是只有一种共识协议的分布式存储系统,不具备提供多种性能、一致性共识机制的能力,扩展性相对较差。

分布式架构性能

  • IoTDB 拥有为时序物联网场景定制优化的共识协议,配合数据分区和负载均衡策略,可以为物联网时序数据场景提供非常高的性能。

  • HDFS Pipelines 机制通过管道式的顺序写入方式来保障数据的一致性和高可用性。然而,由于 Pipelines 采用串行复制,它在多副本写入时会带来一定的写入延迟,并且在处理 DataNode 故障时需要动态调整管道,可能会影响性能。此外,网络带宽的消耗和副本管理的复杂性也是它在大规模集群中需要应对的问题。

71b094b1a9d7e18215f127994f379a50.jpeg

Apache IoTDB 共识协议统一框架:用户可以灵活使用不同的 IConsensus 实现

36e48747934e9942e366bf62f301cec6.png

HBase Chain Replication 分布式架构

03 对比方向二:边云同步

Apache IoTDB

Apache IoTDB 原生内置流处理引擎,支持端边云同步功能,并拥有良好的性能、可拓展性和可用性等。

f3e51d285d07b5c92dc3c0aad65995b5.png

  • 可以自适应选择流式同步和文件(TsFile)同步,可以在保证全量同步的基础上,尽量降低延迟

  • 允许用户实现自定义的流处理逻辑,可以实现对存储引擎数据变更的监听和捕获、完成对变更数据的处理、实现对变形后数据的向外推送等逻辑。

  • 支持分布式高可用。流处理引擎原生支持进度记录、出错自动重试、断点重算等特性,同时支持 at-least-once 传输语义,保证端到端 100% 一致性。

  • 近存储计算,以最小化 IO、CPU 和网络代价利用数据进行计算,可对核心场景充分优化。将存储引擎  IoTLSM-Tree 中的高压缩率数据存储文件 TsFile 作为传输单位,降低传输的网络流量并减小云端负载。

Apache HBase

Apache HBase 在边云同步能力上并没有针对性的内置功能,主要是因为 HBase 设计之初是为了解决大规模分布式存储和查询问题,主要应用于数据中心或云端的场景,其与 Apache Hive 等大数据栈的连接更为紧密。在端边云同步场景中,HBase 的能力和支持较为有限。

要实现边云同步能力,HBase 需要借助外部框架来进行定制开发。例如,用户可以结合 Apache Flink、Apache Kafka 等流处理框架,将边缘设备的数据实时写入到 HBase 集群中,并通过自定义的同步逻辑实现边缘到云的同步和分析。尽管这种方法在灵活性上较好,但增加了开发和运维的复杂性。

二者差异

原生数据同步

  • HBase 虽然可以通过其异步复制机制(HBase Replication)实现一定程度上的数据同步。然而,这种复制机制主要用于数据中心之间的复制,并不适合高效的边云同步,延迟可能较大。

  • IoTDB 拥有专为边云环境设计的流处理引擎,数据同步更加实时和高效,玩转数据同步。

边侧环境适配度

  • HBase 的集群和存储架构需要依赖 HDFS 和 Zookeeper,这意味着它通常需要较为稳定且高性能的网络环境,限制了其在边缘设备中的应用,使其在边缘场景中的适用性有限,难以在网络不稳定、资源有限的边缘环境中高效运作。

  • IoTDB 针对边侧低带宽、长时间断网、小存储等特点进行了大量优化,使得边侧场景可以轻量运行数据同步任务。 

5b32ef5b8238d27c7dc9ae48bc71a5ac.png

Apache IoTDB 端边云场景的数据同步

04 对比方向三:部署易用性

Apache IoTDB

Apache IoTDB 作为新一代的时序数据管理解决方案,致力于通过更轻量级的架构降低部署难度,特别是在资源占用硬件要求上做了大量优化。相比于传统的分布式数据库,IoTDB 能在许多场景中通过单台机器完成海量时序数据的高效写入和查询工作。这意味着即使在数据规模巨大的情况下,IoTDB 也可以通过一台单机就实现高性能数据处理,而不需要复杂的集群部署。

3208dd192a97b63b22d0d774f201739c.jpeg

Apache IoTDB 不依赖任何外部组件,既支持单机也支持分布式:上图为常见的 3C3D 架构

Apache HBase

HBase 是大数据生态体系中的重要一环,用户通过使用 Hadoop、HBase、Zookeeper 等众多开源生态组件,能够搭建一套大规模的分布式集群,从而服务业务数据应用。但与 IoTDB 相比,Apache HBase 的部署则显得复杂得多。HBase 作为一个分布式数据库,需要依赖多个上下游组件,如 Hadoop(用于 HDFS 文件系统)、Zookeeper(用于集群协调)等。因此,HBase 的部署通常是分布式多节点架构,至少需要多个节点来确保高可用性和数据冗余,这导致了较高的硬件需求和运维负担。

165bab4b94235b8b0fcd5e33960fc75a.png

Apache HBase 的分布式架构需要协调 Zookeeper 等众多上下游组件

二者差异

架构与部署复杂度

  • IoTDB:采用轻量级架构,支持单机部署,适合不需要大规模集群的场景,部署简单且依赖少。

  • HBase:基于分布式架构,依赖 HDFS 和 Zookeeper 等生态组件,通常需要多节点配置,部署复杂度较高。

硬件需求

  • IoTDB:单机即可支持大规模数据处理,硬件要求较低,适合对资源敏感的 IoT 场景。

  • HBase:需要多个节点以确保高可用性和数据冗余,硬件需求高,适合大规模分布式存储。

自动化与运维简化

  • IoTDB:提供一键部署工具,运维简便,无需处理复杂组件依赖,减少了管理成本。

  • HBase:需同时管理 HDFS、Zookeeper 和 RegionServer 等多个组件,运维难度较大。

扩展能力

  • IoTDB:支持动态添加和删除节点,扩展轻量化,便于根据业务需求调整节点数量。

  • HBase:扩展时需综合调优 HDFS、Zookeeper 和 RegionServer,对运维团队的技术要求高。

05 对比方向四:分析与计算能力

HBase 是一个键值存储系统,读写接口较原始,无时间维度的分析接口,并没有专门为时序数据分析提供特定功能,如果需要完成时序数据分析任务,需要与其他大数据分析下游软件如 Apache Spark 进行集成或进行较多的业务代码开发。

HBase 相比, Apache IoTDB 在时序场景下的分析与计算能力上拥有很多特色功能:

1. 支持多种统计聚合,包括 count、max、min、avg、std、sum、first_value、last_value 等常用的计算函数

2. 支持多种时序语义的数据查询,包括按等间隔划分窗口的查询、按某列枚举值划分窗口的查询按照时序记录的连续性划分窗口等特色时序查询能力

3. 支持多种时序数据分析查询,包括数据质量检测、数据画像、异常检测、频域分析、数据匹配、数据修复等查询能力。

4. 支持 AINode 原生机器学习框架,内置包括时序预测、异常检测等类型的算法,同时支持用户加载自身模型直接对数据进行推理,拥有开箱即用的一体化存储和分析方案:安装部署后,可一键进行序列预测。

baf1bbb862fb3c565657b2cf63321f3f.png

06 对比方向五:性能

性能无疑是时序数据库选型中最重要的指标之一。接下来,本文将基于 TPCx-IoT 对 Apache IoTDB 和 Apache HBase 进行性能对比。

TPCx-IoT 是第一个专门设计用于测量物联网网关系统性能的物联网基准。它可以直接比较不同的软件和硬件解决方案。使用拥有数千个变电站的典型电力供应商的运营模式,TPCx-IoT 为通常从大量设备中,摄取大量数据的商用系统提供可验证的性能、性价比和可用性指标,同时运行实时时间分析查询。其灵活的设计使 TPCx-IoT 能够以技术上严格和直接可比的方式,用于评估广泛的系统拓扑和实施方法。

  • TPCx-IoT 定义了三个主要指标(用户主要关注前两个指标):

1. 性能指标:IoTps = SF/T:性能指标代表网关的有效吞吐能力,其中 SF 是 Scale Factor(摄取的数据量), T 是摄取经过的时间,以秒为单位。

2. 性价比指标:$/kIoTps = 1000∗P / IoTps。性价比指标代表系统在 3 年内的总拥有成本, 其中 P 是 SUT 的总拥有成本。

3. 系统可用日期:TPC 定价规范中定义的可用日期。

  • 所有测试结果公开可查~

基于 Apache IoTDB 的 TimechoDB 在性能(IoTps)上可达 10,671,241,而搭载 Cloudera HBase 2.2.3 on CDP 7.1.4 的 Dell Power Edge R7515 测试结果为 1,617,545,IoTDB 性能约为 HBase 的 6.60 倍

基于 Apache IoTDB 的 TimechoDB 的性价比(Price/kIoTps)为 27.91 USD,而搭载 Cloudera HBase 2.2.3 on CDP 7.1.4 的 Dell Power Edge R7515 测试结果为 329.75 USD,IoTDB 的性价比是 HBase 的 11.81 倍

0947dd789a6e9435b2c6bd4760c30f2c.png

07 总结

在选择适合物联网和大数据应用的时序数据库时,了解不同数据库在架构设计、功能和性能方面的差异是至关重要的。本文对 Apache IoTDB 和 Apache HBase 在时序场景下的表现进行了详细对比,重点分析了它们在分布式架构、端边云同步能力、部署易用性、分析与计算能力和性能方面的区别。通过本文的对比分析,希望能够为开发者和决策者在选择时序数据库时提供有价值的参考,在复杂多变的物联网和大数据环境中做出更优的选择!

规上企业应用实例

能源电力:中核武汉|国网信通产业集团|华润电力|大唐先一|上海电气国轩|清安储能|某储能厂商|太极股份

航天航空:中航机载共性|北邮一号卫星

钢铁冶炼:宝武钢铁|中冶赛迪

交通运输:中车四方|长安汽车|城建智控|德国铁路

智慧工厂与物联:PCB 龙头企业|博世力士乐|德国宝马|京东|昆仑数据|怡养科技|绍兴安瑞思

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2237408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何找到系统中bert-base-uncased默认安装位置

问题: 服务器中无法连接huggingface,故需要自己将模型文件上传 ubuntu 可以按照这个链接下载 Bert下载和使用(以bert-base-uncased为例) - 会自愈的哈士奇 - 博客园 里面提供了giehub里面的链接 GitHub - google-research/be…

Qt 学习第十六天:文件和事件

一、创建widget对象(文件) 二、设计ui界面 放一个label标签上去,设置成box就可以显示边框了 三、新建Mylabel类 四、提升ui界面的label标签为Mylabel 五、修改mylabel.h,mylabel.cpp #ifndef MYLABEL_H #define MYLABEL_H#incl…

华为ensp配置bgp(避坑版)

文章目录 前言一、BGP是什么?二、拓扑三、基础配置四、测试五、拓展总结 前言 BGP(Border Gateway Protocol,边界网关协议)是一种在互联网中使用的路径矢量协议。它主要用于在不同的自治系统(AS)之间交换路…

QT最新版6.8在线社区版安装教程

访问QT的官网: Qt | Tools for Each Stage of Software Development Lifecycle 点击 Download Try: 点击社区版最新在线安装: 往下翻网页, 点击下载: 开始安装: 使用--mirror进行启动安装程序&#xff1…

鸿蒙多线程开发——Worker多线程

1、概 述 1.1、基本介绍 Worker主要作用是为应用程序提供一个多线程的运行环境,可满足应用程序在执行过程中与主线程分离,在后台线程中运行一个脚本进行耗时操作,极大避免类似于计算密集型或高延迟的任务阻塞主线程的运行。 创建Worker的线…

海量数据迁移:Elasticsearch到OpenSearch的无缝迁移策略与实践

文章目录 一.迁移背景二.迁移分析三.方案制定3.1 使用工具迁移3.2 脚本迁移 四.方案建议 一.迁移背景 目前有两个es集群,版本为5.2.2和7.16.0,总数据量为700T。迁移过程需要不停服务迁移&#…

在配置环境变量之后使用Maven报错 : mvn : 无法将“mvn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

最近,我在 Windows 系统上安装和配置 Apache Maven 时遇到了一些问题,想在此记录下我的解决历程,希望对遇到类似问题的朋友有所帮助。 问题描述 我下载了 Maven 并按照常规步骤配置了相关的环境变量。然而,在 PowerShell 中输入…

大模型,智能家居的春秋战国之交

智能家居,大家都不陌生。尽管苹果、谷歌、亚马逊等AI科技巨头,以及传统家电厂商都在积极进入这一领域,但发展了十多年之后,智能家居依然长期呈现出一种技术上人工智障、市场上四分五裂的局面。 究其原因,是此前传统家电…

【设计模式】结构型模式(四):组合模式、享元模式

《设计模式之结构型模式》系列,共包含以下文章: 结构型模式(一):适配器模式、装饰器模式结构型模式(二):代理模式结构型模式(三):桥接模式、外观…

众测遇到的一些案列漏洞

文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行…

算法求解(C#)-- 寻找包含目标字符串的最短子串算法

1. 引言 在字符串处理中,我们经常需要从一个较长的字符串中找到包含特定目标字符串的最短子串。这个问题在文本搜索、基因序列分析等领域有着广泛的应用。本文将介绍一种高效的算法来解决这个问题。 2. 问题描述 给定一个源字符串 source 和一个目标字符串 targe…

ThingsBoard规则链节点:RPC Call Reply节点详解

引言 1. RPC Call Reply 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 设备控制 3.2 状态查询 3.3 命令执行 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台,提供了设备管理…

动态规划(简单多状态 dp 问题 1.按摩师 2.打家劫舍 II 3. 删除并获得点数 4.粉刷房子 5.买卖股票的最佳时机(全系列))

面试题 17.16. 按摩师213. 打家劫舍 II740. 删除并获得点数LCR 091. 粉刷房子 (原:剑指 Offer II 091. 粉刷房子)309. 买卖股票的最佳时机含冷冻期714. 买卖股票的最佳时机含手续费123. 买卖股票的最佳时机 III188. 买卖股票的最佳时机 IV 1.…

【VBA实战】用Excel制作排序算法动画续

为什么会产生用excel来制作排序算法动画的念头,参见【VBA实战】用Excel制作排序算法动画一文。这篇文章贴出我所制作的所有排序算法动画效果和源码,供大家参考。 冒泡排序: 插入排序: 选择排序: 快速排序:…

关于Markdown的一点疑问,为什么很多人说markdown比word好用?

markdown和word压根不是一类工具,不存在谁比谁好,只是应用场景不一样。 你写博客、写readme肯定得markdown,但写合同、写简历肯定word更合适。 markdown和word类似邮箱和微信的关系,这两者都可以通信,但微信因为功能…

区块链技术在数字版权管理中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 区块链技术在数字版权管理中的应用 区块链技术在数字版权管理中的应用 区块链技术在数字版权管理中的应用 引言 区块链技术概述 …

基于Spring Boot的在线装修管理系统的设计与实现,LW+源码+讲解

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#…

Ollama 0.4 发布!支持 Llama 3.2 Vision,实现多模态 RAG

“ 阅读本文大概需要5分钟。 前言 最近,Ollama 推出了 0.4 版本,其中最大的亮点就是支持了 Llama 3.2 Vision 模型,该模型具备多模态特性,也就是说能够理解图像并将图像纳入提示词中进行处理,让模型更智能地处理RAG中…

关于若依500验证码问题的求助

关于若依框架中验证码出现500错误的问题,这通常表示服务器内部错误。以下是一些可能的原因及解决方案: 一、配置文件问题 .env.production文件: 确保.env.production文件中的VUE_APP_BASE_API已经修改成服务器上的域名地址,而不…

使用HtmlAgilityPack+PuppeteerSharp+iText7抓取IdentityServer4帮助文档

需要学习IdentityServer4的用法,但是在IdentityServer4帮助文档网站(参考文献1)中没有找到下载离线文档的地方,准备使用HtmlAgilityPackPuppeteerSharpiText7将网站内容抓取生成离线PDF文档,便于本机学习、查看。   …