降本增效创未来——云原生多模数据库Lindorm 2022双11总结

降本增效创未来——云原生多模数据库Lindorm 2022双11总结在这五年中,Lindorm 架构从基于 HBase 深度改造的 1.0 架构版本演进到了当前统一在同一个分布式文件系统之上融合了多种存储引擎、数

大家好,欢迎来到IT知识分享网。

作者:老滚、那珂、正研、李子、天引

1. 前言

2022年是多模数据库 Lindorm 全面支撑集团双11大促的第五个年头。在这五年中,Lindorm 架构从基于 HBase 深度改造的 1.0 架构版本演进到了当前统一在同一个分布式文件系统之上融合了多种存储引擎、数据模型的 2.0 架构版本。目前 Lindorm 也在朝着云原生、一体化、更紧密的多模融合方向孕育着新一代架构演进。

降本增效创未来——云原生多模数据库Lindorm 2022双11总结

过去十多年,得益于内部业务对 Lindorm 持续的需求牵引,推动了 Lindorm 不断的技术演进和体验提升,全面服务于淘宝、天猫、支付宝、网商、菜鸟、阿里妈妈、高德、优酷、钉钉、大文娱等各个业务板块,满足应用对于海量结构化、半结构化数据的存储处理需求,目前 Lindorm 在内部已部署超4万个节点数据规模超500PB。

降本增效创未来——云原生多模数据库Lindorm 2022双11总结

在2022年双11中,Lindorm 全天平稳运行,日吞吐量39.1万亿次,平均响应时间低于3毫秒,其中读请求峰值3.68亿次/秒写请求峰值2.22亿次/秒,有效支撑了双11指挥室大屏、手淘消息、物流轨迹等核心场景。同时,今年是 Lindorm 在云上商业化的第二个年头,在诸多外部客户的双11战役中也逐渐发挥越来越大的作用。

纵观整个2022年,内外大环境都发生了剧烈的变化。同时随着阿里云数据库“四化”战略的提出,作为一款阿里云自研的云原生多模数据库产品,将如何向着“云原生化”,“平台化”,“一体化”,“智能化”进一步演进,也是 Lindorm 当今发展过程中需要不断去抬头对齐的目标,希望通过本文的梳理总结,可以有助于我们更清晰地向未来前进。

2. 问题与挑战

2022年全年的经济形势呈现出不稳定的态势,这迫使整个互联网行业都要从以往大开大合式的发展逐步走向精耕细作式的发展。因此在经济大环境的影响下,整个2022年可以很明显地感受到来自以下几个方面的重点需求:

2.1 业务降低成本的需求

互联网的精耕细作首先体现在对降低成本的追求上。在大规模数据库的运用中,通常数据存储成本便会占到整个数据库使用成本的50%以上;同时,在追求低成本的压力之下,客户业务也会追求以成本更低的CPU、内存资源完成与以往同等水平的运算能力。

以集团业务为例,2022年开年开始,各个BU的成本压力都很巨大,很多 Lindorm 使用方都表达了降低成本的诉求,代表性需求如下:

  • 菜鸟物流

出于2022年整体经营需要降本增效的目标,希望使用 Lindorm 的场景可以做到在线服务能力不变的情况下,成本下降20%以上

  • 阿里云物联网平台

IoT 平台重度依赖时序数据库的使用,满足亿级设备的高并发吞吐写入需求,在新财年的成本压力下,需要在承接住日益增长的线上负载以及新增功能需求的同时,将使用成本降到原先的1/2以下

2.2 企业提高效率的需求

随着人力资源的吃紧,越来越多的客户希望更加聚焦于自身业务的开发,而减少对基础设施使用和维护的人力投入,内外客户也开始将搬站上云当成一种增效降本的选择。典型地,在大数据存储与处理领域,许多互联网公司都会首选 HBase、Hadoop/Spark 作为它们的大数据解决方案,但是 HBase 以及 Hadoop 生态的技术复杂度,使得企业的应用维护难度较大,期望能在云端找到平滑替换方案,提升效率,代表性需求如下:

  • A+流量分析平台

作为全集团采集&流量分析一站式服务平台,为了更好的升级A+产品,对老A+进行全新升级,解决老A无法迭代、运维困难等问题。特别是原本数据存储使用 HBase+Phoenix 的架构由于社区不够活跃,迭代和维护难以为继。迫切希望能够寻找新的方案既能无缝迁移已有的HBase 数据,又能提供足够的SQL能力支撑平台后续的功能迭代。

  • 互联网头部客户

