美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台

本文涉及的产品
EMR Serverless Spark 免费试用,1000 CU*H 有效期3个月
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 美的楼宇科技基于阿里云 EMR Serverless Spark 建设 IoT 数据平台,实现了数据与 AI 技术的有效融合,解决了美的楼宇科技设备数据量庞大且持续增长、数据半结构化、数据价值缺乏深度挖掘的痛点问题。并结合 EMR Serverless StarRocks 搭建了 Lakehouse 平台,最终实现不同场景下整体性能提升50%以上,同时综合成本下降30%。

作者:美的楼宇科技事业部 先行研究中心智能技术部


美的楼宇科技 IoT 数据平台建设背景

美的楼宇科技事业部(以下简称楼宇科技)是美的集团旗下五大板块之一,产品覆盖多联机组、大型冷水机组、单元机、机房空调、扶梯、直梯、货梯以及楼宇自控软件和建筑弱电集成解决方案,远销海内外200多个国家。针对当前设备数据量庞大且持续增长、数据呈现半结构化特点的现状,现有系统仅停留在数据存储和基础使用层面,缺乏深度挖掘数据价值的能力,导致大量潜在信息未被充分利用。因此,迫切需要构建一个统一且通用的 IoT 数据平台,平台不仅要具备高度的弹性和轻量化特性,还应具备强大的大规模数据处理能力以及数据科学和 AI 技术支持,以实现快速的数据分析与智能化挖掘,推动楼宇系统的智能化升级,支持节能、设备管理和运维等方面的精确决策。我们的 IoT 数据平台建设基于阿里云 EMR  Serverless Spark ,我们将就 IoT 数据平台建设技术选型上的一些思考,以及 Spark 技术栈尤其是场景应用实践做一下分享。

Lakehouse 架构

宇科技通过阿里云 EMR Serverless Spark,实现了数据与 AI 技术的有效融合,并结合 EMR Serverless StarRocks 搭建了 Lakehouse 平台。该平台核心部分如下:

首先,上游设备或传感器数据通过 Serverless Spark 提交 Streaming 作业,实时以 Apache Hudi 格式写入数据湖,湖表元数据同步至 DLF,以保持数据的实时性。


接着,采用天级调度执行 Hudi 分区数据的 Compaction,并使用 Z-Order 来优化数据布局,实现了10倍以上的查询加速。同时,DLF 的锁机制确保了实时写入与异步湖表任务的并发事务管理,为作业稳定性、数据一致性提供了保障。

此外,还通过 Serverless Spark 构建了数据 Medallion 架构,从加载的源始数据开始(Bronze),经过清洗转化为明细数据(Silver),然后根据不同业务需求将明细层数据转化为高质量的指标数据(Gold),为上层业务系统提供支持。

在 AI 应用方面,楼宇科技通过 Serverless Spark  PySpark 任务,并基于 PyArrow UDF 调用自研算法实现了千亿级别数据在百万级维度的聚合,推动了 Data + AI 技术在实际业务中的应用。最后,处理后的指标数据从数据湖中被加载到 StarRocks中,为上层应用提供 Dashboard 和报表支持,提升了数据的可视化和决策能力。

以下架构图展示了如何利用 Serverless Spark 结合开源湖格式 Hudi、ML/AI 的多种工具库,以及阿里云 DLF 统一湖仓管理平台,实现高效的数据处理和 AI 赋能,使用 Serverless StarRocks 实现极速数据分析,为业务应用带来显著的提升。

选择  Spark 技术栈

在数据平台计算引擎层技术选型上,前期的架构选型我们做了很多的调研,综合各个方面考虑,希望选择一个成熟且统一的平台:既能够支持数据处理、数据分析场景,也能够很好地支撑数据科学场景。加上团队成员对 Python 及 Spark 的经验丰富,所以,从一开始就将目标锁定到了 Spark 技术栈。


为什么选择阿里云EMR Serverless Spark

