DataHub SageMaker 元数据摄取指南:Feature Groups、模型、任务与血缘的端到端接入

发布时间:2026/11/5 17:22:32

DataHub SageMaker 元数据摄取指南:Feature Groups、模型、任务与血缘的端到端接入 DataHub SageMaker 元数据摄取指南Feature Groups、模型、任务与血缘的端到端接入【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub本文基于 DataHub 官方源文档sagemaker_pre.md展开系统讲解如何使用sagemaker摄取模块将 AWS SageMaker 中的机器学习资产Feature Groups、模型、训练/推理任务及其血缘关系接入 DataHub。读完本文你将掌握该模块的摄取范围、前置条件、Recipe 配置方法以及从源码层面理解其底层执行流程与实体映射机制。模块定位与摄取范围sagemaker模块是 DataHub 面向 AWS SageMaker 机器学习平台的官方摄取源面向生产环境的元数据摄取工作流设计。从 sagemaker_pre.md 的 Overview 可知该插件提取两类核心元数据Feature groups特征组SageMaker 特征存储中的特征组及其包含的每个特征定义Models、jobs 及二者之间的血缘例如任务产出模型training job 输出 model或模型被任务使用model 被 transform/endpoint 引用时均会建立对应的血缘关系。在 sagemaker_post.md 的补充说明中进一步确认该集成覆盖 ML 实体模型、特征、相关血缘元数据并支持表级血缘table-level lineage与有状态删除检测stateful deletion detection。后者意味着在启用有状态摄取时若源端资产消失DataHub 可自动将其标记为删除避免脏数据长期滞留。从 sagemaker.py 的装饰器声明可以看到官方对该模块的定位与能力标注platform_name(SageMaker) config_class(SagemakerSourceConfig) support_status(SupportStatus.GA) capability(SourceCapability.LINEAGE_COARSE, Enabled by default) class SagemakerSource(StatefulIngestionSourceBase):其中SupportStatus.GA表明该模块已达到正式可用General Availability状态LINEAGE_COARSE粗粒度血缘能力默认启用无需额外配置即可获得模型与任务之间的血缘。前置条件Prerequisites根据 sagemaker_pre.md 的 Prerequisites 一节在运行摄取之前必须确认以下三项网络连通性摄取进程所在环境必须能够访问 AWS SageMaker 服务端点通常通过 VPC、PrivateLink 或公网访问有效的认证凭据提供可用的 AWS 凭证例如AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY、IAM Role 或 AWS 共享凭证文件 等标准机制元数据 API 的读权限执行摄取所使用的 IAM 主体需要具备 SageMaker 元数据相关 API 的只读权限包括但不限于ListFeatureGroups、DescribeFeatureGroup、ListModels、DescribeModel、ListTrainingJobs、ListProcessingJobs、ListTransformJobs、ListEndpoints、ListActions、ListArtifacts等具体 API 调用见下文源码分析。当故障发生时sagemaker_post.md 的 Troubleshooting 建议首先按顺序排查凭据credentials、权限permissions、连通性connectivity与范围过滤scope filters随后再结合摄取日志中与源相关的报错逐项调整配置。快速开始Recipe 配置DataHub 摄取通过 RecipeYAML驱动。最小可用的 SageMaker Recipe 如下完整内容见 sagemaker_recipe.ymlsource: type: sagemaker config: # Coordinates aws_region: my-aws-region sink: # sink configssource.type固定为sagemakersource.config.aws_region指定 SageMaker 所在的 AWS 区域例如us-east-1该值同时用于构造 DataHub 中资产 URN 的区域上下文sink部分按需配置例如写入 DataHub GMS 的datahub-rest或 Kafka 的datahub-kafkasink。保存 Recipe 后通过 CLI 执行摄取datahub ingest -c sagemaker_recipe.yml配置项详解SagemakerSourceConfig定义在 sagemaker_processors/common.py它同时继承自AwsSourceConfig提供 AWS 认证、区域、环境等公共配置与StatefulIngestionConfigBase提供有状态摄取配置核心字段如下配置项类型默认值说明aws_regionstr无AWS 区域必填如us-east-1envstrPROD继承自AwsSourceConfigDataHub 中的环境标识参与 URN 构造extract_feature_groupsOptional[bool]True是否提取特征组及其特征定义extract_modelsOptional[bool]True是否提取模型、模型部署端点与模型组extract_jobsOptional[Union[Dict[str, str], bool]]True是否提取各类 SageMaker 任务可传布尔值或按任务类型过滤的字典stateful_ingestionOptional[StatefulStaleMetadataRemovalConfig]None有状态摄取配置用于过期实体删除检测extract_jobs 的过滤语义extract_jobs支持两种形态布尔值true摄取全部任务类型false跳过任务摄取字典按任务类型精确过滤。从 jobs.py 的JobType枚举可见SageMaker 任务共分为 7 类class JobType(Enum): AUTO_ML auto_ml COMPILATION compilation HYPER_PARAMETER_TUNING hyper_parameter_tuning LABELING labeling PROCESSING processing TRAINING training TRANSFORM transform对应地JobProcessor 内部通过job_type_to_info将每一类任务绑定到独立的规格类AutoMlJobInfo、CompilationJobInfo、HyperParameterTuningJobInfo、LabelingJobInfo、ProcessingJobInfo、TrainingJobInfo、TransformJobInfo定义于 job_classes.py每个规格类声明对应的list_*分页命令与解析键。例如仅摄取训练任务与转换任务可配置为source: type: sagemaker config: aws_region: us-east-1 extract_jobs: training: true transform: true有状态摄取配置由于SagemakerSource继承自StatefulIngestionSourceBase可开启 stale entity removal 实现源端资产删除后的自动清理source: type: sagemaker config: aws_region: us-east-1 stateful_ingestion: enabled: true remove_stale_metadata: true开启后摄取报告SagemakerSourceReport见 common.py会统计feature_groups_scanned、features_scanned、models_scanned、jobs_scanned、endpoints_scanned、groups_scanned等计数并基于LossyList记录被过滤filtered的实体名称便于排查为何某些资产未入库。底层执行流程源码级解析整个摄取入口是SagemakerSource.get_workunits_internalsagemaker.py其执行顺序如下LineageProcessor 先行首先实例化LineageProcessor并调用get_lineage()构建全局血缘图模型 URI/镜像 → 端点、模型组FeatureGroupProcessor受extract_feature_groups控制提取特征组JobProcessor受extract_jobs控制False时跳过提取任务并在过程中构建model_image_to_jobs与model_name_to_jobs两张映射表ModelProcessor受extract_models控制将上一步得到的任务映射与第 1 步的血缘图注入最终把模型、端点、模型组与任务串成完整的血缘网络。各处理器均为独立模块职责单一feature_groups.py通过list_feature_groups分页列举全部特征组再对每个特征组调用describe_feature_group获取FeatureDefinitions特征定义列表并按NextToken分页拉全jobs.py按任务类型分页列举任务将每个任务建模为SageMakerJob记录输入/输出数据集与上下游任务关系最终产出DataJob与DataFlow实体models.py列举模型、模型包组model package groups与端点endpoints产出MLModel、MLModelGroup、MLModelDeployment实体lineage.py通过list_actions、list_artifacts等 SageMaker ML Lineage Tracking API 分页拉取动作与产物构建LineageInfo维护模型 URI/镜像 → 端点与模型组 ARN → 模型两组映射。此外SagemakerSource内部的ClientFactorysagemaker.py支持在启用凭证自动刷新allowed_cred_refresh()时动态获取 boto3 SageMaker client适用于使用临时凭证或角色轮换的生产环境。实体映射与血缘建模虽然 README.md 指出具体概念映射尚在完善中但从源码实现可以明确以下映射关系特征组 → ML 实体每个特征组Feature Group映射为MLFeatureTableURN 为make_ml_feature_table_urn(sagemaker, feature_group_name)特征组中的RecordIdentifierFeatureName记录标识符映射为MLPrimaryKey其余FeatureDefinitions中的每个特征映射为MLFeature。特征类型存在显式映射表feature_groups.pySageMaker FeatureTypeDataHub MLFeatureDataTypeStringTEXTIntegralORDINALFractionalCONTINUOUS其他UNKNOWN并记录 warning特征的数据来源sources同样会被写入若特征组配置了 Offline Store则以s3://路径构造 S3 Dataset URN若关联了 Glue Data CatalogDataCatalogConfig还会追加 Glue 表 URN。特征组的 ARN、创建时间、状态会写入customProperties。任务 → DataJob / DataFlow每个 SageMaker 任务映射为DataJob并通过make_sagemaker_flow_urn生成 orchestrator 为sagemaker的DataFlowjobs.py。由于 SageMaker 没有全局的任务分组属性源码注释明确说明为每个任务创建一个 flow。任务的输入/输出数据集构成DataJobInputOutput从而形成任务与数据集之间的血缘边。模型 → MLModel 及部署实体模型映射为MLModel其超参数写入MLHyperParamClass评估指标写入MLMetricClass端点Endpoint映射为MLModelDeployment端点状态通过ENDPOINT_STATUS_MAPmodels.py翻译为 DataHub 的DeploymentStatusClassIN_SERVICE、CREATING、FAILED等模型包组Model Package Group映射为MLModelGroup。模型与任务的血缘血缘的缝合依赖两张关键映射model_image_to_jobs模型镜像路径 → 引用该模型的任务与model_name_to_jobs模型名 → 任务。JobDirection枚举区分TRAINING训练任务产出模型与DOWNSTREAM模型被下游任务/端点使用两种方向从而准确表达jobs output a model与a model is used by a job两类血缘。最终模型的MLModelProperties中携带这些血缘信息在 DataHub UI 中呈现为完整的 ML 血缘图。能力、限制与排障要点能力以 sagemaker.py 装饰器与 sagemaker_post.md 为准特征组、模型、任务、端点、模型组实体的完整摄取模型-任务、模型-端点、模型-模型组的血缘提取LINEAGE_COARSE默认启用表级血缘S3 / Glue 数据集来源与有状态删除检测。限制模块行为受 SageMaker 源端 API、权限及平台暴露的元数据约束部分能力为条件支持见各能力说明Online Store 因元数据不足仅含安全配置与启用开关源码注释明确说明不会为其创建数据集实体若特征组关联了 Glue 表源端仅补充 Glue 表 URN不摄取 Glue 表的完整元数据需另行运行 Glue 摄取源。排障顺序sagemaker_post.md先校验凭据、权限、连通性与范围过滤再结合摄取日志中源相关的报错调整配置。也可借助摄取报告中的filtered列表与*_scanned计数快速定位未入库的资产是被过滤还是 API 访问失败。参考文档官方源文档sagemaker_pre.md、sagemaker_post.md、README.md示例 Recipesagemaker_recipe.yml核心实现sagemaker.py、common.py、feature_groups.py、jobs.py、models.py、lineage.py【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/4 22:49:02

