基于 Tablestore 的大数据分析 Lambda 架构 - 云原生、弹性、流批一体

简介: 背景 Tablestore 启发自 Google 的 Bigtable 论文,从2009年开始,在阿里云的飞天团队内,开始萌发。经过10年的锤炼,如今在集团内,云上积累了各式各样的客户和场景。这篇文章我们就来介绍下 Tablestore 大数据场景下的架构和用户场景案例。看看自研的分布式存储平台如何通过贴身理解客户场景,带来大数据架构的简化和升级,并助力业务方最终快速

背景

Tablestore 启发自 Google 的 Bigtable 论文,从2009年开始,在阿里云的飞天团队内,开始萌发。经过10年的锤炼,如今在集团内,云上积累了各式各样的客户和场景。这篇文章我们就来介绍下 Tablestore 大数据场景下的架构和用户场景案例。看看自研的分布式存储平台如何通过贴身理解客户场景,带来大数据架构的简化和升级,并助力业务方最终快速落地他们的需求。

 

大数据系统建设中的痛

数据的产生是多式多样,我们根据需求会选择不同的存储产品来存放这些数据,例如订单数据,用户信息数据我们会选用一款 OLTP 数据库,日志数据会选择 SLS 日志服务,或者自建 ELK 的方案。又有一些数据我们希望做实时的 计算,并且在 ETL 后在进行长期存储,这时会把数据双写到 Kafka,利用 Kafka 流式对接计算引擎的能力实现上面的需求。一些非结构化数据又会使用 HDFS/OSS 来进行长期存储。这些数据从存储到可以给计算引擎分析需要经过很长的链路。例如如果你选用了一款 OLTP 数据库,你希望进行实时计算或者定期批量计算。考虑到避免影响 TP 在线业务,通常我们会把数据实时或者定期投递出来,进入 Kafka/AP 数据库再分别实现实时计算和批计算。投递的过程可能会涉及到很多模块,例如 DTS,Kafka,Spark 批计算,Spark Streaming,AP 数据仓库。搭建一整套大数据架构(例如下图的典型大数据 Lambda 架构),不论是对数据库的研发同学,还是运维同学都带来了较高的门槛。模块多了以后,不论是维护成本还是开发成本都会相应提高。同时各个模块的存储,计算资源可能未必能很好的共享,比如写入峰值到来的时候,可能我们的批计算需求并不大,但是此时批计算的集群资源很难直接让实时写入层共享。反过来也一样,批计算的峰值,Kafka的资源,ETL的资源又未必可以给批计算共享。那有没有办法解决这些问题?降低大数据架构的接入门槛,使用成本,提升开发效率,资源利用率呢?我们下一章来说。

image.png

典型的大数据 Lambda 架构

 

云上 Tablestore 的大数据方案

在开始介绍云上大数据架构之前,我们再看下,双十一大促下需要的大数据架构会对存储提出哪些具体的要求呢:

  1. 高吞吐,高可用的大数据架构同时满足弹性和低成本
    1. 做为大数据架构,分析的数据通常是海量的,吞吐决定了大数据分析的时延,如果不能及时处理数据会导致业务的决策滞后,进而让大数据方案大打折扣。
    2. 高可用同样是一个很重要的指标,往往业务上云就是希望可以告别线下自建系统的不稳定性。
    3. 做为双十一大促的主旋律,业务峰值是不可避免的,一套弹性的架构是帮助我们真正实现业务在大促下依然可以高可用,高吞吐的的利器。
  1. 资源成本
    1. 抛开成本谈弹性都是没有意义的,既然选择了云上的方案,我们自然希望可以获得较好弹性的同时,控制成本。
    2. Serverless 云原生的产品形态通常可以比较好的在具备弹性的同时控制我们的成本开销。架构无需在业务低峰期预留很多不必要的资源来防御业务峰值的到来。
  1. 生态完善
    1. 大数据架构中涉及到的概念和需求非常多,这些需求也会对应不同的计算引擎,例如 Spark,Flink,Presto 或者云上的自研组建。存储需要和这些组建,开源产品进行无缝打通,这样可以降低使用的门槛。
    2. 除了计算引擎,数据通道链路的完善也很重要,例如日志类的数据和 OLTP 的数据能方便汇总,数据打宽等。

 

Tablestore 是一款 Serverless 云原生存储引擎,Serverless 相比实例售卖类型的产品,在业务有波峰波谷时天生就有较大的优势,基于 bigTable 的主存储采用行的方式进行存储,可以支撑单表亿级别的QPS。下面列了一些 Tablestore的核心特性:

image.png

Tablestore 除了有强大的主存储满足海量业务的实时读写外,基于主存储的分布式日志提供了完整的数据派生能力(详情参考),海量实时写入 Tablestore 的数据,可以实时订阅进行消费。这样就满足了我们的实时计算需求。

Lambda 架构中除了实时数据写入,实时计算之前,全量数据需要提供高性能扫描能力,Tablestore 采用行列混合,双引擎的架构,在主存储之外内部通过通道服务实时构建一个列存储,支撑 PB 级别数据的高吞吐扫描。同时在海量的数据场景下,我们相信数据是需要分层存储,所以在构建自身列存的同时,我们会帮助用户构建推送云上数据湖的链路,通过全托管的数据湖投递,降低用户的存储成本。

image.png

基于 Tablestore 的 Lambda 架构

 

