2.2.2 HBase & Lindorm
Lindorm是一款适用于任何规模、多种模型的云原生数据库服务,支持海量数据的低成本存储处理和弹性按需付费,提供宽表、时序、搜索、文件等多种数据模型,兼容HBase、Cassandra、Phoenix、OpenTSDB、Solr、SQL等多种开源标准接口,是互联网、IoT、车联网、广告、社交、监控、游戏、风控等场景首选数据库,也是为阿里巴巴核心业务提供关键支撑的数据库之一,如图2-10所示。
图2-10 阿里云Lindorm多模能力
Lindorm基于存储和计算分离、多模互通融合的云原生架构,具有弹性、成本低、简单易用、开放、稳定等优势,适合元数据、日志、账单、标签、消息、报表、维表、结果表、feed流、用户画像、设备数据、监控数据、传感器数据、小文件、小图片等数据的存储和分析,其核心能力包括:
融合多模——支持宽表、时序、搜索、文件四种模型,提供统一联合查询和独立开源接口两种方式,模型之间数据互融互通,使应用开发更加敏捷、灵活、高效。
极致性价比——支持千万级高并发吞吐、毫秒级访问延迟,并通过高密度低成本存储介质、智能冷热分离、自适应压缩,大幅减少存储成本。
云原生弹性——支持计算资源、存储资源独立弹性伸缩,并提供按需即时弹性、按使用量付费的Serverless服务。
开放数据生态——提供简单易用的数据交换、处理、订阅等能力,支持与MySQL、Spark、Flink、Kafka等系统无缝打通。
1. 多模介绍
Lindorm系统的多模型的核心能力由四大数据引擎提供,包括:
(1)宽表引擎
宽表引擎面向海量KV、表格数据,具备全局二级索引、多维检索、动态列、TTL等能力,适用于元数据、订单、账单、画像、社交、feed流、日志等场景,兼容HBase、Phoenix(SQL)、Cassandra(CQL)等开源标准接口。
它支持千万级高并发吞吐,支持百PB级存储,吞吐性能是开源HBase(Apache HBase)的3~7倍,P99时延为开源HBase的1/10,平均故障恢复时间相比开源HBase提升10倍,支持冷热分离,压缩率相比开源HBase提升1倍,综合存储成本为开源HBase的1/2。
(2)时序引擎
时序引擎面向IoT、监控等场景存储和处理量测数据、设备运行数据等时序数据,提供HTTP API(兼容OpenTSDB API),支持SQL查询。针对时序数据设计的压缩算法,压缩率最高为15:1。它支持海量数据的多维查询和聚合计算,支持降采样和预聚合。
(3)搜索引擎
搜索引擎面向海量日志、文本、文档等数据,具备全文检索、聚合计算、复杂多维查询等能力,同时可无缝作为宽表引擎、时序引擎的索引存储,加速检索查询,适用于日志、账单、画像等场景,兼容开源Solr标准接口。
(4)文件引擎
文件引擎提供宽表引擎、时序引擎、搜索引擎底层共享存储的服务化访问能力,从而提高多模引擎底层数据文件的导入/导出及分析计算效率,兼容开源HDFS标准接口。
对于目前使用类HBase+Elasticsearch或HBase+OpenTSDB+ES的应用场景,比如监控、社交、广告等,利用Lindorm的原生多模能力,将很好地解决架构复杂、查询痛苦、一致性弱、成本高、功能不对齐等痛点,让业务创新更高效。
那么,如何选择引擎呢?
不同引擎的对应功能略有差异,用户可按需选择一种或多种引擎。阿里云Lindorm各引擎对比如表2-3所示。
表2-3 阿里云Lindorm各引擎对比
2. 存储类型
Lindorm依托云原生存储系统LindormStore,实现了数据存储与计算分离解耦。存储容量独立计费,支持不停机在线扩容。Lindorm实例的存储容量在同实例内的多个引擎间共享。目前Lindorm主要提供了三种存储类型,即容量型存储、标准型存储和性能型存储,它们的适用场景如表2-4所示。
表2-4 阿里云Lindorm各级别存储的适用场景