EMR Serverless Spark 解决了我们什么痛点?

  1. 自建集群 POC 测试需要花费大量的成本,周期也比较长;
  2. 针对千亿级别的 IOT 设备上报数据,引擎性能非常关键。对原始数据做一轮点位提取(t+1处理),用于后续数据开发和分析,每日的点位提取需要在短时间内运行大量资源对湖原始数据进行查询和处理;
  3. 需要完善的 Spark 生态,来实现全链路数据流转,来满足批、流、交互式、机器学习等不同场景需求;
  4. 弹性计算能力,需要一次性支持大规模计算,缩短数据使用延迟。多联机能耗运行月度报告生成的过程中,每月5号之前需要大量资源去生成上月的月度报告指标;
  5. Data+AI 场景的支持能力。


成本相比过去架构提升:

  1. 不同场景下的整体性能提升50%以上。
  2. 综合成本下降30%左右。

IoT 数据链条

我们接入的 IoT 数据分为两部分,历史存量数据和实时数据。目前,历史存量数据是通过 Spark SQL 以天为单位从不同客户关系数据库批量导入 Hudi Lake 表中;实时数据通过 IoT 平台采集到云 Kafka ,经由 Spark Structured Streaming 消费后实时写入到 Hudi Lake 表中。在这个过程中,我们将实时数据和历史数据都 sink 到同一张 Hudi 表里,这种批流一体操作可大大简化我们的 ETL 流程(参考后面的案例部分)。数据管道下游,我们对接数据分析及数据科学工作流。


IoT 数据采集:从 Little Data 到 Big Data

作为 IoT 场景的典型应用,美的暖通最核心的数据均来自 IoT 终端设备。在整个 IoT 环境下,分布着无数个终端传感器。从小的维度看,传感器产生的数据本身属于 Small Data(或者称为 Little Data)。当把所有传感器连接成一个大的 IoT 网络,产生自不同传感器的数据经由 Gateway 与云端相连接,并最终在云端形成 Big Data 。

在我们的场景下,IoT 平台本身会对不同协议的数据进行初步解析,通过定制的硬件网络设备将解析后的半结构化 JSON 数据经由网络发送到云 Kafka。云 Kafka 扮演了整个数据管道的入口。

数据入湖:Hudi

IoT 场景下的数据有如下几个特点:


时序数据:传感器产生的数据记录中包含时间相关的信息,数据本身具有时间属性,因此不同的数据之间可能存在一定的相关性。利用 as-of-join 将不同时间序列数据 join 到一起是下游数据预测分析的基础。


数据的实时性:传感器实时生成数据并以最低延迟的方式传输到数据管道,触发规则引擎,生成告警和事件,通知相关工作人员。


数据体量巨大:IoT 网络环境下遍布各地的成千上万台设备及其传感器再通过接入服务将海量的数据归集到平台。


数据协议多样:通常在 IoT 平台接入的不同种类设备中,上传数据协议种类多样,数据编码格式不统一。


数据半结构化:  不同设备包含不同的属性,基于JSON 结构把所有 IoT 模型抽象为 JSON 字符串。

IoT 数据上述特点给数据处理、数据分析及数据科学等带来了诸多挑战,庆幸的是,这些挑战借助 Spark 和 Delta Lake 都可以很好地应对。Hudi Lake 提供了 ACID 事务保证,支持增量更新数据表以及流批同时写数据。借助 Spark Structed Streaming 可以实现 IoT 时序数据实时入湖。

以下是 Hudi Lake 经典的三级数据表架构。具体到楼宇科技 IoT 数据场景,我们针对每一层级的数据表分别做了如下定义:

Bronze 表:存储原生数据(Raw Data),数据经由 Spark Structed Streaming 从 Kafka 消费下来后 Append/Upsert 进 Hudi Lake 表,该表作为唯一的真实数据表  (Single Source of Truth)。


Silver表:该表是在对 Bronze 表的数据进行加工处理的基础上生成的中间表,在美的暖通的场景下,数据加工处理的步骤涉及到一些复杂的时序数据计算逻辑,这些逻辑都包装在了 Pandas UDF 里提供给 Spark 计算使用。


