一套 Spark SQL,打通多种 Catalog:EMR Serverless Spark 统一数据处理实践

简介: 阿里云EMR Serverless Spark通过多Catalog能力,支持在单个Spark Session中统一访问DLF、Hive Metastore、MaxCompute、Hologres、StarRocks、Paimon、Iceberg等异构数据源,使跨系统数据读取、关联与写入可收敛至一条标准Spark SQL,无需中间表搬运或多任务编排,显著简化数据链路、降低开发运维复杂度,并保持原有SQL语法和执行体验不变。

企业的数据往往分散在不同的系统中:数仓、数据湖、在线分析库各自独立,而业务计算又常常需要把它们放在一起。过去,跨系统加工通常意味着多套连接配置、中间表搬运和一串相互依赖的任务。

阿里云 EMR Serverless Spark 的多 Catalog 能力改变了这个前提。通过在工作空间中接入多种 Catalog,一个 Spark Session 就能同时访问 DLF、Hive Metastore、MaxCompute、Hologres、StarRocks、Paimon、Iceberg 等数据空间,跨系统的读取、关联和写入收敛到同一条 Spark SQL 中完成。

本文从一个真实的跨 Catalog 加工场景出发,介绍 Serverless Spark 的 Catalog 支持范围,以及它如何简化数据链路和开发体验。

一个常见的跨 Catalog 加工场景

假设数据团队要生成一张用户经营日报。订单明细和会员等级分别保存在不同的数据空间,每张表都能独立查询,日报却需要把它们放在一起关联和计算。

实际的业务逻辑并不复杂:过滤当天订单,关联会员维度,再把结果写入新的明细表。麻烦通常出现在 SQL 运行之前——准备多套连接、搬运数据、创建中间表,再用多个任务把链路串起来。

EMR Serverless Spark 多 Catalog 将这些数据空间带进同一个 Spark Session。订单表、会员表和结果表可以直接出现在同一条 Spark SQL 中,开发者只需要继续完成日报的关联和写表逻辑。

随着 Catalog 支持面扩充,Spark Session 能够直接访问的数据会越来越多。表名仍然遵循同一种格式:

<catalog>.<database>.<table>

新增 Catalog 扩大了 Spark 的数据范围,已有的业务 SQL 可以继续沿用。

Serverless Spark 的 Catalog 支持全景

目前,DLF、Hive Metastore、Hologres、StarRocks 等 Catalog 已经可以直接在工作空间“数据目录”中添加。“数据目录”是工作空间统一展示和管理 Catalog 的入口,不影响 Catalog 本身的可用性。这个入口还会继续扩充。

Serverless Spark 同时支持 MaxCompute、Paimon、Iceberg 和自定义 Catalog。完整的支持范围包括:

  • DLF Catalog:访问 DLF 中注册的数据库和表,其中包括 Paimon、Iceberg 等表。
  • Hive Metastore Catalog:将已有 HMS 中的数据库和表纳入 Spark Session,保留原有元数据体系。
  • MaxCompute Catalog:通过内置 MaxCompute DataSource V2 访问 MaxCompute 项目中的表。
  • Hologres Catalog:通过三段式表名直接读写指定数据库中的表。
  • StarRocks Catalog:在 Spark SQL 中直接读写 StarRocks 库表。
  • Paimon Catalog:支持以 DLF、HMS 或 Filesystem 管理元数据,也可以在一个 Session 中访问多个 Paimon Catalog。
  • Iceberg Catalog:支持通过数据目录访问 DLF、HMS 中的 Iceberg 表,也支持独立 Iceberg Catalog。
  • 自定义 Catalog:基于 Spark CatalogPlugin 机制继续扩展,接入企业自己的元数据与数据系统。

接入一次,表即刻可用

在工作空间“数据目录”中选择 Catalog 类型、填写连接信息,即可完成添加。接入一次后,工作空间内的任务和会话都可以复用。业务代码引用稳定的逻辑表名,连接地址、网络和认证信息由平台集中管理。如果使用的 Catalog 类型还无法在数据目录中添加,也可以通过 spark.sql.catalog 配置自行注入访问。

常用数据源与 Paimon、Iceberg 等湖格式能力已经内置。开发者可以省去找包、打包、上传 JAR 和处理 ClassPath 冲突的过程,打开 Spark SQL 就开始写业务逻辑。

一个 Spark Session 可以同时看到这样的表:

