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),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →