资讯动态

DataHub ML 特征存储集成实战指南:MlFeature / MlFeatureTable / MlPrimaryKey 全链路操作

发布时间:2026/9/16 22:50:00 来源:尧图企业网站定制
DataHub ML 特征存储集成实战指南MlFeature / MlFeatureTable / MlPrimaryKey 全链路操作【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub本指南围绕 DataHub 的 ML 特征存储Feature Store集成能力展开完整讲解MlFeature、MlPrimaryKey、MlFeatureTable 三类实体的创建、读取与关联操作并延伸至 MlModel / MlGroup 的挂接。你将学会如何用 Python SDKMetadataChangeProposal向 DataHub 写入特征实体并建立到上游数据仓库的血缘如何用 GraphQL / curl / Python 三类方式读取这些实体以及如何将特征挂接到特征表与模型最终在 DataHub UI 中可视化特征的全链路。1. 为什么要把 Feature Store 集成进 DataHubFeature Store特征存储是管理机器学习特征的数据管理层它集中存放可供不同 AI/ML 模型复用的特征。典型开源实现如 Feast。当 Feature Store 与 DataHub 集成后你可以获得两方面的能力特征血缘可追踪清楚看到某个特征是从哪张数据仓库表Dataset派生出来的DerivedFrom关系以及它被哪些模型消费特征生成链路可理解理解特征是如何生成的、如何被组织进特征表、又如何用于模型训练。在 DataHub 的元数据模型中特征存储由三类核心实体承载实体URN 形态语义MlFeatureurn:li:mlFeature:(feature_table_name,feature_name)一条可跨模型复用的特征如age、sign_up_dateMlPrimaryKeyurn:li:mlPrimaryKey:(feature_table_name,primary_key_name)特征表中标识特征归属组的键如user_idMlFeatureTableurn:li:mlFeatureTable:(dataPlatformUrn,feature_table_name)一组可共同用于训练模型的相似特征的容器关于三者的元模型细节可进一步阅读仓库中的实体文档MlFeature、MlPrimaryKey、MlFeatureTable。本指南目标创建特征存储实体MlFeature、MlFeatureTable、MlPrimaryKey读取特征存储实体MlFeature、MlFeatureTable、MlPrimaryKey将 MlFeature 挂接到 MlModel将 MlFeature 挂接到 MlFeatureTable将 MlFeature 关联到支撑它的上游 Dataset数据仓库表前置条件本教程假定你已经部署了 DataHub Quickstart 并完成样例数据摄入详细步骤见 DataHub Quickstart Guide。文中 Python 示例通过 REST 向 GMS 写入元数据默认http://localhost:8080GraphQL 查询同样默认走本地http://localhost:8080/api/graphql。2. 认识三类实体的元数据模型源码视角在动手之前先看一眼 PDL 元模型这决定了你写 Python 代码时能设置哪些字段。2.1 MLFeatureProperties定义于 MLFeatureProperties.pdlrecord MLFeatureProperties includes CustomProperties { description: optional string // 特征文档说明可搜索 TEXT 字段 dataType: optional MLFeatureDataType // 特征数据类型 version: optional VersionTag // 特征版本 sources: optional array[Urn] // 特征来源建立到 Dataset 的 DerivedFrom 血缘 }关键点sources字段标注了Relationship注解关系名为DerivedFromentityTypes: [dataset]且isLineage: true—— 这正是给特征挂上游数据仓库表的底层实现机制。2.2 MLPrimaryKeyProperties定义于 MLPrimaryKeyProperties.pdl字段与 Feature 类似sources: array[Urn]同样是必填语义PDL 中为必选数组关系同为DerivedFrom。2.3 MLFeatureTableProperties定义于 MLFeatureTableProperties.pdlrecord MLFeatureTableProperties includes CustomProperties { description: optional string mlFeatures: optional array[Urn] // 表内特征关系 ContainsentityTypes: mlFeature mlPrimaryKeys: optional array[Urn] // 表的主键关系 KeyedByentityTypes: mlPrimaryKey }从源码可以看到特征表通过Contains关系包含特征、通过KeyedBy关系以…为键引用主键。若存在多个mlPrimaryKeysPDL 注释明确表示视为复合主键。2.4 数据类型枚举 MLFeatureDataType特征与主键的dataType字段取值定义在 MLFeatureDataType.pdl共 18 种USELESS、NOMINAL、ORDINAL、BINARY、COUNT、TIME、INTERVAL、IMAGE、VIDEO、AUDIO、TEXT、MAP、SEQUENCE、SET、CONTINUOUS、BYTE、UNKNOWN。每个枚举值都有语义注释例如SEQUENCE表示 list/tuple/range 型数据下文 GraphQL 示例返回dataType: SEQUENCE即来源于此、ORDINAL表示可排序的离散整数。3. 创建 ML 实体Python注MLModel 与 MLGroup 的创建方式见 AI/ML 集成指南本指南聚焦特征侧实体。3.1 创建 MlFeatureML Feature 表示一条可被多个机器学习模型复用的特征实例特征被组织进 Feature Table 供模型消费。例如一个 Users 特征表其特征可能是age、sign_up_date、active_in_past_30_days等。把特征写入 DataHub用户可以查看特征的来源以及它如何被用于训练模型。完整示例见 mlfeature_create.pyimport os import datahub.emitter.mce_builder as builder import datahub.metadata.schema_classes as models from datahub.emitter.mcp import MetadataChangeProposalWrapper from datahub.emitter.rest_emitter import DatahubRestEmitter # Create an emitter to DataHub over REST gms_server os.getenv(DATAHUB_GMS_URL, http://localhost:8080) token os.getenv(DATAHUB_GMS_TOKEN) emitter DatahubRestEmitter(gms_servergms_server, tokentoken) dataset_urn builder.make_dataset_urn( namefct_users_created, platformhive, envPROD ) feature_urn builder.make_ml_feature_urn( feature_table_nameusers_feature_table, feature_nameuser_signup_date, ) # Create feature metadata_change_proposal MetadataChangeProposalWrapper( entityUrnfeature_urn, aspectmodels.MLFeaturePropertiesClass( descriptionRepresents the date the user created their account, # attaching a source to a feature creates lineage between the feature # and the upstream dataset. This is how lineage between your data warehouse # and machine learning ecosystem is established. sources[dataset_urn], dataTypeTIME, ), ) # Emit metadata! emitter.emit_mcp(metadata_change_proposal) print(fCreated ML feature: {feature_urn})要点创建特征时通过sources参数建立到数据仓库Dataset的上游血缘这正是打通数据仓库 → ML 生态血缘的关键一步。3.2 创建 MlPrimaryKeyML Primary Key 表示特征表中标识其他特征属于哪个分组的特定元素。例如一张 Users 特征表其主键通常是user_id或类似的唯一标识符。在 DataHub 中使用 ML Primary Key 可以表明 ML Feature Table 的结构。完整示例见 mlprimarykey_create.pyimport os import datahub.emitter.mce_builder as builder import datahub.metadata.schema_classes as models from datahub.emitter.mcp import MetadataChangeProposalWrapper from datahub.emitter.rest_emitter import DatahubRestEmitter gms_server os.getenv(DATAHUB_GMS_URL, http://localhost:8080) token os.getenv(DATAHUB_GMS_TOKEN) emitter DatahubRestEmitter(gms_servergms_server, tokentoken) dataset_urn builder.make_dataset_urn( namefct_users_created, platformhive, envPROD ) primary_key_urn builder.make_ml_primary_key_urn( feature_table_nameusers_feature_table, primary_key_nameuser_id, ) # Create feature metadata_change_proposal MetadataChangeProposalWrapper( entityUrnprimary_key_urn, aspectmodels.MLPrimaryKeyPropertiesClass( descriptionRepresents the id of the user the other features relate to., sources[dataset_urn], dataTypeTEXT, ), ) # Emit metadata! emitter.emit_mcp(metadata_change_proposal) print(fCreated ML primary key: {primary_key_urn})要点与特征一样创建主键时也通过sources建立与上游数据仓库的血缘。3.3 创建 MlFeatureTableFeature Table 表示一组相似特征的集合这些特征可以一起用来训练模型。例如 Users 特征表会包含如何使用该特征集合的文档以及对表内每个特征和主键的引用。完整示例见 mlfeature_table_create.pyimport os import datahub.emitter.mce_builder as builder import datahub.metadata.schema_classes as models from datahub.emitter.mcp import MetadataChangeProposalWrapper from datahub.emitter.rest_emitter import DatahubRestEmitter gms_server os.getenv(DATAHUB_GMS_URL, http://localhost:8080) token os.getenv(DATAHUB_GMS_TOKEN) emitter DatahubRestEmitter(gms_servergms_server, tokentoken) feature_table_urn builder.make_ml_feature_table_urn( feature_table_nameusers_feature_table, platformfeast ) feature_urns [ builder.make_ml_feature_urn( feature_nameuser_signup_date, feature_table_nameusers_feature_table ), builder.make_ml_feature_urn( feature_nameuser_last_active_date, feature_table_nameusers_feature_table ), ] primary_key_urns [ builder.make_ml_primary_key_urn( feature_table_nameusers_feature_table, primary_key_nameuser_id, ) ] feature_table_properties models.MLFeatureTablePropertiesClass( descriptionTest description, # link your features to a feature table mlFeaturesfeature_urns, # link your primary keys to the feature table mlPrimaryKeysprimary_key_urns, ) metadata_change_proposal MetadataChangeProposalWrapper( entityUrnfeature_table_urn, aspectfeature_table_properties, ) # Emit metadata! emitter.emit_mcp(metadata_change_proposal) print(fCreated ML feature table: {feature_table_urn})要点创建特征表时通过mlFeatures和mlPrimaryKeys把特征与主键连接到表上。3.4 URN 构造规则源码依据上述builder.make_*系列函数的 URN 拼接逻辑定义在 mce_builder.pydef make_ml_primary_key_urn(feature_table_name: str, primary_key_name: str) - str: return furn:li:mlPrimaryKey:({feature_table_name},{primary_key_name}) def make_ml_feature_urn(feature_table_name: str, feature_name: str) - str: return furn:li:mlFeature:({feature_table_name},{feature_name}) def make_ml_feature_table_urn(platform: str, feature_table_name: str) - str: return furn:li:mlFeatureTable:({make_data_platform_urn(platform)},{feature_table_name}) def make_ml_model_urn(platform: str, model_name: str, env: str) - str: return furn:li:mlModel:({make_data_platform_urn(platform)},{model_name},{env})这与 GraphQL 查询中出现的 URN 形态完全一致urn:li:mlFeature:(test_feature_table_all_feature_dtypes,test_BOOL_LIST_feature)中第一个段是特征表名即featureNamespace第二个段是特征名。3.5 创建后的预期结果实体创建完成后可直接在 DataHub UI 中搜索到这些实体在实体详情页可以看到其属性与血缘关系。4. 读取 ML 实体GraphQL / curl / Python本节给出三种读取方式GraphQL推荐调试、curl脚本化、Python SDK程序化。下文 GraphQL 与 curl 查询基于 Quickstart 样例数据含test_feature_table_all_feature_dtypes特征表与scienceModel模型Python 示例则延续上一节创建的users_feature_table实体二者可对照理解。4.1 读取 MlFeatureGraphQLquery { mlFeature(urn: urn:li:mlFeature:(test_feature_table_all_feature_dtypes,test_BOOL_LIST_feature)){ name featureNamespace description properties { description dataType version { versionTag } } } }Curlcurl --location --request POST http://localhost:8080/api/graphql \ --header Authorization: Bearer my-access-token \ --header Content-Type: application/json \ --data-raw { query: { mlFeature(urn: \urn:li:mlFeature:(test_feature_table_all_feature_dtypes,test_BOOL_LIST_feature)\) { name featureNamespace description properties { description dataType version { versionTag } } } } }Pythonmlfeature_read.pyfrom datahub.ingestion.graph.client import get_default_graph from datahub.metadata.schema_classes import MLFeaturePropertiesClass from datahub.metadata.urns import MlFeatureUrn graph get_default_graph() # Or get this from the UI (share - copy urn) and use MlFeatureUrn.from_string(...) mlfeature_urn MlFeatureUrn(users_feature_table, user_signup_date) mlfeature_properties graph.get_aspect( entity_urnstr(mlfeature_urn), aspect_typeMLFeaturePropertiesClass, ) print(MLFeature name:, mlfeature_urn.name) print(MLFeature namespace:, mlfeature_urn.feature_namespace) if mlfeature_properties is None: raise SystemExit(fMLFeature not found: {mlfeature_urn}) print(MLFeature description:, mlfeature_properties.description) print(MLFeature data type:, mlfeature_properties.dataType) print(MLFeature sources:, mlfeature_properties.sources)预期响应GraphQL / curl{ data: { mlFeature: { name: test_BOOL_LIST_feature, featureNamespace: test_feature_table_all_feature_dtypes, description: null, properties: { description: null, dataType: SEQUENCE, version: null } } }, extensions: {} }4.2 读取 MlPrimaryKeyGraphQLquery { mlPrimaryKey(urn: urn:li:mlPrimaryKey:(user_features,user_id)){ name featureNamespace description dataType properties { description dataType version { versionTag } } } }Curlcurl --location --request POST http://localhost:8080/api/graphql \ --header Authorization: Bearer my-access-token \ --header Content-Type: application/json \ --data-raw { query: query { mlPrimaryKey(urn: \urn:li:mlPrimaryKey:(user_features,user_id)\){ name featureNamespace description dataType properties { description dataType version { versionTag } } }} }Pythonmlprimarykey_read.pyfrom datahub.ingestion.graph.client import get_default_graph from datahub.metadata.schema_classes import MLPrimaryKeyPropertiesClass from datahub.metadata.urns import MlPrimaryKeyUrn graph get_default_graph() # Or get this from the UI (share - copy urn) and use MlPrimaryKeyUrn.from_string(...) mlprimarykey_urn MlPrimaryKeyUrn(users_feature_table, user_id) mlprimarykey_properties graph.get_aspect( entity_urnstr(mlprimarykey_urn), aspect_typeMLPrimaryKeyPropertiesClass, ) print(MLPrimaryKey name:, mlprimarykey_urn.name) print(MLPrimaryKey namespace:, mlprimarykey_urn.feature_namespace) if mlprimarykey_properties is None: raise SystemExit(fMLPrimaryKey not found: {mlprimarykey_urn}) print(MLPrimaryKey description:, mlprimarykey_properties.description) print(MLPrimaryKey data type:, mlprimarykey_properties.dataType) print(MLPrimaryKey sources:, mlprimarykey_properties.sources)预期响应GraphQL / curl{ data: { mlPrimaryKey: { name: user_id, featureNamespace: user_features, description: Users internal ID, dataType: ORDINAL, properties: { description: Users internal ID, dataType: ORDINAL, version: null } } }, extensions: {} }4.3 读取 MlFeatureTableGraphQLquery { mlFeatureTable(urn: urn:li:mlFeatureTable:(urn:li:dataPlatform:feast,test_feature_table_all_feature_dtypes)){ name description platform { name } properties { description mlFeatures { name } } } }Curlcurl --location --request POST http://localhost:8080/api/graphql \ --header Authorization: Bearer my-access-token \ --header Content-Type: application/json \ --data-raw { query: { mlFeatureTable(urn: \urn:li:mlFeatureTable:(urn:li:dataPlatform:feast,test_feature_table_all_feature_dtypes)\) { name description platform { name } properties { description mlFeatures { name } } } } }Pythonmlfeature_table_read.pyfrom datahub.ingestion.graph.client import get_default_graph from datahub.metadata.schema_classes import MLFeatureTablePropertiesClass from datahub.metadata.urns import DataPlatformUrn, MlFeatureTableUrn graph get_default_graph() # Or get this from the UI (share - copy urn) and use MlFeatureTableUrn.from_string(...) mlfeature_table_urn MlFeatureTableUrn(feast, users_feature_table) mlfeature_table_properties graph.get_aspect( entity_urnstr(mlfeature_table_urn), aspect_typeMLFeatureTablePropertiesClass, ) print(MLFeature Table name:, mlfeature_table_urn.name) print( MLFeature Table platform:, DataPlatformUrn.from_string(mlfeature_table_urn.platform).platform_name, ) if mlfeature_table_properties is None: raise SystemExit(fMLFeature Table not found: {mlfeature_table_urn}) print(MLFeature Table description:, mlfeature_table_properties.description) print(MLFeature Table features:, mlfeature_table_properties.mlFeatures)预期响应GraphQL / curl{ data: { mlFeatureTable: { name: test_feature_table_all_feature_dtypes, description: null, platform: { name: feast }, properties: { description: null, mlFeatures: [ { name: test_BOOL_LIST_feature }, ...{ name: test_STRING_feature } ] } } }, extensions: {} }4.4 读取 MlModelGraphQLquery { mlModel(urn: urn:li:mlModel:(urn:li:dataPlatform:science,scienceModel,PROD)){ name description properties { description version type mlFeatures groups { urn name } } } }Curlcurl --location --request POST http://localhost:8080/api/graphql \ --header Authorization: Bearer my-access-token \ --header Content-Type: application/json \ --data-raw { query: { mlModel(urn: \urn:li:mlModel:(urn:li:dataPlatform:science,scienceModel,PROD)\) { name description properties { description version type mlFeatures groups { urn name } } } } }Pythonmlmodel_read.pyfrom datahub.metadata.urns import MlModelUrn from datahub.sdk import DataHubClient client DataHubClient.from_env() # Or get this from the UI (share - copy urn) and use MlModelUrn.from_string(...) mlmodel_urn MlModelUrn(platformmlflow, namemy-recommendations-model) mlmodel_entity client.entities.get(mlmodel_urn) print(Model Name: , mlmodel_entity.name) print(Model Description: , mlmodel_entity.description) print(Model Group: , mlmodel_entity.model_group) print(Model Hyper Parameters: , mlmodel_entity.hyper_params)预期响应GraphQL / curl{ data: { mlModel: { name: scienceModel, description: A sample model for predicting some outcome., properties: { description: A sample model for predicting some outcome., version: null, type: Naive Bayes classifier, mlFeatures: null, groups: [] } } }, extensions: {} }从 MLModelProperties.pdl 源码可见模型属性包含mlFeatures: optional array[MLFeatureUrn]第 104 行与groups: optional array[Urn]第 133 行这正是下节挂接特征 / 挂接模型组的字段落点。5. 挂接 ML 实体Add5.1 将 MlFeature 加入 MlFeatureTable完整示例见 mlfeature_add_to_mlfeature_table.pyimport datahub.emitter.mce_builder as builder import datahub.metadata.schema_classes as models from datahub.emitter.mcp import MetadataChangeProposalWrapper from datahub.emitter.rest_emitter import DatahubRestEmitter from datahub.ingestion.graph.client import DatahubClientConfig, DataHubGraph from datahub.metadata.schema_classes import MLFeatureTablePropertiesClass gms_endpoint http://localhost:8080 # Create an emitter to DataHub over REST emitter DatahubRestEmitter(gms_servergms_endpoint, extra_headers{}) feature_table_urn builder.make_ml_feature_table_urn( feature_table_namemy-feature-table, platformfeast ) feature_urns [ builder.make_ml_feature_urn( feature_namemy-feature2, feature_table_namemy-feature-table ), ] # This code concatenates the new features with the existing features in the feature table. # If you want to replace all existing features with only the new ones, you can comment out this line. graph DataHubGraph(DatahubClientConfig(servergms_endpoint)) feature_table_properties graph.get_aspect( entity_urnfeature_table_urn, aspect_typeMLFeatureTablePropertiesClass ) if feature_table_properties: current_features feature_table_properties.mlFeatures print(current_features:, current_features) if current_features: feature_urns current_features feature_table_properties models.MLFeatureTablePropertiesClass(mlFeaturesfeature_urns) # MCP creation metadata_change_proposal MetadataChangeProposalWrapper( entityUrnfeature_table_urn, aspectfeature_table_properties, ) # Emit metadata! This is a blocking call emitter.emit(metadata_change_proposal)要点示例先通过DataHubGraph.get_aspect读取特征表现有的mlFeatures再与新特征拼接后整体写回——这是追加语义若想整体替换注释掉拼接行即可。5.2 将 MlFeature 加入 MlModel完整示例见 mlfeature_add_to_mlmodel.pyimport datahub.emitter.mce_builder as builder import datahub.metadata.schema_classes as models from datahub.emitter.mcp import MetadataChangeProposalWrapper from datahub.emitter.rest_emitter import DatahubRestEmitter from datahub.ingestion.graph.client import DatahubClientConfig, DataHubGraph from datahub.metadata.schema_classes import MLModelPropertiesClass gms_endpoint http://localhost:8080 emitter DatahubRestEmitter(gms_servergms_endpoint, extra_headers{}) model_urn builder.make_ml_model_urn( model_namemy-test-model, platformscience, envPROD ) feature_urns [ builder.make_ml_feature_urn( feature_namemy-feature3, feature_table_namemy-feature-table ), ] # This code concatenates the new features with the existing features in the model # If you want to replace all existing features with only the new ones, you can comment out this line. graph DataHubGraph(DatahubClientConfig(servergms_endpoint)) model_properties graph.get_aspect( entity_urnmodel_urn, aspect_typeMLModelPropertiesClass ) if model_properties: current_features model_properties.mlFeatures print(current_features:, current_features) if current_features: feature_urns current_features model_properties models.MLModelPropertiesClass(mlFeaturesfeature_urns) metadata_change_proposal MetadataChangeProposalWrapper( entityUrnmodel_urn, aspectmodel_properties, ) # Emit metadata! emitter.emit(metadata_change_proposal)5.3 将 MlGroup 加入 MlModel完整示例见 mlgroup_add_to_mlmodel.py。与前面基于MetadataChangeProposalWrapper的写法不同这里使用更高级的 DataHub SDK 实体操作from datahub.metadata.urns import MlModelGroupUrn from datahub.sdk import DataHubClient from datahub.sdk.mlmodel import MLModel client DataHubClient.from_env() model MLModel( idmy-recommendations-model, platformmlflow, ) model.set_model_group( MlModelGroupUrn( platformmlflow, namemy-recommendations-model-group, ) ) client.entities.upsert(model)5.4 挂接后的预期结果完成挂接后在 DataHub UI 中打开对应实体详情页可通过Features或Group页签查看新增的关联实体MlFeatureTable 的 Features 页签会列出表内特征MlModel 的 Features / Group 页签会显示其消费的特征与所属模型组。6. 血缘与搜索从元模型到 UI把前三节串联起来可以得到一张完整的血缘图Dataset (hive.fct_users_created) │ DerivedFrom ▼ MlFeature(user_signup_date) ──Contains──► MlFeatureTable(users_feature_table) ◄──KeyedBy── MlPrimaryKey(user_id) │ └──(MLModelProperties.mlFeatures)──► MlModel(my-test-model)特征 / 主键通过sources指向 Dataset元模型 MLFeatureProperties.pdl 中的DerivedFrom关系isLineage: true让这条边进入血缘图特征表通过mlFeatures/mlPrimaryKeys与特征、主键建立Contains/KeyedBy关系模型通过 MLModelProperties.pdl 中的mlFeatures数组引用特征。在 DataHub 搜索框直接输入实体名如user_signup_date、users_feature_table即可检索实体页会展示上述关系。MLFeatureProperties的description字段标注了SearchableTEXT 类型见 MLFeatureProperties.pdl因此特征描述文本也参与全文检索。7. 常见问题与实战建议get_aspect返回None说明该实体的目标 aspect 尚不存在。Python 读取示例中用SystemExit显式报错便于在脚本中尽早暴露问题。创建实体与读取实体务必使用一致的 URN 参数特征表名、特征名大小写敏感。追加 vs 替换MCPMetadataChangeProposal的 aspect 是整体覆盖语义。5.1 / 5.2 的示例先读后写、拼接新旧列表实现追加效果如需替换直接传入新的mlFeatures列表即可。认证REST 写入与 GraphQL 查询均支持 Bearer Token环境变量DATAHUB_GMS_TOKEN或请求头Authorization: Bearer my-access-token未开启认证的本地 Quickstart 可省略。数据平台标识make_ml_feature_table_urn/make_ml_model_urn都需要platform如feast、mlflow、science平台须已在 DataHub 中注册否则需要先在 DataHub UI 或通过配置文件添加自定义数据平台可参考 如何添加自定义数据平台。复合主键特征表的mlPrimaryKeys允许传入多个主键元模型注释明确多个主键被视作复合主键Composite Key适合多列联合标识的实体场景。类型取值dataType只接受 MLFeatureDataType 枚举中的值TIME、TEXT、ORDINAL、SEQUENCE等传入非法字符串会导致写入失败。8. 参考与延伸阅读实体元模型文档MlFeature、MlPrimaryKey、MlFeatureTableML 实体 PDL 定义目录com.linkedin.ml.metadataPython 示例合集metadata-ingestion/examples/library/mlfeature_create.py、mlprimarykey_create.py、mlfeature_table_create.py、mlfeature_read.py、mlprimarykey_read.py、mlfeature_table_read.py、mlmodel_read.py、mlfeature_add_to_mlfeature_table.py、mlfeature_add_to_mlmodel.py、mlgroup_add_to_mlmodel.pyURN 构造工具mce_builder.pyAI/ML 集成总指南AI/ML Integration Guide快速部署DataHub Quickstart Guide【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价