You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python SDK或REST API在DataHub中创建策略?

DataHub通过Python SDK/REST API创建策略的实现

当然可以通过Python SDK或REST API自动化创建元数据策略/平台策略,以下是具体实现方式:

REST API方式

  • DataHub的Metadata Service提供了专用的REST端点用于策略管理,通过POST请求调用/api/v2/policies即可创建策略。请求需携带有效认证令牌(如JWT),请求体需包含策略的完整定义。
  • 示例JSON请求体:
{
  "name": "数据集元数据查看策略",
  "type": "METADATA",
  "description": "授权data_team组查看指定Hive数据集的元数据",
  "rules": [
    {
      "resource": "urn:li:dataset:(urn:li:dataPlatform:hive,sample_db.sample_table,PROD)",
      "actions": ["VIEW"],
      "effect": "ALLOW"
    }
  ],
  "principals": ["urn:li:corpGroup:data_team"]
}
  • 策略类型METADATA对应元数据策略,PLATFORM对应平台策略,可根据需求调整。

Python SDK方式

  • 使用官方Python SDK acryl-datahub(需确保版本≥0.10.0),通过PolicyClient完成策略创建:
from datahub.metadata.com.linkedin.pegasus2avro.common import CorpGroupUrn
from datahub.metadata.com.linkedin.pegasus2avro.policy import (
    Policy,
    PolicyRule,
    PolicyType,
    ResourceUrn,
    PolicyAction,
    PolicyEffect,
)
from datahub.client import DataHubClient
from datahub.client.config import DataHubClientConfig

# 初始化DataHub客户端
client_config = DataHubClientConfig(
    server="http://your-datahub-server:8080",
    token="your-authentication-token"
)
client = DataHubClient(client_config)

# 构建策略规则
access_rule = PolicyRule(
    resource=ResourceUrn(urn="urn:li:dataset:(urn:li:dataPlatform:hive,sample_db.sample_table,PROD)"),
    actions=[PolicyAction.VIEW],
    effect=PolicyEffect.ALLOW
)

# 构建完整策略对象
platform_policy = Policy(
    name="管理员平台操作权限策略",
    type=PolicyType.PLATFORM,
    description="允许admin用户执行平台级配置操作",
    rules=[access_rule],
    principals=[CorpGroupUrn(urn="urn:li:corpuser:admin")]
)

# 发送创建请求
client.policy_client.create_policy(platform_policy)

注意事项

  • 需确认你的DataHub实例版本支持该功能,旧版本可能未开放策略管理的API接口。
  • 策略中的资源URN、主体URN需与DataHub内的实际对象匹配,否则会创建失败。

内容的提问来源于stack exchange,提问作者KAs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:32:23