HiTSDB时序数据库引擎在服务于阿里巴巴集团内的客户时,根据集团业务特性做了很多针对性的优化。然而在HiTSDB云产品的打磨过程中逐渐发现,很多针对性的优化很难在公有云上针对特定用户去实施。于此同时,在公有云客户使用HiTSDB的过程中,发现了越来越多由于聚合查询导致的问题,比如: 返回数据点过多会出现栈溢出等错误,聚合点过多导致OOM,或者无法完成聚合,实例完全卡死等等问题。这些问题主要由于原始的聚合引擎架构上的缺陷导致。因此HiTSDB开发团队评估后决定围绕新的聚合引擎架构对HiTSDB引擎进行升级,包含:存储模型的改 【时序数据库HiTSDB与分布式流式聚合引擎】 时序数据库HiTSDB,作为一款专为处理时间序列数据设计的存储系统,尤其在阿里巴巴集团内部广泛应用并不断优化。然而,随着公有云服务的发展,HiTSDB面临了一系列挑战,尤其是在处理聚合查询时,如数据点过多导致的栈溢出、内存不足(OOM)或无法完成聚合等问题。这些问题的根本原因在于原始聚合引擎架构的局限性。为了解决这些问题,HiTSDB团队计划对引擎进行升级,包括存储模型的改造、索引方式的升级、引入流式聚合机制、数据迁移以及性能评测。 **1. 时序数据存储模型** 时序数据模型通常由时间轴和时间线两部分组成。时间轴表示不断流入的数据,而时间线由指标和数据源(通过一系列标签标识的唯一数据采集点)组成。例如,`cpu.usage`指标可能来自不同机房、应用和实例的组合。 时序数据存储有两种常见的策略: - **时间窗口切分**:如InfluxDB和Prometheus,将数据按时间窗口组织,同一时间窗口内的数据连续存放。这种方式便于写入,但对于乱序数据处理不佳,Prometheus会丢弃迟到数据,而InfluxDB则可能性能下降。 - **时间线切分**:HiTSDB采用这种方式,数据点按照时间线排序存储。它利用HBase作为底层存储,Rowkey由指标、标签和时间窗口组合,确保同一时间线的数据连续。这种方法对低维查询高效,中等维度查询采用流式扫描,极高维度标签查询则通过预聚合服务处理(不在本文讨论范围)。 **2. 热点问题处理** 时序数据的采集周期各异,可能导致热点问题,即某些指标数据过于集中。解决方法是分桶策略,如HiTSDB,除了指标类型外,还使用业务名和主机名作为维度标识,通过时间线哈希值分散写入不同桶,避免数据倾斜。与OpenTSDB相比,HiTSDB无需广播读取,因为其查询过程能精确定位时间线,减少不必要的开销。 **3. 分布式流式聚合引擎** HiTSDB的新聚合引擎旨在解决原始架构的缺陷,提高处理聚合查询的能力。具体改进包括: - **存储模型改造**:可能涉及优化数据分布和存储结构,以更好地支持聚合操作,减轻热点问题,并提高查询性能。 - **索引方式升级**:可能引入更高效的数据索引技术,加快聚合查询的速度。 - **流式聚合**:通过实时处理流入的数据流,实现数据聚合,降低内存消耗,防止栈溢出和OOM等问题。 - **数据迁移**:可能涉及将数据从旧存储模型迁移到新模型,以充分利用新引擎的优势。 - **性能评测**:对新引擎的性能进行深入测试,确保其在各种场景下的稳定性和效率。 HiTSDB的分布式流式聚合引擎升级是针对公有云环境的挑战,尤其是聚合查询问题,所采取的重要步骤。通过这些改进,HiTSDB能够提供更稳定、高效的时序数据分析能力,满足各种业务需求,特别是面对大规模并发和复杂查询场景。


剩余9页未读,继续阅读




























- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 高阶逻辑定理证明:第15届国际会议论文集
- (源码)基于CC++编程语言的简易操作系统.zip
- (源码)基于意图识别的假肢控制系统.zip
- (源码)基于ARM CortexM处理器的迷宫游戏开发.zip
- (源码)基于编程语言的Smart Utility Vehicle.zip
- 基于 MAX78000 与 SSD 目标检测网络的猫咪识别喂食器:借助单片机 CNN 加速器实现神经网络计算
- (源码)基于Python和DGL的图计算实验框架MyPaGraph.zip
- 从零开始设计并训练神经网络,助你透彻理解它
- (源码)基于Python的JSON数据图形化展示系统.zip
- (源码)基于Arduino的传感器读取系统.zip
- 电气工程手册:计算机与数字设备精华
- (源码)基于Arduino框架的IoT环境监控系统.zip
- (源码)基于Python的模拟村庄发展项目-村庄模拟器.zip
- (源码)基于Keil C51编程语言的MCS52单片机打地鼠游戏.zip
- 基于基于常用 CNN 神经网络实现超 30 万条手写数学符号识别
- (源码)基于C++的太阳能飞机控制系统.zip



评论0