一套 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 和运行日志。

相关文章
|
22天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
9215 29
|
21天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
4527 16
|
8天前
|
存储 人工智能 并行计算
大模型本地部署终端选型方法论:以 Qwen3.8-27B 为例的四档分层完整流程
本文提出一套大模型本地部署终端选型方法论:定约束、定档位、定框架、定参数四步决策法,配合入门、主力、质量、无损四档分层模型。以 Qwen3.8-27B 实测数据为例,逐环节解读显存、带宽、存储、散热、系统、预算等要素,给出面向不同预算的优选方案、决策自查清单与市场观察框架。文末前瞻 AI 笔记本的 CPU+GPU 与统一内存两条路线,论证四步决策法在新品类上的延续性。
|
20天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
2401 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
7天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型深度拆解:原理解读、实战测评与保姆级落地教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为**System One Model(系统一模型)**,对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
567 1
|
2天前
|
存储 缓存 测试技术
QWT 3D 模块重构记:旧渲染管线改进介绍及实时瀑布图示例
QWT 3D模块完成重大重构:解耦窗口与图形(Plot+Item),摒弃OpenGL 1.x固定管线,迁至Core Profile着色器渲染;支持多图元同场景叠加,并以实时3D瀑布图验证——滑动窗口、固定色域、64帧×256点达61fps。兼容Qt 5.12+/6,LGPL协议。
151 120
|
9天前
|
人工智能 Linux Windows
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面
千问办公(QwenWork)是阿里云推出的AI智能办公平台,支持网页端直接使用及Windows/Mac/Linux客户端下载。提供PPT生成、财报分析、网页搭建等AI功能,个人版免费,企业版198元/席/月。详情见官网qwenwork.cn或阿里云产品页。
1126 0
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面
|
14天前
|
Windows
【保姆级】.NET Framework 3.5离线安装教程(2026最新实测)
.NET Framework 3.5是微软经典运行库,专为兼容老软件、老游戏设计。Win7自带,Win10/11需手动启用(在线或离线安装)。它与4.x系列并存不冲突,缺它会导致“找不到组件”报错。本文详解两种安装方式及常见问题解决,小白也能轻松上手。(239字)
1667 0
|
3天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型全解析:核心原理拆解,性能实战测评与落地部署教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为System One Model(系统一模型),对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
341 0

热门文章

最新文章