不少互联网客户过去投入大量研发资源支撑起大规模自建 HBase 和 Hadoop 集群的运用与维护,但随着整体公司研发战略的调整,人力投入大幅减少,同时在遇到问题时很难从社区获取的足够技术支持,期望能有一种更高人效的方案支撑现有业务。

2.3 技术上的挑战

Lindorm 在阿里内部经过十多年的历练打磨,其成熟稳定的能力能够很好匹配业务对于海量数据管理的高效、低成本的需求,一方面,Lindorm 脱胎于 HBase 的底层技术,加入了大量的自研核心技术使得能以更优的性价比去引导客户将应用从自建的 HBase 搬迁到云上 Lindorm;另一方面,Lindorm 的多模融合设计理念能够有效降低业务的研发使用成本以及运维难度。

但同时,上述两类业务需求也对 Lindorm 提出了更高的要求与挑战:

  1. 如何通过技术手段进一步切实地降低大规模数据的存储成本。
  2. 如何满足外部互联网企业上云的同时兼容开源标准避免锁定在特定云厂商的苛刻要求。
  3. 如何让业务更加简单便捷地接入Lindorm从而提升效率。
  4. 如何提升Lindorm在不同业务场景下的吞吐性能。

3. Lindorm 的能力演进回顾

围绕着上文中提出的技术挑战,Lindorm 在整个2022年度针对降本提效两个方面进行了一系列能力建设:

3.1 降本方面的能力建设

3.1.1 字典压缩实现无感降本

Lindorm 宽表是基于 LSM-Tree 引擎构建数据存储。在单个 SSTable 文件内部,天然就适合使用压缩算法压缩分块,降低空间占用节省成本。Lindorm 宽表引擎在通用压缩算法上更进一步,结合 ZSTD 深度定制,推出了字典压缩能力。

Lindorm 内部会自动提取数据样本采样分析,根据数据特质,智能选择合适的编码压缩参数,并提取公共字典,消除压缩算法中的字典结构带来的额外开销,进一步提升了数据的压缩比率与压缩速度。同时,字典压缩的开启对业务无感,无需业务改造,用户只需要变更表配置,即可获得更高的压缩率。字典压缩在集团内与公共云上被大量应用,帮助业务降低成本。

落地案例

  • 菜鸟物流的 Lindorm 集群,通过字典压缩、冷热分离、容量性存储等核心技术的落地应用,实现了在线服务能力不变的情况下,总体成本下降20%。其中,在末端履行数据场景,通过开启字典压缩特性,80%的表取得了比较明显的效果,平均存储减少15%+。
  • 国泰产险技术引入 Lindorm,通过字典压缩、冷热分离等技术实现了数据存储成本降低75%。
  • 某互联网客户,将友商云上自建的 HBase 迁移至 Lindorm 并开启字典压缩后,存储空间直降50%。因此,采用了 Lindorm 后其存储成本大幅降低。

3.1.2 本地盘HDD与ESSD异构副本

面向海量数据(>100TB)低成本存储的需求,通过 HDD本盘 ECS 构建 Lindorm 实例,仍然是业务最具性价比的选择。本地盘大数据型 ECS 的存储与计算可被 Lindorm 完全使用,资源利用率更高。

Lindorm 始终坚持云原生,充分挖掘云的弹性能力,催生出了新的 Lindorm 存储形态:本地盘 ECS 上挂载 ESSD,通过 LindormDFS 异构副本实现1副本 ESSD+2HDD 冗余,并结合多模引擎层冷热分离的内核能力,实现业务成本的显著优化。

举一个具体点的应用例子:业务每天产生800G轨迹信息,需要保存1年,总数据量约300T。最近1周内的数据作为热数据,会被频繁地在线查询;而一周后的数据则视作冷数据,查询频率较低。在 Lindorm 本地盘实例上其存储机制如下:

  • 创建一张表,存储轨迹数据,并设置冷热分界线为一周
  • 一周内的热数据使用1副本 ESSD云盘+2副本HDD 的存储策略,ESSD云盘 容量可按需购买,仅需使用800G * 7 = 5.6T的云盘空间。热数据访问通过 ESSD云盘 得到加速。
  • 一周外的冷数据使用 EC 纠删码方式编码存储,相比3副本的3倍存储放大,纠删码只需1.375倍空间进行数据冗余。实现历史数据的低成本存储。

落地案例