Gold 表:Silver 表的数据施加 Schema 约束并做进一步清洗后的数据汇入 Gold 表,该表提供给下游的 Ad Hoc 查询分析及数据科学使用。


数据分析:Ad-Hoc 查询 & 实时分析

我们内部在开源 Superset 基础上定制了内部版本的 SQL 查询与数据可视化平台,通过 StarRocks Lake Catalog实现对湖数据查询。借助 Superset ,数据分析师及数据科学家可以快速高效的对 Hudi Lake 表进行数据探索。

StarRocks 主要应用于 BI 报表分析平台 、实时大屏(如设备实时跟踪场景),通过 Serverless StarRocks 可大大提高对数据湖的分析和查询性能,相较于 Trino 等查询性能有3-5倍性能提升。且利用物化视图可以对实时写入数据进行再次近实时加工和处理,满足大屏分析等实时数据展示、进一步提升查询性能、降低资源使用。


数据科学:Jupyter 交互式开发

楼宇能耗优化与设备故障诊断预测是楼宇科技 IoT 大数据平台建设的两个主要业务目标。在 IoT 数据管道下游,需要对接机器学习平台。现阶段为了更快速方便地支撑起数据科学场景,Serverless Spark 支持对接在数据科学场景下更友好的 Jupyter Notebook ,通过在 Jupyter 上使用 PySpark ,可以将作业运行到 Serverless Spark 上;对于有周期性执行的作业,也可以借助 Apache Airflow 对作业进行调度。同时,考虑到机器学习模型构建、迭代训练、指标检测、部署等基本环节,我们也在探索 MLOps ,目前已概念验证通过 OSS+MLflow+Serverless Spark。


Hudi Lake 数据入湖(批流一体)

query = (
  df.writeStream
    .outputMode("append")
    .options(**hudi_options)
    .format("hudi")
    .option("path", table_oss_path)
    .option("checkpointLocation", streaming_checkpoint_location)
    .trigger(availableNow=True)
    .start()
)

湖表管理

Compaction & Z-Ordering

通过 Spark Streaming 实时的将数据写入到 Hudi 湖存储上能够提升数据的新鲜度,但同时也产生大量的小文件影响下游系统的查询性能。另外,对于查询模式相对固定的 Hudi 表,我们也通过 Z-Order 来优化数据布局,再借助 Data-Skipping 能力能够进一步提高查询性能。同时由于 Z-Order 使得局部数据结构相似,也使得以 Parquet 格式存储时有更大的压缩效果,降低了存储成本。

美的楼宇客户 IoT 数据以天为维度进行分区管理,数据实时注入到特定的天级分区内,因此我们通过 EMR Serverless Spark 产品以 T+1 的方式对 T 分区内的数据进行带有 Z-Order 的 Compaction 实现了高效的 Hudi 表的文件管理,有效的提升了查询性能。

call run_clustering(
    table => '{db_name}.{table_name}',
    op => 'scheduleAndExecute',
    order => 'device_id',
    order_strategy => 'z-order',
    predicate => '({predicate})',
    show_involved_partition => false,
    options => "{options}"
);

Clean

Hudi Lake 支持事务提交提供了多版本、TimeTravel 等丰富的功能,但也使得历史的过期的文件依然保留在文件系统中造成存储的浪费。我们也基于 EMR Serverless Spark 实现了天级调度 Clean 作业来定期清除不需要的数据文件,避免存储资源浪费。

总结与展望

我们基于阿里云 EMR Serverless Spark 技术栈快速构建了 IoT 数据处理平台,Serverless Spark 全托管免运维、自研 Fusion 引擎,内置高性能向量化计算和 RSS 能力,相比开源版本3倍以上的性能优势以及计算/存储分离的架构,为我们节省了总体成本。同时,EMR Serverless Spark 自身提供的丰富特性,也极大提升了我们数据团队的生产力,为数据分析业务的快速开展交付奠定了基础。未来,美的楼宇科技希望与阿里云 EMR 团队针对 IoT 场景输出更多行业先进解决方案。



