前言
在当今数据驱动决策的背景下,企业普遍面临两大关键难题:一是如何消除数据孤岛以实现跨平台高效协作;二是如何在复杂多样的技术架构中维持统一的数据治理标准。这些问题直接关系到企业能否快速、有效地从海量数据中挖掘出有价值的洞察。
作为业界领先的大数据分析与机器学习平台,Databricks 已助力众多企业实现大规模数据处理与智能建模。与此同时,越来越多的企业选择在亚马逊云科技上构建其核心业务系统与AI工作流。因此,打通 Databricks 与亚马逊云科技之间的生态壁垒,已成为释放数据潜能的关键路径。
本文提出一种创新性解决方案:通过 SageMaker Unified Studio 与 Databricks Unity Catalog 的深度整合,企业在保留 Databricks 强大分析能力的同时,也能无缝对接亚马逊云科技的现有服务体系,真正实现数据价值的最大化。这不仅是一次技术层面的连接,更是一种全新的跨平台协作范式。
我们将围绕真实业务场景,深入探讨该集成方案的核心优势:
1. 技术融合性 – 实现零摩擦数据访问
借助 SageMaker Unified Studio 中托管的 JupyterLab 环境,并结合 EMR Serverless 提供的强大计算资源,用户可直接读取 Databricks Unity Catalog 内受控管理的数据资产。此架构避免了传统 ETL 流程中的数据复制和转换环节,使数据科学家能够实时获取最新业务数据,显著提升模型开发效率与响应速度。
2. 治理穿透力 – 构建端到端的安全合规体系
新一代 SageMaker 工作流可完整继承 Databricks 预设的数据血缘追踪机制、细粒度权限控制策略以及完整的审计日志功能。这意味着企业无需重复建设治理体系,即可保障跨平台操作的安全性与合规性,有效降低治理成本与潜在风险。
实战导向的技术实施指南
除了架构原理剖析,我们还将分享在实际项目落地过程中积累的关键经验与避坑建议,涵盖以下核心技术议题:
- 跨平台安全访问:如何在确保数据安全的前提下,实现两个平台间的身份认证与权限授权
- 混合云网络配置:针对企业混合云环境,提供最优的网络连通性实践方案
- 性能优化策略:面向大规模数据查询场景,介绍关键的性能调优技巧
- 生产级部署考量:从概念验证(POC)到正式上线的平滑迁移路径设计
通过本方案,您将获得一套经过真实项目验证的完整集成框架,助力团队快速搭建一个安全、高效且具备良好扩展性的跨平台数据科学工作流。
架构详解
该整体架构旨在融合 Amazon SageMaker Notebook 与 Databricks Unity Catalog 的核心能力,支持高效的数据处理、机器学习模型开发及跨平台的数据共享与协同作业。
亚马逊云科技侧组件说明
SageMaker Unified Studio:作为亚马逊云科技的重要组成部分,SageMaker Unified Studio 为数据科学家和开发者提供了集开发、调试、训练与部署于一体的集成化环境。它支持多种编程语言与主流机器学习框架,并能与其他 AWS 服务实现无缝对接。
EMR Studio Notebook:隶属于 Amazon EMR 的交互式分析工具,允许用户在云端运行基于 Apache Spark 等框架的大规模数据处理任务,适用于探索性数据分析与特征工程等场景。
Databricks 侧组件说明
Open API:Databricks 提供了一套全面开放的 API 接口(如 REST API),支持外部系统与其进行通信与数据交互。这些接口可用于集群管理、作业调度、数据查询等多种操作,是实现系统集成的重要桥梁。
Unity Catalog:作为 Databricks 的统一元数据管理服务,Unity Catalog 帮助企业集中管理数据资产,支持细粒度的访问控制策略设定,保障数据使用的安全性与合规性。
Delta Lake:由 Databricks 开源的高性能存储层,具备 ACID 事务支持、统一治理能力和高效的批流一体处理特性。它兼容结构化与半结构化数据,适用于实时分析、数据湖构建等多种负载场景。
Databricks 数据共享模式概览
Databricks 支持多种数据共享方式,企业可根据具体需求灵活选择适用方案。
在本案例中,我们将采用 Unity Catalog Open APIs 实现 Databricks 与 SageMaker Unified Studio 之间的数据互通。接下来,我们将逐步引导完成全部配置流程。
Databricks 平台配置步骤
- 首先需启用 Databricks 的 Catalog 外部访问功能,具体操作如下所示:
勾选并开启“External data access”选项,以允许外部系统通过 API 访问 Unity Catalog 中的数据资源。