Tablestore 在专注于打造一款极致性能和成本的存储引擎同时,更加关注完整的计算生态,伴随产品核心功能迭代的过程中,我们和阿里云的几大核心计算引擎做了完善的对接具体包括:

  • MaxCompute 的对接,支持 MaxCompute 计算引擎通过外表的方式直读写 Tablestore
  • EMR Spark 对接,支持流批源表读,流批结果表写,集团内第一款全 Connector 支持的 kv 存储引擎
  • Blink 对接,支持流批源表读,流批结果表写,维表读,集团内第一款全 Connector 支持的 kv 存储引擎
  • DLA 对接,支持 SQL 直接读写 Tablestore 的数据
  • FC 对接,支持流式增量触发器

 

计算的结果集合需要提供丰富灵活的高并发查询,支撑用户生成实时大屏,报表的场景,Tablestore 通过主存储结合丰富的索引能力以及 MPP 类型计算引擎来实现。

image.png

Tablestore Lambda架构结果集合存储和报表展示

 

对 Tablestore 大数据架构感兴趣的同学还可以参考之前的一些架构文章:

  1. 结构化大数据分析平台设计
  2. 数据中台之结构化大数据存储设计
  3. Lambda plus: 云上大数据解决方案
  4. 基于大数据的舆情分析系统架构 - 架构篇
  5. 通过EMR Spark Streaming实时读取Tablestore数据

 

Tablestore 助力双十一集团业务的落地

介绍完 Tablestore 结构化大数据存储引擎的基础能力后,来看看具体的一些双十一集团业务架构:

实时酒店推荐

场景描述:

商家会实时的更新酒店房型库存和报价,酒店的属性等字段。实时选品过程针对同一个酒店不同供应商的库存和报价进行计算和筛选,最终展示出有库存且按照报价质量排序的列表给平台用户,进行酒店搜索的结果返回

架构优势:

  • 在线和分析业务流量隔离
  • 基于 Tablestore 对接流计算的便利性实现源表和维表的存储统一
  • 全链路延时要求高,商品价格变动后,5秒内可以反馈至搜索库

image.png

基于 Tablestore 的酒店选品实时推荐架构

双十一监控作战大屏

场景描述:

海量的机器,业务监控秒级别数据,实时千万级别每秒写入流量,写入 Tablestore 数据实时查询和展示。跨时间的实时聚合,形成分钟级别数据。关键指标的实时聚合和展示,离线批计算提供报表分析能力。

架构优势:

  • 核心单表数据规模达 10 PB,可自定义数据生命周期
  • 核心单表持续每秒写入进 5000 万个数据点
  • 数据实时写入,大大提升数据可见时效性
  • 毫秒级实时查询展示趋势图和报表,查询性能不受单表规模约束

image.png

基于 Tablestore 时序监控大屏场景

全网爬虫系统

场景描述:

海量爬虫高并发高吞吐数据写入,全量数据存储,数据量达 PB 级,多类数据存储,包含半结构化原始数据、结构化标签数据以及分析结果数据,数据写入后需要即时触发数据实时处理,后续需要对接离线处理。

架构优势:

  • 分布式 LSM 引擎数据存储,提供高并发高吞吐写入,PB 级数据存储
  • 通过数据更新捕获,实时触发后续对数据的自定义处理逻辑
  • 与大数据平台实时数据同步,分析结果写入结果表,供应用层实时查询

image.png

基于 Tablestore 的爬虫大数据架构

总结

随着处理数据量,处理实时性的变化,物理硬件处理能力的升级,大数据架构演进是非常迅速的。随着业务数据逐步上云后,大数据处理平台也必然会迁移至云上,相比 TP 类业务,AP 类场景的业务峰值,处理数据带宽可能会更大。我们希望合理的云上大数据架构可以借助存储计算分离,在可控的成本下提供更弹性的数据处理能力,解决各业务在大促到来所遇到的挑战。也让大数据平台的研发人员彻底从基础运维中释放出来,可以全身心的投入满足业务对数据分析平台的需求。如果有兴趣的同学欢迎与我们交流探讨(钉钉交流群:23307953)。

![表格存储.jpg](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.com/570640b907e8d26ccbda030d4b86b2e2.jpg)

相关实践学习
阿里云表格存储使用教程
表格存储(Table Store)是构建在阿里云飞天分布式系统之上的分布式NoSQL数据存储服务,根据99.99%的高可用以及11个9的数据可靠性的标准设计。表格存储通过数据分片和负载均衡技术,实现数据规模与访问并发上的无缝扩展,提供海量结构化数据的存储和实时访问。 产品详情:https://www.aliyun.com/product/ots
目录
相关文章
|
7月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
7月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
7月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
7月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
7月前
|
人工智能 Cloud Native 算法
拔俗云原生 AI 临床大数据平台:赋能医学科研的开发者实践
AI临床大数据科研平台依托阿里云、腾讯云,打通医疗数据孤岛,提供从数据治理到模型落地的全链路支持。通过联邦学习、弹性算力与安全合规技术,实现跨机构协作与高效训练,助力开发者提升科研效率,推动医学AI创新落地。(238字)
494 7
|
7月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
664 2
|
7月前
|
传感器 人工智能 监控
拔俗多模态跨尺度大数据AI分析平台:让复杂数据“开口说话”的智能引擎
在数字化时代,多模态跨尺度大数据AI分析平台应运而生,打破数据孤岛,融合图像、文本、视频等多源信息,贯通微观与宏观尺度,实现智能诊断、预测与决策,广泛应用于医疗、制造、金融等领域,推动AI从“看懂”到“会思考”的跃迁。
620 0
|
7月前
|
人工智能 Kubernetes Cloud Native
Higress(云原生AI网关) 架构学习指南
Higress 架构学习指南 🚀写在前面: 嘿,欢迎你来到 Higress 的学习之旅!
2868 0
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
601 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式