Lindorm 宽表通过多种开源标准API支持开源日志系统Loki的数据存储。日志包数据以 Blob形式存放,通过 S3 API 访问。索引数据以表格行存形式存放,通过CQL协议访问。面对Grafana Loki最近一小时数据的突发海量数据拖取查询,利用 ESSD云盘异构副本能力对一小时内写入数据进行加速,解决HDD带宽和iops能力不足的问题。峰值流量翻倍。

降本增效创未来——云原生多模数据库Lindorm 2022双11总结

3.1.3 时序数据专用压缩算法

Lindorm 时序引擎内核层借助 TSM 架构(面向时序数据特征设计的类似 LSM Tree 架构)实现了时序数据的高效写入,并采用定制的时序压缩算法达到了更优的数据压缩比。

在 TSM 架构中,用户数据会先写入WAL文件和内存 Memtable 中,一旦 memtable 写满后,会开启一个新的 memtable 来写入新的数据,同时旧的 memtable 会 flush 到磁盘,成为 TSFile。TSFile 是一种时序定制化的文件格式,通过 Delta-of-Delta、Xor、ZigZag、RLE等压缩算法对时序数据进行高效压缩,随着 Compaction 的进行,数据的压缩率也便会进一步提升,最高可达15:1的压缩率比。

落地案例

在阿里云物联网平台的应用场景中,底层的时序数据存储由早先的 TSDB 2.0 架构升级到 Lindorm 时序引擎后,得力于专用时序压缩算法的高压缩率,整个方案的成本节省了50%以上

降本增效创未来——云原生多模数据库Lindorm 2022双11总结

3.1.4 面向海量时间线的性能提升

时序场景中一个常见的课题是随着时间的推移往往会产生海量的时间线,给时序数据库的查询带来巨大挑战。具体而言,会体现在以下三种典型场景:

  • 容器监控场景下会产生大量短生命周期的时间线的迅速膨胀现象。
  • 日志监控场景存在大量时间线生成,但每条时间时间线上的数据点分布稀疏。
  • 系统、设备监控场景存在长周期的海量时间线

对于时序引擎,如何解决监控场景下海量时间线的索引效率、长周期查询、海量时间线实时聚合问题一个业界共通的挑战。

Lindorm 时序引擎提供了如下几个技术手段来应对这些难题:

  • 预降采样能力,应对长周期数据查询问题预降采样能力是在用户写入时实时降采样存储,降采样之后的数据和原始数据分开存储,在用户进行长周期降采样数据查询时,直接命中降采样之后的数据和数据文件,大幅度减少基于原始数据的计算量和文件数量,提升查询效率。
  • 多级分片能力,应对时间线膨胀问题在节点之间基于时间线进行哈希分片,每个分片内部再基于时间进行分区。每个时间分区内部保存一段时间的数据,并独享索引,并在时间分区内部再提供可选的数据分区。通过这样的数据多级分区抑制时间线膨胀带来的查询性能问题。
  • 时间线预聚合能力,实现海量时间线下的聚合查询优化时序引擎通过连续查询(Continuous Query)的能力,提供了一种类似批处理的能力,能够对于写入的数据进行持续的计算,对于写入的数据进行近乎实时的预聚合,从而可以有效解决大量时间线的聚合查询问题。

借助上述能力的建设,实现了海量时间线业务中查询性能的提升,解决了时序应用场景中一类共性问题。

落地案例

某互联网社交平台的业务监控场景中,用户有3-4亿的活跃时间线实时写入,单次查询命中多达百万时间线秒级返回。用户由自建的 Apache Durid 迁移到 Lindorm 后,查询响应延时大幅降低,成本节省50%以上

降本增效创未来——云原生多模数据库Lindorm 2022双11总结

3.2 提效方面的能力建设

3.2.1 深度兼容HBase通信协议

Lindorm 是发源于 HBase 的自研 NoSQL 数据库产品,并最终在性能、成本、稳定性上都优于原生的 HBase。不过 HBase 仍是开源技术领域中提供海量数据存储服务的代表性 NoSQL产品,Lindorm 为了更好的服务这个市场,在产品研发的早期便通过客户端兼容的方式提供了一个兼容 HBase 标准API 的 SDK 满足基于 HBase API 的应用低成本接入 Lindorm 的需求。