Windows下nvm-windows完全指南:安装、切换与镜像加速

我在 Windows 上折腾 Node.js 这些年前前后后换过几十个版本。有一阵子全靠官网安装包来回卸载重装,结果就是各种环境冲突,直到用上 nvm-windows 才算是真正解脱。这篇就把 Windows 下 nvm 的完整玩法一次讲清楚,从安装、环境变量&#xff0c…

2026/10/25 22:33:18

垃圾填埋场设计开题报告:从场址分析到防渗与渗滤液系统的关键参数

简介:垃圾填埋场设计开题报告PDF,面向环境工程、市政工程等专业学生及从事固废处理的设计人员,聚焦堰桥地区山谷型小型垃圾填埋场的工程难点。文档围绕场底平整与防滑、雨水导排与防渗系统、渗滤液与填埋气收集导排、渗滤液处理及终场覆盖等核…

2026/10/26 8:52:36

领导力培训课件怎么做?10页PPT讲透身心减压与健康女性主题

简介:这份领导力培训课件以“为身心减压,做健康女性”为主题,面向企业培训讲师、女性管理者及关注员工心理健康的HR,用于开展女性职场压力识别与调适培训。课件仅1个PPT文件,大小2.84MB,页数约10页&#xf…

2026/11/5 16:51:33

EasyU优启通PE维护盘实战指南:制作、启动与核心操作全解析

1. 为什么一个PE维护盘值得单独拿出来聊装系统、修引导、救数据、清病毒,这些活儿但凡干过几次的人都知道,真正决定效率的往往不是你手速多快,而是手边那套PE环境靠不靠谱。EasyU(圈内习惯叫优启通)就是在这个场景下被…

2026/11/5 16:26:13

Rust原来很简单二:所有权系统

Part 2 核心篇 —— 所有权系统 本篇覆盖 第 6 ~ 10 章:所有权、借用与引用、生命周期、字符串与切片、内存模型。 ⚠️ 这是全书最重要的一篇。 把它吃透,Rust 从此“很简单”;跳过它,你会处处碰壁。请慢下来,动手敲每一段代码。 第 6 章 所有权:Rust 的第一性原理 6…

2026/11/5 15:00:49

基于Hadoop+Spark的民宿智能推荐系统设计与实现

1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享…

2026/11/5 14:10:30

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配RS485,解决远距离温度监控难题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