在完成 Databricks 环境配置后,接下来需要为 Databricks 用户配置可从外部访问 Catalog 的权限。请参考以下示例语句进行设置:
GRANT EXTERNAL USE SCHEMA ON SCHEMA <catalog_name>.<schema_name> TO `xxxxx@xx.com`
接着,配置 Databricks 用户的 Personal Access Token。登录后点击用户个人设置中的 Settings 选项进入配置页面。
生成 Access Token 后务必立即记录下来,该令牌仅在生成时显示一次,无法后续恢复。至此,Databricks 端的配置已全部完成。
Amazon SageMaker Unified Studio 域环境搭建
Amazon SageMaker Unified Studio 中的“域”是一种组织单元,用于整合资产、用户及其项目。它通常代表企业内部某个业务线或职能领域的独立边界,支持独立管理数据资源、定义业务术语,并可实施专属的数据治理策略。管理员负责创建域,并将访问链接共享给指定用户或用户组。初次使用时,首要任务是创建一个统一工作室域,并初始化其中的核心组件。
- 进入 Amazon SageMaker 控制台,点击“创建统一工作室域”按钮以启动域的创建流程。
- 选择“快速设置”模式,在配置页面中自定义域名。在虚拟私有云(VPC)设置中,需选择包含私有子网的 VPC,并勾选三个不同可用区(AZ)的私有子网。请注意:这些私有子网必须关联 Nat Gateway,否则可能影响后续服务连通性。其余配置可保留默认值。
- Unified Studio 域默认启用 IAM 用户身份验证机制。在此步骤中,输入已在 IAM Identity Center 中注册的用户邮箱地址。
- 创建成功后,可通过提供的 URL 或点击“打开统一工作室”按钮登录系统。登录时选择 SSO 认证方式,并输入在 IAM 身份中心设定的用户名与密码完成认证。
项目创建流程
项目是 Amazon SageMaker Unified Studio 中用于整合人员、数据和工具的核心单元,便于团队围绕特定业务场景开展协作。
- 登录系统后,点击“创建项目”。项目将作为工作空间,集中管理相关资源与成员。
- 设置项目名称,并选择适用的项目配置文件。项目配置文件相当于创建项目的模板集合,决定了项目成员在处理 Amazon SageMaker 目录数据时可使用的工具和服务范围。本示例中选择“所有功能”选项,然后点击继续。
- 可根据实际需求调整日志保留周期等参数。由于当前场景已禁用 Glue Catalog,因此 Lakehouse Database 中的 Glue 数据库名称无需修改,保持默认即可。点击继续后跳转至下一页,再点击“创建项目”。创建完成后,系统将自动跳转至项目主页。
- 下一步是添加 EMR Serverless 计算资源。进入项目后,在左侧导航栏选择 Compute,进入后点击 Data processing,再点击 Add compute 开始添加计算引擎。
- 您可以选择连接现有计算资源;若尚未创建,则选择 Create new compute resources,然后点击 Next。
- 在计算类型中选择 EMR Serverless,点击 Next。随后修改 Compute name 名称,其余选项保持默认,最后点击 Add compute 完成添加。
项目角色权限配置
为了确保项目角色能够访问存储在 S3 上的 Databricks 数据,需为其授予相应权限。
- 在项目界面左侧的概览菜单中选择 Project overview,在 Project details 区域找到 Project role ARN,从
datazone_user字段起开始复制完整 ARN 信息。 - 切换至 IAM 服务控制台,点击左侧的“角色”列表,搜索并定位到上一步复制的项目角色,点击进入角色详情页。
- 为该角色创建内联策略。请使用如下策略内容,并将示例中的存储桶名
amzn-s3-demo-bucket替换为您实际使用的 S3 存储桶名称。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3AdditionalObjectPermissions",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:GetObject*",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::<amzn-s3-demo-bucket>",
"arn:aws:s3:::<amzn-s3-demo-bucket>/*"
]
}
]
}
至此,SageMaker Unified Studio 的开发环境已准备就绪。
EMR Serverless 应用配置调整
为保证与 SageMaker Unified Studio 中的配置保持一致,需对 EMR Serverless Application 的配置进行相应修改,重点调整 Application configuration 和 Additional configurations 两个部分。具体修改内容如下所示:
Application Configuration
{
"runtimeConfiguration": [
{
"classification": "spark-defaults",
"properties": {
"spark.jars": "/usr/share/aws/delta/lib/delta-spark.jar,/usr/share/aws/delta/lib/delta-storage.jar",
"spark.jars.packages": "io.unitycatalog:unitycatalog-spark_2.12:0.2.0",
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.defaultCatalog": "<databricks uc>", # 此处修改为上面databricks中grant的UC
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<databricks uc>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<databricks uc>.uri": "https://<databricks workspace url>/api/2.1/unity-catalog"
}
}
]
}
Sagemaker Unified Studio JupyterLab 配置指南
接下来我们将配置 Sagemaker Unified Studio 中的 JupyterLab 环境,具体操作如下图所示:
在创建 Sagemaker Unified Studio 时,默认会启用 Glue Catalog 作为元数据目录。若希望在 Notebook 中使用 Databricks 的 Unified Catalog,需覆盖原有的 Glue Catalog 配置。请特别注意以下 catalog 相关设置:
%%configure -n <EMR serverless application> -f
{
"conf": {
"spark.jars": "/usr/share/aws/delta/lib/delta-spark.jar,/usr/share/aws/delta/lib/delta-storage.jar",
"spark.jars.packages": "io.unitycatalog:unitycatalog-spark_2.12:0.2.0",
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.defaultCatalog": "<databricks uc>",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<databricks uc>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<databricks uc>.uri": "https://<databricks workspace url>/api/2.1/unity-catalog",
"spark.sql.catalog.<databricks uc>.token": "<databricks uc token>"
}
}
创建 Spark Session
执行该步骤时,请务必关注 Compute 资源的配置信息。
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName("EMR Serverless and Databricks Unity Catalog Demo") \
.getOrCreate()
验证当前 Spark Context 配置
# Verify the configuration
essential_configs = [
'spark.jars.packages', 'spark.executor.instances', 'spark.cores',
'spark.driver.cores', 'spark.executor.cores', 'spark.memory',
'spark.driver.memory', 'spark.executor.memory', 'spark.sql.catalog',
'spark.sql.defaultCatalog', 'spark.master', 'spark.sql.extensions'
]
for item in spark.sparkContext.getConf().getAll():
if any(config in item[0] for config in essential_configs):
print(item)
如需使用 EMR Serverless 作为计算资源,可在每个代码单元格上方进行选择:左侧选择 PySpark 运行环境,右侧指定已创建的 EMR Serverless 资源。
查看当前 Spark 中的 Catalog 列表
# Try to use Unity Catalog
spark.sql("SHOW CATALOGS").show()
此时可观察到系统中已成功加载名为 sean2 的 catalog。
接下来,我们进一步查询该 catalog 下的 schema 数据结构:
spark.sql("select * from sean2.myorder.sample_orders limit 1").show()
结果显示,我们已经能够成功访问并查询相关数据。
总结与未来展望
方案核心价值回顾
本文介绍的集成方案成功实现了亚马逊云科技 SageMaker 与 Databricks 平台之间的数据互通,构建起统一的数据湖仓架构。这不仅是一次技术整合,更是企业级数据战略的关键一步。
主要收益分析
直接业务收益:
- 提升开发效率:避免重复的 ETL 流程开发
- 降低数据延迟:由传统批处理向实时查询演进
- 减少治理成本:通过统一权限控制和审计机制实现高效管理
- 提高资源利用率:借助 EMR Serverless 弹性伸缩能力优化计算资源使用
长期战略价值:
- 打破团队壁垒:支持数据工程师与数据科学家在各自偏好平台上协同作业
- 加速 AI 应用落地:优化从数据分析到模型部署的全流程
- 降低合规风险:依托统一治理框架满足行业监管要求
- 激发创新潜能:释放人力资源,聚焦高价值业务场景探索
典型适用场景
本集成方案尤其适用于以下情况:
- 已部署 Databricks 数据平台,且希望拓展机器学习能力的企业
- 需要在亚马逊云科技生态内调用 Databricks 数据资产的团队
- 对数据安全与治理有严格规范的行业,如游戏、金融、医疗等
- 追求资源成本最优化的中大型数据组织
未来发展展望
随着 Unity Catalog 生态持续演进,以及亚马逊云科技对开放标准的不断支持,预计将迎来以下发展趋势:
- 更深层次平台集成:新一代 SageMaker 与 Databricks 实现双向数据交互,在数据发现、读写能力和治理方面实现无缝衔接
- 性能持续优化:引入缓存机制与预计算策略以提升查询响应速度
- 智能化数据治理:结合机器学习实现自动化的数据分类与权限推荐
- 多云架构扩展:将此集成模式推广至其他主流云服务商平台
参考文档
https://community.databricks.com/t5/technical-blog/how-to-access-data-in-databricks-from-amazon-sagemaker-notebooks/ba-p/83638
https://aws.amazon.com/blogs/big-data/run-interactive-workloads-on-amazon-emr-serverless-from-amazon-emr-studio/
* 注:上述涉及亚马逊云科技生成式人工智能的服务目前仅在海外区域提供。亚马逊云科技中国区域的相关服务由西云数据和光环新网运营,详情请以中国区官网公布信息为准。
作者信息



雷达卡


京公网安备 11010802022788号