这个技术方案对于习惯 HBase 技术栈的开发人员编写新的业务是一个绝佳的方案,但是在搬山上云的场景下也逐渐暴露出若干缺点:

  • 部分客户业务并非是直接调用 HBase API,而是依赖于捆绑了 HBase 原生客户端的开源解决方案。这些方案中的原生 HBase 客户端无法替换。如使用华为云的 Hive 以 HBase兼容模式访问 Lindorm。
  • 客户业务架构复杂,大量服务应用在线上运行,逐个应用替换客户端繁琐,甚至找不到人升级应用。
  • 部分客户希望上云,但却不想被特定云服务厂商锁定,希望使用标准的开源接口。

针对这些需求,Lindorm 设计并实现了协议级别的深度兼容,通过增加一个 HBase Proxy 模块完全支持 HBase 的原生协议。

该方案相对于 Lindorm 的原生客户端,读写链路上新增了一个代理,因此整体链路会多一个环节。但是得益于 Lindorm 多年以来持续的性能优化,并且通过短路优化技术,将兼容开源HBase 客户端直连场景的性能优化至与使用 Lindorm 原生客户端的场景持平。帮助用户在实现 HBase 无缝搬站的同时,也可享受到 Lindorm 在阿里集团内沉淀多年的性能优势。

降本增效创未来——云原生多模数据库Lindorm 2022双11总结

落地案例

  • 在部分互联网头部客户中,由于早期的研发投入对使用的 HBase 客户端做了很多基于业务需求和公司环境的定制开发(比如监控埋点、统一连接、HA切换等),无法直接使用阿里云提供的 HBase 客户端,通过协议兼容能力,可以很好地满足了这种场景的需求,用户可以继续使用他们定制过的 HBase 客户端。
  • 某互联网物流平台将 HBase 从友商云迁移至阿里云 Lindorm,由于 Hive 服务仍使用的是友商云的托管服务。通过协议兼容能力,打通了跨云的链路,实现了顺滑的迁移。

3.2.2 更加高效易用的SQL能力

Lindorm 的 SQL 能力经过这两年的发展已经初具规模,随着 Lindorm 各个引擎之间的融合程度越来越高,Lindorm 的 SQL 引擎也将作为 Lindorm 产品的统一接口去承接对各个引擎的数据访问。

但是 Lindorm SQL 作为执行 OLTP 型业务的接口,其能力的完备度早先存在一些不足。比如,对于在线业务中常见的小范围 ORDER BY、GROUP BY 这样的计算时常会触发全表扫描,导致性能不高。针对这样的问题,Lindorm 的 SQL 与存储引擎紧密结合,基于存储引擎提供的数据近端计算能力,在优化器中进行了深度的优化,实现了大量计算能力的下推。比如在与宽表引擎协同时实现排序、分组聚合的下推;在与时序引擎协同时实现了时间线扫描、降采样等特色计算能力的下推,使得查询中流入 SQL 引擎的结果量级大幅下降、SQL引擎查询计划的节点深度减少,实现了查询性能的提升。

落地案例

集团A+业务的架构升级项目中,基于 SQL 的 Ads 结果存储场景选择了使用 Lindorm 替换原有的 Phoenix + HBase 的方案。同等计算资源下查询性能得到了提升的同时,成本降低为原先的1/2。同时,全面采用 Lindorm SQL 能力,支撑了平台迭代开发分析洞察、URL 搜索、留存分析等能力。

降本增效创未来——云原生多模数据库Lindorm 2022双11总结

3.2.3 更加丰富的数据类型

随着万物互联时代的到来,智能互联化是一个不可逆转的趋势,存在了百年之久的汽车行业,也在物联网时代焕发出新生。在新兴的车联网领域中有以下三类不同的参与者,他们都面临着不同的痛点:

  • 车载信息服务提供商(TSP)有大量的数据需要从车辆回传到后端平台去做存档或者车辆的诊断(比如新能源汽车国标(GB/T 32960)要求必须能够将新能源车的近期数据保存以便进行回溯),因此对大吞吐的数据写入能力是强需求。同时,TSP 往往还需要提供一些与车辆轨迹相关的增值服务,因此也普遍需求对时空轨迹数据进行高效查询的能力。
  • 自动驾驶厂商厂商往往要从测试车上采集大量的音频,视频和雷达数据来做AI训练。而这些数据可能一个包传上来就几十MB,甚至几百MB。因此他们普遍需要能够高效处理大文件的能力。
  • 政府监管方为代表的平台管理这类用户通常管理一个地域所有的车辆或者路网信息,需要面对海量的信息上报。但这些数据往往只用来归档存储,数据价值密度不高。因此他们需要在相对低成本的前提下快速地进行BI分析,产生报表指导决策。

