云原生多模数据库Lindorm权威指南|从入门到精通(持续更新 v2021.2)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
简介: Lindorm是阿里云发布的业界首款云原生多模数据库,支持宽表、时序、文件等多种类型海量数据的低成本存储、检索与分析,兼容HBase/Cassandra、OpenTSDB、Solr、SQL、HDFS等多种开源标准接口,希望通过本指南,可以给开发者给更多的了解和使用指导,本文将持续更新

前言

2020年,阿里云发布了业界首款云原生多模数据库Lindorm,新用户免费试用,技术交流钉钉群:35977898,更多内容请参考链接

一、Lindorm是什么

1.1 产品简介

Lindorm是一款适用于任何规模、多种类型的云原生数据库服务,支持海量数据的低成本、实时在线的存储检索分析,提供宽表、时序、搜索、文件等多种数据模型,兼容HBase、Cassandra、Phoenix、OpenTSDB、Solr、SQL、HDFS等多种开源标准接口,是互联网、IoT、车联网、广告、社交、监控、游戏、风控等场景首选数据库,也是为阿里巴巴核心业务提供关键支撑的数据库之一。

image.png

1.2 技术背景

面对多模数据管理的应用需求和云原生的技术趋势,顺应云计算、5G/IoT时代的发展需求,阿里云发布了业界首款云原生多模数据库Lindorm,基于存储计算分离、多模共享融合的云原生架构,具备极致性能和扩展性,让系统架构简洁、高效,极大降低系统维护成本和海量数据存储成本。

更多技术背景介绍,可以参考 https://developer.aliyun.com/article/776156

二、可以做什么

2.1 功能

Lindorm是一个多模型的数据库,选择不同的模型,可以发挥不同的功能。与此同时,这些模型可以被混合使用,起到1+1>2的效果,提升应用开发维护效率,降低数据存储管理成本。

2.1.1 宽表模型

拥有和HBaseCassandraPhoenix一样的宽表数据模型,熟悉这几个数据库的用户可以直接把Lindorm当成HBase、Cassandra、Phoenix的云原生版本使用,无缝兼容它们的开源标准接口,并提供更低成本、更好弹性、更强能力。


熟悉MySQL/PostgreSQL等关系型数据库的用户,可以把Lindorm当成一个容量规模无限伸缩、使用成本低很多的关系数据库使用,Lindorm也提供标准SQL接口,但在事务能力上不如关系型数据库,非常适合有降低成本和规模扩展需求的关系型数据库用户,比如做历史库、数据归档、元数据库等。


熟悉Mongo/Dynamodb等NoSQL数据库的用户,也可以将Lindorm作为上云后的替换选择,提供更低成本、更强功能,不过Lindorm目前没有兼容性接口,需要自行适配。


关于LindormTable的更多特性介绍,可以参考 https://help.aliyun.com/document_detail/174647.html

2.1.2 时序模型

拥有和InfluxDB、OpenTSDB一样的时序数据模型,熟悉这几个数据库的用户可以直接把Lindorm当成InfluxDB、OpenTSDB的云原生版本使用,目前无缝兼容开源OpenTSDB接口。

时序模型是一种特别适合时间序列数据的模型,比如Metrics,是APM/IoT场景中设备/系统等核心指标数据的主流存储选择。


关于LindormTSDB的更多特性介绍,可以参考 https://help.aliyun.com/document_detail/182269.html

2.1.3 搜索模型

拥有和ElasticSearch、Solr一样的搜索数据模型,熟悉这几个数据库的用户可以直接把Lindorm当成ElasticSearch、Solr的云原生版本使用,目前无缝兼容开源Solr接口。

关于LindormSearch的更多特性介绍,可以参考 https://help.aliyun.com/document_detail/174715.html

2.1.4 文件模型

拥有和分布式文件系统一致的数据模型,熟悉HDFS的用户,可以将Lindorm当成HDFS的云原生版本使用,无缝兼容其开源标准接口,并提供更低成本和更强能力。

熟悉对象存储的用户,如果将其应用在大数据、数据湖等场景,可以把Lindorm作为一个更好的云原生存储选择,在目录操作性能、吞吐带宽方面将获得非常大的提升。


关于LindormFS的更多特性介绍,可以参考 https://help.aliyun.com/document_detail/185153.html

