RA战队勇夺上海Major晋级资格 ROG外设助力电竞征途国家安全部:警惕深度伪造技术带来的安全风险一键生成 AI 广告短视频:Tiktok 上线 Symphony Creative Studio 平台参数量仅 0.25B,成都人形机器人创新中心全国首发 R-DDIRM 高速推理模型我国新一代地基红外天文望远镜发布首批观测图像东芝将与日本筑波大学合作,利用基因信息展开睡眠研究日企“山业”推出磁吸式网线:可减少端口损坏,传输速度 10GbpsAI投毒第一案!GPT写的代码竟有后门 程序员被骗1.8万元苹果 iPhone 16 获 DxOMark 147 分超三星 Galaxy S24 Ultra:HDR 照片明亮有活力、肤色自然准确赵明回应荣耀 GT 系列独立,或将肩负再造荣耀目标微软公布 Zero Day Quest 白帽安全竞赛:提交指定类型漏洞奖金至高可翻倍、前 45 名可受邀线下活动印度将鼓励企业本土生产手机等产品零部件:总额 40-50 亿美元我国牵头的首个工业化建造自动标识与数据采集应用国际标准发布京东 11 月 27 日起下线京享值 6000 以上“运费双免”服务,PLUS 会员“免费退换货”不受影响美团刘硕:美团无人机运营规模位列全球第一梯队谷歌“隐瞒文化”曝光:在掌握所有事实之前,不要发表评论英伟达股价大涨,黄仁勋慈善基金会今年至少要再捐 1.2 亿美元消息称莱迪思半导体正考虑收购英特尔 Altera滴滴“12 年老将”张博卸任 CTO,未来将专注自动驾驶业务毕尔巴鄂对阵皇家社会:两支近邻球队将于西甲联赛 “巴斯克德比”中为捍卫荣耀而战
  • 首页 > 数据存储频道 > 数据库频道 > 数据库

    【融云分析】从过剩存储资源到分布式时序数据库的长存储

    2019年03月15日 15:45:41   来源:中文科技资讯

      背景介绍:

      作为一名 Infra,管理平台的各种基础组建以及基本的服务质量是必修的功课,而如何对复杂和繁多的基础平台,甚至包括上面运行的 Ops 系统、业务系统,其稳定性的各项指标都是衡量 Infra 是否称职的非常重要的标准。

      单纯离散的指标本身是没有实际意义的,只有将离散的指标通过某种方式进行存储,并支持对终端用户友好的查询以及聚合,才会真正的有意义。因此,一个性能足够的,分布式的,用户友好且方便下面 DevOps 团队进行部署的 TSDB ( Time Series Database )就成了一个不可缺少的系统。

      常见的 TSDB 包括 InfluxDB , OpenTSDB , Prometheus 等,其中,开源版本的 InfluxDB 虽然优秀,但并不支持集群部署,且 TICK Stack 本身对数据清洗的灵活性支持并不太好,直接使用开源版本,会有统计信息被收集并上报;而 OpenTSDB 由于基于 HBase ,在部署时成本过高,且本身并不是一套完整的监控系统,而基于 Prometheus 与 TiKV 进行开发的话,整个系统可在保持最简洁的同时,也有非常丰富的生态支持。

      因此,基于实际情况,融云最终选择 TiPrometheus 作为 Infra 部的监控平台存储方案。

      项目简介:

      上图为 Prometheus 的官方系统架构图,而实现 TiPrometheus ,用到了上图中没有体现到的一个 Prometheus 的功能:Remote Storage ,如其名所示,其主要功能是给 Prometheus 提供了远程写的能力,这个功能对于查询是透明的,主要用于长存储。而我们当时的 TiPrometheus 实现了基于 TiKV 以及 PD 实现的 Prometheus 的 Remote Storage 。

      核心实现

      Prometheus 记录的数据结构分为两部分 Label 及 Samples 。 Label 记录了一些特征信息,Samples 包含了指标数据和 Timestamp 。

      Label 和时间范围结合,可以查询到需要的 Value 。

      为了查询这些记录,需要构建两种索引 Label Index 和 Time Index ,并以特殊的 Key 存储 Value 。

      l Label Index

      每对 Label 为会以 index:label:# 为 key ,labelID 为 Value 存入。新的记录会 "," 分割追加到 Value 后面。这是一种搜索中常用的倒排索引。

      l Time Index

      每个 Sample 项会以 index:timeseries:: 为 Key,Timestamp 为 Value ,SplitTime 为时间切片的起始点。追加的 Timestamp 同样以","分割。

      l Doc 存储

      我们将每一条 Samples 记录以 timeseries:doc:: 为 Key 存入 TiKV ,其中 LabelID 是 Label 全文的散列值。

      下面做一个梳理:

      写入过程

      1. 生成 labelID

      2. 构建 time index,index:timeseries::"ts,ts"

      3. 写入时序数据 timeseries:doc:: "value"

      4. 写入时序数据 timeseries:doc:: "value"

      查询过程

      1. 根据倒排索引查出 labelID 的集合,多对 Label 的查询会对 labelID 集合求交集。

      2. 根据 labelID 和时间范围内的时间分片查询包含的 Timestamp 。

      3. 根据 labelID 和 Timestamp 查出所需的 Value 。

      Why TiPrometheus

      该项目最初源于参加 PingCAP 组织的 Hackathon ,当时希望与参与者一起完成大家脑海里的想法,其实最重要的事情就是,做出来的东西并不是为了单纯的 Demo ,而是要做一个在实际工作中应用于生产环境的实际能力,且能解决生产中的问题。

      刚开始还有过各种奇思妙想,包括在 TiSpark 上做一套 ML ,Hadoop over TiKV 等,不过这些想法实现起来都有些过于硬核,对于只有两天工作时间就需要完成的项目来说,可能性太小;或者说,如果希望实现 Demo ,所需 Hack 的点过多。而 GEO 全文检索在融云现有的生产上,以及现有的系统中,也并没有需要去填补的大坑,因此,也就没有什么必要去在这方面花费力气去解决一个并不存在的问题。

      由于 IM 服务是一种计算密集型的服务,且服务质量是融云的核心竞争力;而目前存储资源呈现出零散分布的节点,且每个节点的存储资源使用率并不高,为了最大化利用现有的闲置资源,融云最终设计并实现了这套 TiPrometheus 系统。

      Result

      打通了 TiKV 与 Prometheus ,为基于 K , V 存储的时序数据库设计提供了一个可行的思路。

      为 Prometheus 的长存储提供了一套实用的解决方案。

      已经在融云内部生产环境中进行部署与试用,并将逐步替换现有方案。

      文章内容仅供阅读,不构成投资建议,请谨慎对待。投资者据此操作,风险自担。

    [No. S055-2]
    分享到微信

    即时

    新闻

    明火炊具市场:三季度健康属性贯穿全类目

    奥维云网(AVC)推总数据显示,2024年1-9月明火炊具线上零售额94.2亿元,同比增加3.1%,其中抖音渠道表现优异,同比有14%的涨幅,传统电商略有下滑,同比降低2.3%。

    企业IT

    重庆创新公积金应用,“区块链+政务服务”显成效

    “以前都要去窗口办,一套流程下来都要半个月了,现在方便多了!”打开“重庆公积金”微信小程序,按照提示流程提交相关材料,仅几秒钟,重庆市民曾某的账户就打进了21600元。

    3C消费

    华硕ProArt创艺27 Pro PA279CRV显示器,高能实力,创

    华硕ProArt创艺27 Pro PA279CRV显示器,凭借其优秀的性能配置和精准的色彩呈现能力,为您的创作工作带来实质性的帮助,双十一期间低至2799元,性价比很高,简直是创作者们的首选。

    研究

    中国信通院罗松:深度解读《工业互联网标识解析体系

    9月14日,2024全球工业互联网大会——工业互联网标识解析专题论坛在沈阳成功举办。