5分钟迅速搭建云上Lambda大数据分析架构

简介: 主要介绍基于 Tablestore 的数据变更实时捕获订阅能力,实现云上Lambda 架构的轻量化实现数据的实时和离线处理。演示模拟了一个电商订单场景,通过流计算实现订单大屏的场景,做到海量订单实时注入的同时,进行10s的订单统计聚合以及交易金额统计并做实时的大屏幕展示

作者:朱晓然,Tablestore存储服务技术专家


背景
Spark 中国社区联合阿里云 EMR 技术交流群,Tablestore 技术交流群举办了一场联合技术直播。直播的话题是“海量结构化数据的实时计算和处理”,主要介绍基于 Tablestore 的数据变更实时捕获订阅能力,实现云上Lambda 架构的轻量化实现。在直播中有一个demo环节,本篇文章会提供demo环节的简单操作步骤,方便大家后续在阿里云上搭建和demo场景类似的一整套架构,实现数据的实时和离线处理。

演示场景介绍
演示模拟了一个电商订单场景,通过流计算实现订单大屏的场景,做到海量订单实时注入的同时,进行10s的订单统计聚合以及交易金额统计并做实时的大屏幕展示。整个订单的大屏幕样例如下:
image.png

大屏我们使用阿里云的 DATAV 对接 Tablestore数据源来实现,那么下面我们就具体看看从订单的原始数据到结果大屏数据的产生过程以及操作步骤。

整套后台的架构大体如下:
image.png

  1. 在ecs,或者本地模拟一个订单生成器,实时的注入订单数据到 Tablestore 中。
  2. 在 Tablestore 控制台创建通道
  3. 在 EMR 控制台购买 Spark 集群
  4. 下载最新的 EMR SDK
  5. 执行下面提供的建表语句和SQL命令实现实时计算,结果表会写回 Tablestore中。
  6. 通过 DATAV 进行实时大屏展示结果表数据

操作步骤一:登陆阿里云官网 Tablestore 控制台进行实例和表创建
image.png

创建实例后,可以创建一张表,表主键schema如下:
image.png

启动客户端注入程序随机写入数据,样例数据如下:
image.png

Tablestore 产品是 Serverless的形态,用户使用无需购买大小或者规格,产品回根据业务做自动水平扩展。

操作步骤二:登陆阿里云官网 EMR 控制台购买Spark集群
Spark的集群规模可以根据业务需求灵活选取,我们实测三节点,可以轻松的实时消费100w/s的数据做聚合计算哟!
image.png

操作步骤三:登陆EMR集群执行作业脚本
登陆EMR的master节点,执行下面命令启动流任务:

1.启动stream sql交互
在EMR 官网获取最新版本EMR sdk(1.8)
streaming-sql --driver-class-path emr-datasources_shaded_2.11-1.8.0.jar --jars emr-datasources_shaded_2.11-1.8.0.jar --master yarn-client --num-executors 8 --executor-memory 2g --executor-cores 2

2.创建streaming source 表
DROP TABLE IF EXISTS ots_order_test;
CREATE TABLE ots_order_test
USING tablestore
OPTIONS(
endpoint="填写Tablestore VPC的地址",
access.key.id="",
access.key.secret="",
instance.name="",
table.name="",
tunnel.id="在Tablestore控制台查找对应想消费通道ID",
catalog='{"columns": {"UserId": {"col": "UserId", "type": "string"}, "OrderId": {"col": "OrderId", "type": "string"},"price": {"cols": "price", "type": "long"}, "timestamp": {"cols": "timestamp", "type": "long"}}}'
);

3.创建streaming sink表
DROP TABLE IF EXISTS ots_order_sink_test;
CREATE TABLE ots_order_sink_test
USING tablestore
OPTIONS(
endpoint="",
access.key.id="",
access.key.secret="",
instance.name="",
table.name="",
tunnel.id="",
catalog='{"columns": {"begin": {"col": "begin", "type": "string"},"end": {"col": "end", "type": "string"}, "count": {"col": "count", "type": "long"}, "totalPrice": {"col": "totalPrice", "type": "long"}}}'
);

4.创建Streaming作业
CREATE SCAN ots_table_stream on ots_order_test USING STREAM OPTIONS ("maxoffsetsperchannel"="10000");
CREATE STREAM job1
options(
checkpointLocation='/tmp/spark/cp/test1',
outputMode='update'
)
insert into ots_order_sink_test
SELECT CAST(window.start AS String) AS begin, CAST(window.end AS String) AS end, count(*) AS count, sum(price) AS totalPrice FROM ots_table_stream GROUP BY window(to_timestamp(timestamp / 1000000000), "10 seconds");

最后实验有任何问题,或者希望做技术交流的同学欢迎加入我们的技术交流群(钉钉:23307953 或者11789671),来与我们一起探讨。
原文链接:https://yq.aliyun.com/articles/721294

image.png

阿里巴巴开源大数据技术团队成立Apache Spark中国技术社区,定期推送精彩案例,技术专家直播,问答区数个Spark技术同学每日在线答疑,只为营造纯粹的Spark氛围,欢迎钉钉扫码加入!
二维码.JPG

相关文章
|
7月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
8月前
|
存储 SQL 分布式计算
终于!大数据分析不用再“又要快又要省钱”二选一了!Dataphin新功能太香了!
Dataphin推出查询加速新功能,支持用StarRocks等引擎直连MaxCompute或Hadoop查原始数据,无需同步、秒级响应。数据只存一份,省成本、提效率,权限统一管理,打破“又要快又要省”的不可能三角,助力企业实现分析自由。
426 49
|
7月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
7月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
8月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
7月前
|
传感器 人工智能 监控
拔俗多模态跨尺度大数据AI分析平台:让复杂数据“开口说话”的智能引擎
在数字化时代,多模态跨尺度大数据AI分析平台应运而生,打破数据孤岛,融合图像、文本、视频等多源信息,贯通微观与宏观尺度,实现智能诊断、预测与决策,广泛应用于医疗、制造、金融等领域,推动AI从“看懂”到“会思考”的跃迁。
613 0
|
7月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。