2.2 优势

Lindorm是一款主打低成本、弹性、多模融合特点的云原生数据库,特别适合于互联网、物联网中的大数据场景,提供实时在线的存储、检索、分析能力。

2.2.1 低成本,使用成本最低的数据库之一

  • 提供性能型、标准型、容量型多种存储规格,可满足不同场景的性价比选择。
  • 多种引擎共享统一的存储池,减少存储碎片,降低使用成本。
  • 容量型存储单价为业界最低标准,大幅低于基于ECS本地盘自建。
  • 内置深度优化的压缩算法,数据压缩率高达10:1以上,相比snappy提高50%以上。
  • 内置面向数据类型的自适应编码,数据无需解码,即可快速查找。
  • 支持智能冷热分离,多种存储规格混合使用,大幅降低数据存储综合成本。

2.2.1 云原生弹性,无需容量规划

  • 基于存储计算分离的全分布式架构,支持计算资源和存储资源的独立弹性伸缩。
  • 存储资源支持秒级在线扩缩,计算资源(宽表引擎、时序引擎、搜索引擎)支持分钟级在线伸缩。
  • 提供按需即时弹性、按使用量付费的Serverless服务,自适应弹性伸缩,无需人工容量管理。

2.2.1 多模融合,应用架构大大简化

  • 多模型之间支持数据互通,搜索引擎可无缝作为宽表引擎、时序引擎的索引存储,加速复杂条件查询。
  • 支持统一的SQL访问,以及跨多模引擎关联查询。

2.2.1 丰富生态,与主流大数据、数据库生态无缝打通

  • 支持与MySQL、HBase、MongoDB等系统的平滑在线数据搬迁。
  • 可轻松与Spark、Flink、DLA、MaxCompute等计算引擎无缝对接。
  • 支持无缝订阅Kafka、SLS等日志通道的数据,并具备快速处理能力。
  • 通过Lindorm Stream,可以实时订阅Lindorm的增量变更数据,自定义消费。


更多Lindorm的优势介绍,可以参考链接

2.3 应用领域

基于Lindorm的多模型能力,可以大幅简化很多领域的数据架构,典型如下:

2.3.1 大数据存储分析

企业在构建大数据架构过程中,需要面对结构化、半结构化、非结构化等多形态数据,如原始日志(文件)、中间状态(键值、文件)、维表(键值、表)、结果数据(表、文件)等,非常适合使用多模数据库Lindorm进行统一存储,其支持低成本存储、实时查询、批量归档、数据库导入、高效的全增量通道等能力,可轻松与Hadoop、Spark等大数据计算引擎集成,完成数据的大规模在离线处理和交互式分析。

image.png

2.3.2 物联网平台

在物联网场景,大量设备会产生时序状态、音视频、日志文件等多种形式数据,使用多模数据库Lindorm可以统一存储这些结构化、非结构化数据,结合AI算法库和大数据计算平台,提供物联网数据的统一在线存储检索与分析,低成本、高效率地处理海量数据。

image.png

2.3.3 可观察性系统

企业在构建可观察性系统时,需要面对Metrics、Tracing、Logging三种数据,使用多模数据库Lindorm可以统一存储这些数据,并且进行在线检索与分析,大幅简化系统架构

image.png

2.3.4 低成本数据库

对于数据体量大或增速快的业务,使用关系型数据库,往往意味着比较高的成本。若业务本身的数据价值密度不高,也没有复杂的事务需求,使用多模数据库Lindorm会是更好的性价比选择,既能满足业务对于数据库的在线需求,还能享受近似于离线数仓的存储成本,比如,社交聊天、Feed流、账单、游戏录像、访问日志等等。

image.png

三、场景实践

3.1 阿里经济体内部实践

Lindorm在阿里巴巴集团内部成熟业务中得到广泛使用。

image.png

3.2 大数据场景:海量数据存储与分析

Lindorm支持海量数据的低成本存储、快速批量导入和实时访问,具备高效的增量及全量数据通道,可轻松与Spark、MaxCompute等大数据平台集成,完成数据的大规模离线分析。

image.png

3.3 广告场景:海量广告营销数据的实时存储