dlf_prod.retail.orders
hms_warehouse.ods.user_events
odps.retail_dw.dwd_order_di
holo_realtime.public.dim_user_level
sr_analytics.ads.product_report
paimon_curated.ads.user_pay_detail
iceberg_archive.history.closed_orders

这些表可以直接出现在同一条查询中。Catalog 名称标明数据来自哪里,后面的 Filter、Join、聚合、窗口和写表仍然使用标准 Spark 语法。

三个 Catalog,一条 SQL

把开头的用户经营日报写成 SQL:支付订单来自 MaxCompute Catalog,会员等级来自 Hologres Catalog,结果写入 Paimon Catalog。目标 Paimon 表已经创建,Spark 直接完成读取、关联和写入:

INSERT INTO paimon_curated.ads.user_pay_detail
SELECT
  '${bizdate}' AS dt,
  o.order_id,
  o.user_id,
  COALESCE(u.member_level, 'NORMAL') AS member_level,
  o.pay_amount
FROM odps.retail_dw.dwd_order_di o
LEFT JOIN holo_realtime.public.dim_user_level u
  ON o.user_id = u.user_id
WHERE o.ds = '${bizdate}'
  AND o.order_status = 'PAID';

odps、holo_realtime、paimon_curated 三个 Catalog 共同组成一条 Spark SQL。中间没有同步表和搬运脚本,整条链路只提交一个 Spark 作业。

会员表迁移到 StarRocks、HMS 或 DLF 后,只需替换全限定表名,原有业务逻辑可以继续使用。目标表也可以切换到 DLF 管理的 Paimon 表或 Iceberg 表,读取、计算和写入仍然由 Spark 完成。

多 Catalog 进入同一份 Spark 执行计划

来自不同 Catalog 的表会进入同一个 Spark 逻辑计划。Spark 可以结合完整 SQL 安排数据扫描、条件下推、分区裁剪、Join 和 Shuffle,随后将结果直接写入目标 Catalog。

开发者无需把一段业务逻辑拆成多套客户端脚本,也不用靠临时表串联多个计算任务。代码、资源和运行状态都收敛在一个 Spark 作业中。

Serverless 平台按需拉起计算资源,Spark UI 展示完整执行过程,Driver 与 Executor 日志集中保留。跨 Catalog 作业与普通 Spark 作业拥有相同的开发、调优和排障方式。

写在最后

多 Catalog 让一个 Spark Session 可以访问更多数据空间。开发者沿用现有 SQL 和 DataFrame 代码,完成跨 Catalog 的读取、计算和写入。

随着“数据目录”持续扩充,更多 Catalog 会直接进入工作空间。用户面对的依然是熟悉的 Spark 作业、Spark UI 和运行日志。