在这些需求的背景下,Lindorm 通过融合多种引擎的能力,提供了以下功能,很好地解决了上面的问题:

  • Geo类型 Lindorm 团队和达摩院 Ganos 团队合作,内置了达摩院空天数据库引擎 Ganos,原生支持地理空间类型及相关算子,可以一站式的解决海量轨迹场景的存储和各类查询需求。在 Lindorm 中可以使用 SQL 语法非常便捷地处理各类时空查询场景,在查询性能上,要大幅领先业界已有系统2~3倍。
  • Blob类型 Lindorm 新增支持 Blob 类型,Blob 类型的数据会直接存储在 Lindorm 底层的文件系统中,并使用 Key-Value 分离方式的存储,避免了传统数据库存储大KV数据库时产生的读写放大问题。因此在 Lindorm 中,使用 SQL 就可以轻松存储数GB的大对象数据。
  • JSON类型 JSON 类型给车辆网这种存在大量半结构化数据的场景中带来了不少便利。Lindorm 支持了原生的 JSON 类型,用户可以直接使用 JSON 类型实现整存零取,部分更新,甚至支持给 JSON 的部分列建立二级索引,搜索索引;也可以直接利用 JSON 内的经纬度坐标直接建立 Ganos 时空索引,实现时空查询。

此外,Lindorm 使用 SQL 统一了结构化、半结构化、非结构化数据的使用体验,用户只需要在 Lindorm 中建立一张宽表,通过指定不同列的类型,即可完成对不同结构数据的写入、查询和检索。比如在下面的例子中,在一张表里就可以同时使用基础类型、JSON、BLOB、Geo 等多种类型。

CREATE TABLE vehicle_data ( vehicle_id VARCHAR, vtime BIGINT, vender VARCHAR, vevent JSON, vloc GEOMETRY(POINT), blf_data BLOB, PRIMARY KEY (vehicle_id, vtime) ) WITH (NUMREGIONS='256');

落地案例

  • 在风控场景中,用户利用 Lindorm 的 JSON、Cell TTL 等能力,进一步提升了管理数据的效率。
  • 在车联网场景中,用户利用 Lindorm 的时空数据管理和计算能力,解决了他们存储车辆轨迹、计算电子围栏等多个痛点。

3.2.4 更加高效的离线数据导入

从 Hive 等离线数仓导入数据至 Lindorm 是业务高频使用的一个场景,在早期预置资源的模式下,Lindorm 导入服务所需的资源规模的评估对客户来讲是一个头疼的问题,买少了任务跑的时间长,买多了资源浪费。这是因为离线导入通常是周期性的任务,比如 T+1 或者 H+1,在预置资源的模式下,相当一部分时间资源在空转。

在此背景下我们上线了新版本的通用导入服务,它基于 Lindorm 弹性计算引擎可以做到按量付费,当没有导入任务时不计费,只有任务启动后才根据资源使用计费。另一方面,极致弹性也提升了单个任务的运行效率,原来可能需要100个CPU运行10个小时,现在1000个CPU只需跑1小时,在成本不变的情况下靠弹性提升了10倍的性能。整体看,新版本的 Lindorm导入服务 LTS,通过按量付费+弹性计算的能力,实现离线数据导入的降本增效。

落地案例

在某社区搜索场景,业务需要每日执行数据的离线导入。LTS Bulkload 基于 Lindorm 计算引擎提供的云原生弹性能力,可以按需配置资源以整体较低的成本高性能地完成数据导入。

降本增效创未来——云原生多模数据库Lindorm 2022双11总结

4. 未来的展望

新的一年,Lindorm 将继续围绕“云原生化”,“平台化”,“一体化”,“智能化”战略,将 Lindorm内的各引擎和数据模型融合处理的统一性更加完善,同时落实新一代的 Lindorm 架构设计,推动 DB4AI 技术在 Lindorm 产品上的实现。为集团内外的客户提供更低的成本,更便捷的使用体验,更高的业务构建效率。真正做到“存得起,看得见”。

5. 结束语

Lindorm 的发展,离不开所有客户的鼓励与鞭策,也离不开技术同仁的宣传与推广。感谢各位的支持,也欢迎大家继续给我们提出各种建议,我们一定努力做最好的大数据 NoSQL 产品,众志成城、不忘初心、砥砺前行!

云原生多模数据库Lindorm_多模数据库_工业物联网_数据库-阿里云

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/48531.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信