使用Lindorm存储广告营销中的画像特征、用户事件、点击流、广告物料等重要数据,提供高并发、低延迟、灵活可靠的能力,帮助您快速构建领先的实时竞价、广告定位投放等系统服务。

image.png

3.4 金融&零售:海量订单记录与风控数据的实时存储

使用Lindorm存储金融交易中的海量订单记录,金融风控中的用户事件、画像特征、规则模型、设备指纹等重要数据,提供低成本、高并发、灵活可靠的能力,帮助您构建领先的金融交易与风控服务。

image.png

3.5 车联网:车辆轨迹与状况数据的高效存储处理

使用Lindorm存储车联网中的行使轨迹、车辆状况、精准定位等重要数据,提供低成本、弹性、灵活可靠的能力,帮助您构建领先的网约车、物流运输、新能源车检测等场景服务。

image.png3.6 互联网社交:高效、稳定的社交Feed流信息存储

使用Lindorm存储社交场景中的聊天、评论、帖子、点赞等重要数据,提供易开发、高可用、延迟的能力,帮助您快速构建稳定可靠的现代社交Feed流系统。

image.png四、解决方案

4.1 基于Lindorm的互联网账单解决方案

请参考 https://developer.aliyun.com/article/776252

4.2 基于Lindorm的大数据用户画像解决方案

请参考 https://developer.aliyun.com/article/776427

4.3 基于Lindorm的HDFS上云解决方案

请参考 https://help.aliyun.com/document_detail/187183.html

4.4 基于Lindorm的车联网数据存储处理方案

请参考 https://developer.aliyun.com/article/781046

4.5 基于Lindorm的低成本RDS历史库方案

请参考 https://help.aliyun.com/document_detail/202224.html


五、操作实践

六、技术原理

七、咨询交流

  • 钉钉群:Lindorm技术交流群

image.png

相关实践学习
Lindorm AIGC:十分钟搞定智能问答 + 多模态检索
通过使用Lindorm AIGC体验版服务,十分钟搞定定制化智能问答和多模态检索。
相关文章
|
1月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
96 2
|
28天前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
39 3
SpringBoot入门 - 添加内存数据库H2
|
1月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
51 4
SpringBoot入门(4) - 添加内存数据库H2
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术入门及实践
【10月更文挑战第39天】在数字化浪潮的推动下,云原生技术应运而生,它不仅仅是一种技术趋势,更是企业数字化转型的关键。本文将带你走进云原生的世界,从基础概念到实际操作,一步步揭示云原生的魅力和价值。通过实例分析,我们将深入探讨如何利用云原生技术提升业务灵活性、降低成本并加速创新。无论你是云原生技术的初学者还是希望深化理解的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
16天前
|
Kubernetes Cloud Native API
云原生入门:从理论到实践的探索之旅
本文旨在为初学者提供一个关于云原生技术的全面介绍,包括其定义、核心原则、关键技术组件以及如何将这些概念应用于实际项目中。我们将通过一个简易的代码示例,展示如何在云原生环境下部署一个简单的应用,从而帮助读者更好地理解云原生技术的实践意义和应用价值。
|
18天前
|
运维 Cloud Native 开发者
云原生技术入门与实践
在云计算的浪潮中,云原生技术以其独特的优势和魅力吸引了越来越多的开发者和企业。本文将从云原生技术的基本概念、核心组件以及实际应用三个方面进行详细介绍,帮助读者更好地理解和掌握这一新兴技术。同时,文章还将分享一些实际案例和经验教训,让读者能够更深入地了解云原生技术的应用场景和发展趋势。
34 5
|
24天前
|
Kubernetes Cloud Native 开发者
云原生入门:从容器到微服务
本文将带你走进云原生的世界,从容器技术开始,逐步深入到微服务架构。我们将通过实际代码示例,展示如何利用云原生技术构建和部署应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
25天前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
1月前
|
Kubernetes Cloud Native 开发者
云原生入门:Kubernetes的简易指南
【10月更文挑战第41天】本文将带你进入云原生的世界,特别是Kubernetes——一个强大的容器编排平台。我们将一起探索它的基本概念和操作,让你能够轻松管理和部署应用。无论你是新手还是有经验的开发者,这篇文章都能让你对Kubernetes有更深入的理解。
|
2月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
36 2
SpringBoot入门(4) - 添加内存数据库H2