相关文章
|
关系型数据库 MySQL BI
用友畅捷通基于阿里云 EMR StarRocks 搭建实时湖仓实战分享
本文从用友畅捷通公司介绍及业务背景;数据仓库技术选型、实际案例及未来规划等方面,分享了用友畅捷通基于阿里云 EMR StarRocks 搭建实时湖仓的实战经验。
2171 0
用友畅捷通基于阿里云 EMR StarRocks 搭建实时湖仓实战分享
|
3月前
|
人工智能 分布式计算 大数据
活动报名 | Agentic Lakehouse Meetup · 北京站,从开源技术创新到多模态数据智能化
8月14日,阿里云在北京举办“Agentic Lakehouse”技术活动,聚焦开源大数据生态如何支撑AI Agent全生命周期。
489 2
活动报名 | Agentic Lakehouse Meetup · 北京站,从开源技术创新到多模态数据智能化
|
1月前
|
人工智能 分布式计算 Serverless
EMR Serverless Daft 算子市场免费公测|10分钟极速实战(附视频教程)
Daft 算子市场公测来了!开箱即用的 AI 算子,覆盖 视频 / 图片 / 文本 / 音频 四大场景,搭配 Qwen3.7 大模型,零成本跑通 AI 数据处理全流程。 以训练一个能理解厨房操作的智能机器人为例,我们通常需要采集数千小时由人类佩戴摄像头拍摄的操作视频。然而,当这些视频被解码后,往往会膨胀为数亿张图像帧。更棘手的是,原始数据中充斥着静止画面、模糊镜头和无效空帧等海量“噪音”。如何从这些冗余信息中高效提取出高质量训练样本,已成为多模态技术发展的核心瓶颈。 本次实战将带您深入这一典型场景,借助 Daft 算子市场,一步步拆解并跑通从视频抽帧、数据清洗到高质量样本提取的完整链路。
244 0
|
3月前
|
分布式计算 运维 自然语言处理
EMR Serverless Spark PB级文本语义去重4倍加速的技术方案解读
针对大模型语料清洗中文本去重面临的性能瓶颈,某企业迁移至阿里云emr serverless spark后实现突破。新方案通过minhash-lsh内置函数将算法下沉引擎层,减少40%代码量;结合fusion engine向量化加速与shuffle优化,消除python udf跨进程开销并解决数据倾斜问题。实测去重性能提升4倍,任务耗时从天级降至小时级,且实现零shuffle失败与免运维。该实践验证了serverless架构在pb级数据预处理中的高效性与稳定性,显著加速模型迭代并降低计算成本。
379 0
|
3月前
|
SQL 人工智能 缓存
阿里云 EMR Serverless StarRocks(Stella 2.2.0)发布:多模态处理与分析闭环,内表与湖表统一检索
Stella 2.2 面向 AI 时代的数据基础设施,打通“多模态数据处理—向量化与理解—多路检索—分析消费”的完整闭环。无论数据沉淀在 Paimon 湖表,还是 StarRocks 存算分离内表,都可以在统一 SQL 入口下组合结构化分析、全文检索、向量检索与 AI Function,服务智能驾驶、具身智能、内容与商品理解、企业知识库和 RAG 等场景。
584 2
|
3月前
|
人工智能 分布式计算 Serverless
EMR Serverless Daft 如何简化多模态数据处理:视频抽帧、清洗、标注全流程与具身智能实践
阿里云 EMR Serverless Spark 引入 Ray 分布式计算框架与 Daft 高性能数据引擎,为用户提供了一套开箱即用、免运维且极致高效的多模态数据处理基础设施。
|
3月前
|
人工智能 分布式计算 Serverless
阿里云 EMR Serverless Spark 全托管 Ray 再进化:加速构建全模态数据处理新基建
阿里云 EMR Serverless Spark + Ray 双引擎构建全模态数据处理的新基建,通过极致内核优化和统一数据、算力底座,彻底打通了大数据工程与 AI 模型训练的割裂。结合 RayData、Daft、Data-Juicer 等多模态引擎,以及 CPFS、OSS 等高性能存储生态,阿里云正在为全球的 AI 开发者提供一套最具竞争力的数据新基建。
586 0
阿里云 EMR Serverless Spark 全托管 Ray 再进化:加速构建全模态数据处理新基建
|
3月前
|
SQL 人工智能 Serverless
从数据湖到多模态湖仓-基于阿里云 EMR Serverless StarRocks 与 DLF Paimon 构建AI时代的统一分析检索架构
阿里云 EMR Serverless StarRocks 在统一数据、一致语义和系统级优化之上,构建了面向 AI Data、AI Agent 和多模态应用的下一代湖仓架构。
从数据湖到多模态湖仓-基于阿里云 EMR Serverless StarRocks 与 DLF Paimon 构建AI时代的统一分析检索架构
|
3月前
|
存储 大数据 Serverless
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
钛动科技针对DSP广告业务9.6PB数据规模及多场景SLA差异,将原StarRocks All-in-One架构重构为三条差异化链路:NRR链路利用DLF Paimon存储低频数据,降低60%成本;BT链路依托EMR Serverless StarRocks主键表,实现2分钟新鲜度及P99<5ms在线点查;CT链路负责数据归并。通过解耦实时点查与BI物化视图,该方案在保障故障隔离的同时,兼顾了低成本、高性能与高稳定性,实现了阿里云大数据产品栈的高效协同。
307 0
|
3月前
|
消息中间件 存储 Kafka
StarRocks x Fluss x Paimon 湖流一体方案:构建秒级响应、湖流一体的实时数据引擎
StarRocks x Fluss x Paimon 湖流一体方案通过将 Apache Fluss(面向分析场景的实时流存储)与 Apache Paimon(高性能湖格式表)深度融合,以 StarRocks 作为统一查询入口,构建了一套具备秒级新鲜度、十倍成本降低、一份数据一次查询的全新实时数据引擎。本文将介绍该方案的核心架构、技术优势、查询模式以及在阿里云 EMR Serverless StarRocks 上的产品化落地。
339 0