阿里云 EMR Serverless Spark 版是阿里云开源大数据平台 E-MapReduce 基于 Spark 提供的一款全托管、一站式的数据计算平台。它为用户提供任务开发、调试、发布、调度和运维等全方位的产品化服务,显著简化了大数据计算的工作流程,使用户能更专注于数据分析和价值提炼


EMR Serverless Spark 交流钉钉群:58570004119。

image.png

相关文章
|
2月前
|
运维 NoSQL Serverless
|
2月前
|
人工智能 运维 Cloud Native
阿里云Serverless计算产品入选Gartner®报告「领导者」象限!
近日,Gartner® 发布了 2025 年度全球《云原生应用平台魔力象限》报告,阿里云凭借 Serverless 应用引擎 SAE(以下简称 SAE)和函数计算 FC,成为亚太地区唯一入选「领导者象限」的科技公司。
281 16
|
3月前
|
人工智能 运维 Serverless
活动邀请 | 阿里云AI原生应用开发实战营—Serverless AI 专场(北京站)开启报名!
阿里云 AI 原生应用开发实战营——Serverless AI 专场将于 2025 年 8 月 1 日在北京举办。活动聚焦 Serverless 架构如何助力 AI 应用解决算力成本高、资源弹性需求高、运维复杂等难题,提供分钟级构建生产级 AI 应用的实战体验。
|
3月前
|
运维 监控 Cloud Native
阿里云 Serverless 重塑创蓝云智通信底座,引领行业变革
创蓝云智通过采用阿里云云原生产品矩阵,成功实现从传统架构向云原生弹性架构转型。利用Serverless应用引擎(SAE)、云原生API网关、微服务引擎(MSE)等产品,解决了资源利用率低、运维压力大等问题,显著提升系统稳定性与业务连续性,助力企业降本增效,成为云原生领域的标杆案例。
148 1
|
1月前
|
人工智能 机器人 Serverless
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
当云计算遇见具身智能,AI咖啡开启零售新体验。用户通过手机生成个性化图像,云端AI快速渲染,机器人精准复刻于咖啡奶泡之上,90秒内完成一杯可饮用的艺术品。该方案融合阿里云FunctionAI生图能力与安诺机器人高精度执行系统,实现AIGC创意到实体呈现的闭环,为线下零售提供低成本、高互动、易部署的智能化升级路径,已在商场、机场、展馆等场景落地应用。
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
|
18天前
|
人工智能 运维 安全
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
阿里云推出以函数计算为核心的AgentRun平台,通过创新体系解决开发、部署、运维难题,提供全面支持,已在多个真实业务场景验证,是AI原生时代重要基础设施。
|
1月前
|
消息中间件 运维 监控
爆款游戏背后:尚娱如何借助阿里云 Kafka Serverless 轻松驾驭“潮汐流量”?
阿里云 Kafka 不仅为尚娱提供了高可靠、低延迟的消息通道,更通过 Serverless 弹性架构实现了资源利用率和成本效益的双重优化,助力尚娱在快速迭代的游戏市场中实现敏捷运营、稳定交付与可持续增长。
121 21
|
1月前
|
消息中间件 存储 运维
嘉银科技基于阿里云 Kafka Serverless 提升业务弹性能力,节省成本超过 20%
云消息队列 Kafka 版 Serverless 系列凭借其秒级弹性扩展、按需付费、轻运维的优势,助力嘉银科技业务系统实现灵活扩缩容,在业务效率和成本优化上持续取得突破,保证服务的敏捷性和稳定性,并节省超过 20% 的成本。
134 24
|
29天前
|
人工智能 运维 安全
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
云原生应用平台 Serverless 计算负责人杨皓然在云栖大会发表主题演讲“Serverless Agent 基础设施:助力大规模 Agent 部署与运维”。本议题深入介绍了阿里云以函数计算为核心打造的 Agent 基础设施——AgentRun,阐述其如何通过创新的运行时、模型服务、网关及可观测体系,为企业构筑坚实、高效、安全的 Agent 时代基石。