alibabacloud-dataphin-skills

v2026.09.24

Dataphin skills 套件入口。通过场景关键词路由到具体子 Skill,覆盖数据规划、数据集成、数据开发、运维监控、数据安全、数据资产、数据服务 API 开发、知识图谱等完整业务流程。 触发场景:数据源(创建数据源 / MaxCompute 数据源 / 数据源连通性校验)、计算源(创建计算源 / 更新计算源 / 计算源连通性)、项目与成员(创建项目 / 项目成员 / 租户成员 / 全局角色)、权限与安全(行级权限 / 列级权限 / 字段权限 / 数据源授权 / 数据分级分类 / 数据脱敏)、数据开发(即席查询 / 执行 SQL / 临时跑代码 / 提交批任务 / 更新批任务 / 按名称查任务 / 业务日期 / 租户根节点)、数据集成(数据同步 / 数据搬运 / 集成管道任务 / 更新管道)、运维监控(任务实例监控 / 查看日志 / 重跑实例 / 暂停实例 / 补数据)、数据服务(创建 API / 发布 API / 应用管理 / API 授权 / 权限绑定 / API 调用 / SDK 调用 / API 监控 / 调用日志 / 运维分析)、数据资产(数据标准 / 质量规则 / 主题域 / 业务实体 / 业务指标 / 查找表 / 标准映射 / 资产属性 / 资产查询)、知识图谱(本体模型 / 实体关系 / Schema / Cypher 图查询 / 邻居遍历 / 语义搜索)、非结构化数据(非结构化工作流 / 数据集 / 表结构)。

GitHub
Install command
npx skhub add aliyun/alibabacloud-dataphin-skills
Markdown
SKILL.md

Dataphin Skill Suite

1. Installation(第一步,优先于一切:先过 CLI 版本闸门再读后续内容)

[MUST] 进入本套件的第一件事:先执行 §8 Step 0 第 0 步的「CLI 版本闸门」脚本,输出必须以 PASS 开头;未 PASS 不得执行下方任何安装/配置/业务命令。

# 安装 aliyun CLI(>= 3.4.8):https://github.com/aliyun/aliyun-cli
# 版本要求由 §8 Step 0 第 0 步「CLI 版本闸门」在每次会话开始时强制校验
# 各操作系统一键安装脚本见 ./references/cli-installation-guide.md

# 安装 dataphin-public 插件
aliyun plugin install --names aliyun-cli-dataphin-public

# 验证
aliyun dataphin-public --help

详见 CLI 安装指南。

2. Scenario Description

本套件是 Dataphin 产品的自动化能力集合,采用「套件入口 + 子 Skill」架构:

  • 入口层(本文档):负责场景路由分发、session-id 生成、凭证预检
  • 模块层:按业务域分组(dataplan/manage/dev/ops/dataservice/pipeline/assets/...)
  • 子 Skill 层:每个子 Skill 对应一个完整业务场景

子 Skill 均位于 references/<模块>/<子skill>/ 目录下(如 references/dataplan/create-data-source/SKILL.md),由本入口按路由表加载。

Architecture

用户请求 → 套件入口(路由分发)→ 模块/子 Skill(业务执行)→ 验证结果

当前子 Skill 拓扑(模块/子 Skill 二级结构):

  • dataplan/create-data-source — 创建数据源(87 种类型,含 ConfigItemList 配置)
  • dataplan/check-data-source-connectivity — 数据源连通性检查
  • dataplan/create-compute-source/create-maxcompute-compute-source — 创建 MaxCompute 计算源
  • dataplan/update-compute-source — 更新计算源
  • dataplan/check-compute-source-connectivity — 计算源连通性检查
  • dataplan/create-maxcompute-data-source — 创建 MaxCompute 数据源并验证连通性
  • dataplan/create-project — Dataphin 项目创建需求拆解、公开查询、依赖校验与白名单管理边界检查
  • dataplan/manage-project-member — 项目成员管理(添加/移除/更新角色/查询列表)
  • manage/manage-tenant-member — 租户成员管理(添加/移除/更新角色/查询列表)
  • manage/manage-row-level-permission — 行级权限管理(查询/创建/更新/删除/按表或用户反查/授权账号查询)
  • manage/manage-column-permission — 列级/字段级权限管理(字段授权/回收/记录查询/权限点校验)
  • dev/execute-ad-hoc-task — 即席查询任务执行
  • dev/submit-batch-task — 提交离线批任务
  • dev/update-batch-task — 更新离线批任务
  • dev/find-tenant-root-node — 查找租户虚拟根节点
  • dev/get-batch-task-info-by-name — 按名称获取批任务详情
  • dev/get-bizdate — 获取业务日期(bizdate)
  • dev/manage-resource-file — 资源文件管理(上传 JAR/配置文件并创建/更新/查询/删除 Dataphin 资源)
  • ops/create-node-supplement — 创建补数据任务
  • ops/rerun-task-instance — 重跑任务实例
  • ops/monitor-task-instance — 任务实例监控与日志查询
  • ops/pause-task-instance — 暂停/恢复任务实例
  • pipeline/create-pipeline-task — 创建集成管道任务(数据同步)
  • pipeline/update-pipeline-task — 修改集成管道任务配置(调度/通道/组件,先查后改全量回写)
  • assets/create-standard — 创建数据标准
  • assets/update-standard — 更新数据标准
  • assets/manage-data-standard — 数据标准全生命周期管理(创建/更新/发布/下线/删除/查询)
  • assets/manage-topic-domain — 主题域全生命周期管理(查询/创建/更新/删除,组织数据仓库分层)
  • assets/manage-biz-entity — 业务实体全生命周期管理(业务对象/业务活动的查询/创建/更新/上线/下线/删除)
  • assets/manage-biz-metric — 业务指标定义管理(创建/更新/草稿与已发布态查询/删除)
  • assets/develop-metric — 指标开发(找来源表 → 校验字段 → 建计算任务 → 登记自定义指标 → 核验关联)
  • assets/manage-asset-attributes — 资产自定义属性管理(查属性定义 + 按 GUID 批量覆盖写属性值)
  • assets/query-asset-details — 资产目录详情查询(属性/字段/使用说明 + 数据预览 + 血缘 + 质量概况四板块)
  • assets/resolve-asset-guid — 资产 GUID 解析(按类型拼接 + 回读校验 + 搜索反查,为需要 GUID 的子 skill 提供前置)
  • assets/manage-lookup-table — 数据标准码表管理(创建/查询/更新/删除,码值整体覆盖维护)
  • assets/manage-standard-mapping — 标准落标映射管理(字段-标准双向查询/批量建映射/置无效/删除)
  • datasecurity/grant-data-source-permission — 数据源授权给生产账号
  • datasecurity/manage-data-classification — 数据分级分类管理(分级/分类/字段识别结果/启停清理)
  • datasecurity/manage-data-masking — 数据脱敏需求拆解、字段标签前置检查与公开 API 边界确认
  • dataservice/create-and-publish-api — 数据服务 API 创建与发布
  • dataservice/manage-app-and-bindauth — 应用管理与 API 权限绑定
  • dataservice/call-data-service-api — API 调用(零依赖 Python 脚本,同步/异步/SSE)
  • dataservice/monitor-api-operations — 数据服务 API 运维监控(调用汇总、趋势分析、调用日志、异常影响分析)
  • knowledge-graph/manage-kg-schema — 知识图谱本体模型管理(Schema CRUD、导入导出、发布)
  • knowledge-graph/manage-kg-knowledge — 知识图谱知识数据管理(实体关系 CRUD、批量导入)
  • knowledge-graph/query-kg — 知识图谱图数据查询(Cypher 查询、邻居遍历、语义搜索,纯只读)
  • assets/configure-quality-rule — 配置数据质量规则全生命周期(监控对象/规则/调度告警/试跑/启停/看板)
  • unstructured-data/create-unstructured-workflow — 创建非结构化工作流(需求 → 数据集 → 工作流 → 验证)
  • unstructured-data/update-unstructured-workflow — 更新指定非结构化工作流(回读 → 局部修改 → 提交 → 验证)
  • unstructured-data/create-dataset — 数据集全生命周期管理
  • unstructured-data/update-dataset-schema — 更新数据集表结构(加列/重载 schema)

知识图谱共享前置:图谱空间创建时绑定图引擎(Neo4j / Lindorm),引擎决定可用的查询语言与建模约束(Lindorm 不支持 Cypher)。进入任何 KG 子 skill 前先读 图引擎能力矩阵 并向用户确认引擎。

3. Environment Variables

变量说明必须
ALIBABA_CLOUD_ACCESS_KEY_IDRAM AccessKey ID是
ALIBABA_CLOUD_ACCESS_KEY_SECRETRAM AccessKey Secret是

或通过 aliyun configure 配置 profile。

4. Authentication

Pre-check: Credentials Required

执行前必须确认凭证可用:

aliyun configure list
aliyun dataphin-public --help

验证标准:

  • [MUST] CLI 版本闸门已 PASS(脚本与判定规则见 §8 Step 0 第 0 步,该检查已前置到 Step 0 第 0 步,先于本节所有检查执行)
  • aliyun configure list 显示有效 profile
  • aliyun dataphin-public --help 无报错

Pre-check: Aliyun CLI plugin update required

[MUST] 先执行 §8 Step 0 第 0 步的「CLI 版本闸门」脚本,确认输出以 PASS 开头(aliyun CLI >= 3.4.8);输出 FAIL 时禁止执行下面两条命令及任何后续操作,必须先升级 CLI 并重跑闸门。 [MUST] run aliyun configure set --auto-plugin-install true to enable automatic plugin installation. [MUST] run aliyun plugin update to ensure that any existing plugins are always up-to-date.

4.1 环境自动判定(公共云 / 独立部署)

本套件为单一产物,同时服务公共云与独立部署客户。用户直接调用时我们并不预知其类型,入口必须先自动判定环境——类型永远由信号推断,绝不询问"你是公共云还是独立部署"。

[硬规则] 环境类型对用户完全不可见:

  • 不做类型选择题("公共云 / 独立部署 / 我不确定"这类选项一律禁止)。
  • 问题文案里也不得出现"公共云 / 独立部署"字样,或"region(公共云)/ endpoint(独立部署)二选一"这类暴露类型二分的措辞。
  • 首次收凭证时第一问只要 AccessKey ID + AccessKey Secret,不得同时提 region / endpoint。类型由 AK 自动判定后,再中性地追问下一项(判为公共云才问 region、判为独立部署才问 endpoint),用户全程感知不到"公共云/独立部署"这组概念。

完整判定与消费逻辑见 版本感知 OpenAPI 参考。以下为执行摘要。

IMPORTANT: 调用任何子 Skill 前,必须先完成环境判定。

[总则] 复用已有 profile 必须回显:凡是检出并复用用户已存在的 profile(未新建配置)的路径,都必须在给用户的信息里说明本次所用 profile 名(如「本次使用已有 profile dataphin」);仅当 profile 为空、走下面首次收集流程时不涉及此回显。回显保持中性,不得借此暴露部署类型。

首次使用 / profile 为空时的分步收集(严格按序,不暴露类型):

  1. 第一问:只要 AK/SK。 向用户索取 AccessKey ID + AccessKey Secret(问题里不得出现 region / endpoint / 公共云 / 独立部署 任何字样)。安全起见也可让用户自行 aliyun configure 后回来。
  2. 自动判定(拿到 AK 后,不提问):按下面 #2 前缀 + #3 探测推断公共云 / 独立部署。
  3. 按判定结果中性追问下一项——只说索取那一句,禁止任何解释、铺垫或原因说明(不得出现"公网/网关/无法识别/私有部署/独立部署/公共云/所以/说明"等字样;"AccessKey"一词本身可以说):
    • 判为公共云 → 只问:"你的 Dataphin 在哪个地域?例如 cn-shanghai / cn-hangzhou。" 然后:
      aliyun configure set --profile dataphin --mode AK \
        --access-key-id <AK> --access-key-secret <SK> --region <region>
      
    • 判为独立部署 → 只问:"请提供你的 Dataphin 服务地址(endpoint),例如 dataphin-openapi.xxx.com。" 然后:
      aliyun configure set --profile dataphin-standalone --mode AK \
        --access-key-id <AK> --access-key-secret <SK> --endpoint <endpoint>
      

反例(禁止这样说):"这个 AccessKey 在公网网关无法识别,说明你的 Dataphin 是私有部署的,所以我还需要 endpoint……" —— 任何解释判定过程 / 点出部署形态的话都不许出现,直接光秃秃索取 endpoint 即可。

[硬规则] 以下判定信号纯属 Agent 内部推理,全程对用户不可见:不得向用户复述、解释或征询任何判定依据(如 endpoint 主机名、AK 前缀、探测结果、"倾向公共云/独立部署"等)。Agent 静默按可信度从高到低推断,命中即定,仅在需要时中性追问缺失项(region 或 endpoint),不透出推断过程与结论类型。

  1. 已配自定义 endpoint:profile / 环境变量里 endpoint 主机名非 *.aliyuncs.com(如 dataphin-openapi.poc.lydaas.com)→ 独立部署。
  2. AK 前缀启发式(零成本):公共云 AccessKey 基本以 LTAI 开头;独立部署 AK 由 Dataphin 自签发,通常非 LTAI。LTAI*→倾向公共云,非 LTAI→倾向独立部署。
  3. 廉价探测确认(权威):用当前 AK 对 dataphin-public.<region>.aliyuncs.com 发一个已发布只读调用(首次使用尚无 region_id 时,探测默认用 cn-shanghai——探测只为验 AK 是否被公网 RAM 识别,与最终 region 无关)——鉴权通过/业务错→公共云;InvalidAccessKeyId→独立部署;连不上 aliyuncs→倾向独立部署,结合 #2 定论。
  4. 仅当仍无法定论、或已判独立部署但用户尚未给 endpoint 时 → 才提示补 endpoint(对独立部署本就是连网关的硬前提)。

以上四条信号及其判定结论仅用于内部路由,不得出现在给用户的任何回复中。

环境类型永远由上述信号在运行时推断(单一产物、不再分模式打包,不存在任何 deployment_mode 配置字段)。

[硬规则] 环境锁定(一经确定,不可更换):

  • 锁定时机——满足任一条件即视为环境已确定并锁定,本会话内不可更换:
    • 用户显式指定了环境,或提供了 endpoint(= 独立部署)/ 仅提供 region(= 公共云);
    • 复用了已有 profile(dataphin → 公共云;dataphin-standalone 或 endpoint 主机名非 *.aliyuncs.com → 独立部署);
    • 上述 #1~#3 判定信号得出结论。
  • 已指定则跳过判定:环境已被用户显式指定或 profile 已明确时,不再执行 #2 AK 前缀 / #3 探测等判定信号,直接按指定环境执行。
  • 失败不改判:锁定后,任何调用失败(InvalidAccessKeyId / 签名错 / 网络不通 / 超时 / 版本获取失败等)都只在当前环境内排障(检查 AK/SK、endpoint、OpTenantId、网络),排障无果则直接向用户抛出该环境下的原始错误并终止。严禁因失败重新触发环境判定,严禁由公共云切到独立部署、或由独立部署切回公共云再试。抛错文案只呈现原始错误与排障建议,同样不得暴露部署类型。

独立部署配置引导(判定为 standalone 时 Agent 必须执行)

  1. 检查是否已有名为 dataphin-standalone 的 profile:aliyun configure list
  2. 若已配置 → 先告知用户「本次使用已有 profile dataphin-standalone」,再进入版本获取(§4.2)
  3. 若未配置 → 向用户收集:服务地址 endpoint、AccessKey ID、AccessKey Secret,然后:
    aliyun configure set --profile dataphin-standalone \
      --mode AK \
      --access-key-id <用户提供的AK> \
      --access-key-secret <用户提供的SK> \
      --endpoint <用户提供的endpoint>
    
  4. 收集 OpTenantId(租户 ID):独立部署下版本获取的泛化调用、以及后续每一条 aliyun dataphin-public 命令都强制需要它。中性问法「你的租户 ID(OpTenantId)是多少?」,不解释原因。记入会话上下文备用。
  5. 后续所有命令追加 --profile dataphin-standalone(并见下方改写规则),随后必须先走 §4.2 版本获取+裁剪+闸门,再进入路由。

子 Skill CLI 命令改写规则

子 Skill 命令模板保持公共云写法,Agent 在 standalone 模式下自动追加:

  • --profile dataphin-standalone(路由到独立部署 endpoint)
  • --skip-secure-verify(独立部署通常为自签证书)
  • --op-tenant-id <OpTenantId>(独立部署下每条命令都必填,取 Step 0 收集的租户 ID)
# 子 Skill 原始命令
aliyun dataphin-public create-data-source --body '...'
# Agent 在 standalone 模式下实际执行
aliyun dataphin-public create-data-source --body '...' --profile dataphin-standalone --skip-secure-verify --op-tenant-id <OpTenantId>

4.2 版本感知的 2.0 OpenAPI 清单(独立部署下为路由前强制关卡)

数据文件:references/config/openapi-2.0-versions.json(383 条 union,字段 min_version + channel)。

公共云:不获取版本(GetServerVersion 未发布、调不到、也不需要)。清单 ≡ 当前网关已发布集 ≡ 已安装 dataphin-public 插件命令集,全部 cli_command。

独立部署:确认独立部署后、在路由到任何子 Skill / 收集任何业务参数 / 执行任何接口之前,必须按序完成版本获取→裁剪→闸门(严禁跳过直接进入业务参数收集):

  1. 取版本:调 GetServerVersion 拿版本串。它是 sdk_only——没有 CLI 命令,只能走泛化调用(见参考 §4,POST + query 传参 + 必填 OpTenantId,V1 HMAC-SHA1)。不要尝试 aliyun dataphin-public get-server-version(不存在该命令)。
    • 兜底:泛化调用因任何原因失败(无输出 / Unknown API / 签名错 / 网络 / 超时)时,不得静默假设最高版本继续;改为中性直接询问「你的 Dataphin 是哪个版本?例如 6.0/6.1/6.2/6.3」,用用户给的版本继续第 2 步。版本获取失败不构成改判环境的理由——仍按独立部署继续(§4.1 环境锁定),不得回切公共云重试。
  2. 归一 + 钳制:去 v 前缀取前两段大版本(v6.3.0.964601→6.3;6.2.2.1→6.2);越界钳制到 6.0~6.3。
  3. 裁剪:载入数据文件,取 min_version <= 归一版本 的接口,得当前环境有效接口集。
  4. 版本闸门(关键,必须执行):用户请求的目标接口——无论是子 Skill 背后的 API、还是像 CreateDataset 这样临时直用的 cli_command——若其 min_version > 归一版本(即不在有效集里)→ 立即停下,明确告知「当前环境为 X 版本,不支持 <该功能>(需 Y+ 版本)」,不得继续收集参数、不得执行。仅当目标接口在有效集内才放行。
    • 例:环境 6.0、用户要「创建数据集」(CreateDataset min 6.2)→ 直接答「当前环境 6.0 不支持创建数据集,需 6.2 及以上」,不再收集 project-id / name 等参数。

按 channel 分流生成调用方式:

channel调用方式
cli_commandaliyun dataphin-public <cli_command> …(standalone 追加 --profile dataphin-standalone --skip-secure-verify --op-tenant-id <OpTenantId>)
sdk_only泛化调用 / CommonRequest(RPC V1 签名、POST、鉴权参数放 query、必填 OpTenantId);不能用 CLI,--force 也不行(真机验证)

重建数据文件:由维护者在内部构建流程中执行 build-openapi-version-index.sh(脚本不随本 skill 分发)。详见 版本感知 OpenAPI 参考。

5. RAM Policy

套件级 RAM 策略(所有子 Skill 并集)与各子 Skill 的最小权限分组,统一维护在 RAM 策略参考(全套件唯一权限声明文件),本文件不再内联维护,避免双处漂移。

Permission Failure Handling

若遇到权限错误(HTTP 403 或 ErrorCode 含 Forbidden/NoPermission),请:

  1. 确认 RAM 用户已附加上述策略
  2. 确认策略中 Resource 范围覆盖目标租户
  3. 联系租户管理员授权

详见 RAM 策略参考。

6. Parameter Confirmation

IMPORTANT: Parameter Confirmation 在路由到子 Skill 前,确认用户的目标场景。

请确认您要执行的操作场景。

版本门控口径(两套数据分工,避免歧义):

  • 运行时权威闸门 = references/config/openapi-2.0-versions.json(API 级,按接口 min_version 判定)。独立部署下由 §4.2 强制执行,是唯一决定「某场景能否路由/执行」的依据。
  • references/config/version-manifest.json 仅作 skill 级粗粒度登记(子 Skill → 最低大版本)与自检清单基线,不作为运行时闸门。
  • 简言之:能否路由,以 §4.2 的 openapi-2.0-versions.json 为准。
场景关键词目标子 Skill
创建数据源、新建数据源、添加数据源、ConfigItemList、JDBC→ create-data-source
数据源连通性、检查数据源连接、测试数据源→ check-data-source-connectivity
创建计算源、新建计算引擎、MaxCompute 计算源→ create-maxcompute-compute-source
更新计算源、编辑计算源→ update-compute-source
计算源连通性、检查计算源连接→ check-compute-source-connectivity
创建 MaxCompute 数据源 / 接入 MaxCompute / MC 数据源→ create-maxcompute-data-source
创建项目 / 新建项目 / Dataphin 项目 / 项目初始化 / DevProd / Basic / 项目白名单 / 项目依赖→ create-project
项目成员 / 添加成员 / 移除成员 / 更新角色 / 成员管理→ manage-project-member
租户成员 / 添加租户成员 / 移除租户成员 / 更新全局角色 / 租户成员管理 / tenant member→ manage-tenant-member
行级权限、行权限、row permission、按行过滤、管控规则、授权账号、受影响账号→ manage-row-level-permission
列级权限、字段权限、字段级权限、column permission、field permission、敏感字段可见性、PHYSICAL_FIELD→ manage-column-permission
即席查询、执行 SQL、临时跑代码、建表→ execute-ad-hoc-task
提交离线任务、任务提交、submit-batch-task→ submit-batch-task
更新任务代码、更新调度、update-batch-task→ update-batch-task
虚拟根节点、NodeWithoutUpstream、挂默认上游、DagId→ find-tenant-root-node
按名称查任务、查任务代码、查任务调度→ get-batch-task-info-by-name
业务日期、bizdate、T-1、今天日期、昨天→ get-bizdate
上传资源、资源文件、UDF 资源、JAR 资源、创建资源、create-resource、update-resource、get-resource、delete-resource→ manage-resource-file
补数据、补跑、回填、重跑、supplement、backfill→ create-node-supplement
重跑实例 / rerun / 任务重跑 / operate-instance / 实例恢复→ rerun-task-instance
实例状态 / 查看日志 / 任务监控 / 实例监控 / WAIT_SCHEDULE / FAILED / taskrun→ monitor-task-instance
暂停实例 / 恢复实例 / pause / resume / 暂停调度 / 阻止调度→ pause-task-instance
数据同步、数据搬运、pipeline、reader-writer、MySQL→MaxCompute→ create-pipeline-task
修改管道任务、更新管道、修改调度配置、改 cron、修改并发、修改脏数据、update-pipeline→ update-pipeline-task
创建数据标准、质量规则、create-standard→ create-standard
更新数据标准、更新质量规则、update-standard→ update-standard
管理数据标准、数据标准生命周期、发布标准、下线标准、删除标准、标准列表→ manage-data-standard
管理主题域、主题域生命周期、新建/修改/删除主题域、主题域列表、数据仓库分层、数据板块下建主题域→ manage-topic-domain
管理业务实体、业务对象、业务活动、新建/修改/上线/下线/删除业务实体、维度建模、事实建模、业务模型→ manage-biz-entity
管理业务指标、业务口径、指标定义、新建/修改/查询/删除业务指标、GMV、DAU、转化率、指标关系图→ manage-biz-metric
开发指标、创建技术指标、自定义指标、从表开发指标、指标计算任务、登记自定义指标→ develop-metric
码表、标准代码、码值、代码值、lookup table、创建码表、维护码值→ manage-lookup-table
落标、标准映射、映射关系、字段关联标准、有效映射、无效映射、解除映射→ manage-standard-mapping
资产 GUID、guid 怎么拼、拼 GUID、界面查不到 GUID、TableGuid、AssetGuid、dp_table、dp_ds_table、odps.、dp_index、cust_index、biz_index、dp_api、qbi_page、资产唯一标识→ resolve-asset-guid
数据源授权、生产账号授权、DsRead、DsWrite、PublishStatus=0→ grant-data-source-permission
数据分级分类、分类分级、数据分类、数据分级、安全等级、敏感数据标签、识别结果、C1、C2、C3、C4→ manage-data-classification
数据脱敏、脱敏规则、动态脱敏、字段脱敏、手机号打星、身份证脱敏、邮箱脱敏、白名单、masking、desensitize→ manage-data-masking
创建 API、发布 API、SQL API、API 开发→ create-and-publish-api
创建应用、API 授权、权限绑定、应用管理→ manage-app-and-bindauth
调用 API、SDK 调用、Python 调用→ call-data-service-api
API 监控、调用日志、运维分析→ monitor-api-operations
知识图谱 Schema、本体模型、实体类型、关系类型、Schema 发布→ manage-kg-schema(先确认图引擎:dataType 可用集合随引擎变)
知识图谱数据、创建实体、创建关系、批量导入→ manage-kg-knowledge(CRUD 引擎无关)
知识图谱查询、Cypher 查询、邻居遍历、图查询、关系路径、语义搜索→ query-kg(先确认图引擎:Cypher 仅 Neo4j)
质量监控、质量规则、数据质量校验、质量告警、质量试跑、质量调度、监控对象→ configure-quality-rule
非结构化工作流、创建工作流、知识库构建、文档解析、向量化→ create-unstructured-workflow
更新工作流、修改工作流、调整算子、改提示词、update-pipeline→ update-unstructured-workflow
创建数据集、数据集管理、元数据表、向量表→ create-dataset
更新数据集表结构、数据集加列、修改元数据表、update-dataset-schema→ update-dataset-schema

7. Observability

套件发布版本唯一来源是 references/manifest.json 的 version 字段(SemVer);发布时只在该文件更新版本。references/config/version-manifest.json 的 min_version / default_min_version 是 Dataphin 服务端兼容版本,不能用于 UA。

父层仅生成一次 session-id(32 字符小写十六进制),全套件复用。

将 SUITE_ROOT 设为本 SKILL.md 所在的实际绝对目录(由当前加载文件定位,不依赖工作目录),再执行以下初始化。使用公共 UA helper 校验 manifest;文件缺失、版本为空/非法时停止 API 调用,不得猜测版本或省略后缀。

SESSION_ID=$(python3 -c "import uuid; print(uuid.uuid4().hex)")
SKILL_VERSION=$(python3 "$SUITE_ROOT/references/scripts/skill_user_agent.py" --version) || exit 1
UA=$(python3 "$SUITE_ROOT/references/scripts/skill_user_agent.py" --session-id "$SESSION_ID") || exit 1

所有父子 Skill 的 API 命令均需携带(整个 UA 为一个带引号的参数):

--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-dataphin-skills/{session-id} skill-version/{version}"

Shell 写作 --user-agent "$UA",不可将 flag 与值合在变量中再进行未引用展开。{version} 必须替换为 manifest 读取的 SKILL_VERSION,示例中的 session 占位符也必须替换为当前值。configure / plugin / version 等本地工具命令除外。

子 Skill 继承父层的 session-id、SKILL_VERSION、UA 与 SUITE_ROOT,不重新生成、不改成子技能名称。直接加载子 Skill 时先执行本节初始化;跨 Shell 调用由 Agent 重新注入已保存值,不依赖上一次 Shell 的环境。SDK 脚本内联传入 SKILL_SESSION_ID="$SESSION_ID" python3 ...;临时 SDK 模板还须传入 SUITE_ROOT="$SUITE_ROOT" 以加载公共 helper。SDK 直接读取 manifest,禁止无 session-id 降级或手写版本。

8. Core Workflow(场景路由表分发)

Step 0: 版本获取与门控(每次会话必须首先执行,不可跳过)

顺序:⓪ CLI 版本闸门 → ① 只收 AK/SK → ② 由 AK 自动判定 → ③ 按判定结果中性追问下一项;全程不向用户暴露"公共云/独立部署"概念。

  1. CLI 版本闸门([硬规则] 不可跳过,未 PASS 不得执行任何后续步骤):进入本 Step 其余步骤(凭证检查、环境判定、路由、业务参数收集)之前,必须先原样执行以下脚本并根据输出判定:

    REQUIRED=3.4.8
    CURRENT=$(aliyun version 2>/dev/null | head -n1 | tr -d '[:space:]')
    if [ -z "$CURRENT" ]; then
      echo "FAIL: aliyun CLI 未安装"
    elif [ "$(printf '%s\n' "$REQUIRED" "$CURRENT" | sort -V | head -n1)" = "$REQUIRED" ]; then
      echo "PASS: aliyun CLI $CURRENT (>= $REQUIRED)"
    else
      echo "FAIL: aliyun CLI $CURRENT < $REQUIRED,必须先升级"
    fi
    
    • 判定规则:仅当输出以 PASS 开头才可继续;输出 FAIL、脚本无输出或执行报错,一律视为未通过。禁止目测比较版本号代替本脚本。
    • 失败动作(未通过时):
      • 立即停止,不得进入凭证检查、环境判定、路由或任何业务参数收集;
      • 向用户说明当前版本与要求版本(3.4.8),给出升级方式(见 CLI 安装指南 对应操作系统的一键安装脚本),经用户确认后再执行升级(升级属系统变更,遵循 §12 HITL 原则,不做静默自动升级);
      • 升级/安装完成后必须重跑本闸门脚本,输出 PASS 才放行进入第 1 步;仍 FAIL 则向用户抛出原始输出并终止。
  2. aliyun configure list 检查是否已有有效凭证。有凭证(复用已有 profile)→ 先向用户回显本次使用的 profile 名再继续,例如「本次使用已有 profile <name> 继续操作」,然后跳到第 3 步做环境判定。回显文案保持中性,仅说明使用了哪个 profile,不解释判定过程、不暴露部署类型。

  3. 无凭证(首次使用 / profile 为空)第一问:只向用户索取 AccessKey ID + AccessKey Secret。 问题文案里不得出现 region / endpoint / 公共云 / 独立部署 任何字样。(安全可选:也可让用户自行 aliyun configure 后回来。)

  4. 拿到 AK 后自动判定(不提问):按 §4.1 用 #1 endpoint / #2 AK 前缀 / #3 探测(首次默认 cn-shanghai)推断环境。

  5. 按判定结果中性追问下一项并写 profile——只说索取那一句,禁止解释原因 / 点出部署形态(不得出现 公网 / 网关 / 无法识别 / 私有部署 / 独立部署 / 公共云 等;"AccessKey"一词本身可以说):

    • 判为公共云 → 只问 "你的 Dataphin 在哪个地域?例如 cn-shanghai / cn-hangzhou。" → aliyun configure set --profile dataphin --mode AK --access-key-id <AK> --access-key-secret <SK> --region <region>,直接进入 Step 1。
    • 判为独立部署 → 只问 "请提供你的 Dataphin 服务地址(endpoint),例如 dataphin-openapi.xxx.com。" → aliyun configure set --profile dataphin-standalone --mode AK --access-key-id <AK> --access-key-secret <SK> --endpoint <endpoint>;并按 §4.1 独立部署配置引导收集 OpTenantId(租户 ID)。本次会话中所有 aliyun dataphin-public 命令都必须追加:
      --profile dataphin-standalone --skip-secure-verify --op-tenant-id <OpTenantId>
      

    [硬规则] 环境锁定:第 3 步的判定结论(或用户显式指定 / 已有 profile 的既定环境)即为本会话锁定环境。后续所有步骤(含 §4.2 版本关卡与子 Skill 执行)失败时不得改判环境——不得由公共云切到独立部署、也不得由独立部署切回公共云,只在当前环境内排障,排障无果直接向用户抛出原始错误并终止(见 §4.1 环境锁定)。

  6. 独立部署强制关卡(不可跳过):完成上面配置后、进入路由前,必须先执行 §4.2 的版本获取→裁剪→闸门。严禁跳过版本获取直接进入业务参数收集;用户请求的接口若 min_version 高于当前环境版本,须在此关卡直接告知不支持并停止。(公共云无此关卡,直接进入 Step 1。)


Step 1~5: 场景路由

  1. 识别场景关键词:从用户请求中提取关键词
  2. 版本闸门(仅独立部署,Step 0 第 5 步已强制执行):目标接口须已通过 §4.2 版本闸门(min_version <= 当前环境版本)才可路由;不在有效集内的接口(如 6.0 环境的 CreateDataset)应已在关卡处被拦下并告知「需 Y+ 版本」,不进入下面路由/收参
  3. 匹配路由表:
关键词路由目标
支持哪些接口 / 接口清单 / 当前版本 / 某接口能不能用 / 版本支持的 API§4.2 版本感知清单(父层内联处理,不路由子 Skill)→ 参考
创建数据源 / 新建数据源 / 添加数据源 / ConfigItemList / JDBC / 数据源类型create-data-source
数据源连通性 / 检查数据源连接 / 测试数据源check-data-source-connectivity
创建计算源 / 新建计算引擎 / MaxCompute 计算源create-maxcompute-compute-source
更新计算源 / 编辑计算源update-compute-source
计算源连通性 / 检查计算源连接check-compute-source-connectivity
创建 MaxCompute 数据源 / 接入 MaxCompute / MC 数据源 / MaxCompute datasourcecreate-maxcompute-data-source
创建项目 / 新建项目 / Dataphin 项目 / 项目初始化 / DevProd / Basic / 项目白名单 / 项目依赖create-project
项目成员 / 添加成员 / 移除成员 / 更新角色 / 成员管理manage-project-member
即席查询 / 执行 SQL / 临时跑代码 / 建表 / execute-ad-hoc-taskexecute-ad-hoc-task
提交离线任务 / 任务提交 / submit-batch-tasksubmit-batch-task
更新任务代码 / 更新调度 / update-batch-taskupdate-batch-task
虚拟根节点 / NodeWithoutUpstream / 挂默认上游 / DagIdfind-tenant-root-node
按名称查任务 / 查任务代码 / 查任务调度 / get-batch-task-info-by-nameget-batch-task-info-by-name
业务日期 / bizdate / T-1 / 今天日期 / 昨天get-bizdate
上传资源 / 资源文件 / UDF 资源 / JAR 资源 / create-resource / update-resource / get-resource / delete-resourcemanage-resource-file
补数据 / 补跑 / 回填 / 重跑 / supplement / backfillcreate-node-supplement
重跑实例 / rerun / 任务重跑 / operate-instance / 实例恢复rerun-task-instance
实例状态 / 查看日志 / 任务监控 / 实例监控 / WAIT_SCHEDULE / FAILED / taskrunmonitor-task-instance
暂停实例 / 恢复实例 / pause / resume / 暂停调度 / 阻止调度pause-task-instance
数据同步 / 数据搬运 / pipeline / reader-writer / MySQL→MaxComputecreate-pipeline-task
修改管道任务 / 更新管道 / 修改调度配置 / 改 cron / 修改并发 / 修改脏数据 / update-pipelineupdate-pipeline-task
创建数据标准 / 质量规则 / create-standardcreate-standard
更新数据标准 / 更新质量规则 / update-standardupdate-standard
管理数据标准 / 数据标准生命周期 / 发布标准 / 下线标准 / 删除标准 / 标准列表查询manage-data-standard
管理主题域 / 主题域生命周期 / 新建 / 修改 / 删除主题域 / 主题域列表 / 数据仓库分层 / 数据板块下建主题域manage-topic-domain
管理业务实体 / 业务对象 / 业务活动 / 业务实体生命周期 / 新建 / 修改 / 上线 / 下线 / 删除业务实体 / 维度建模 / 事实建模manage-biz-entity
管理业务指标 / 业务口径 / 指标定义 / 新建 / 修改 / 查询 / 删除业务指标 / GMV / DAU / 转化率 / 指标关系图manage-biz-metric
开发指标 / 创建技术指标 / 自定义指标 / 从表开发指标 / 指标计算任务 / 登记自定义指标 / develop metricdevelop-metric
码表 / 标准代码 / 码值 / 代码值 / lookup table / 创建码表 / 维护码值 / create-standard-lookup-tablemanage-lookup-table
落标 / 标准映射 / 映射关系 / 字段关联标准 / 有效映射 / 无效映射 / 解除映射 / create-standard-mappingmanage-standard-mapping
资产属性 / 自定义属性 / 属性回写 / 批量更新属性 / 资产打标 / update-asset-attributes / AssetAttributemanage-asset-attributes
资产 GUID / guid 怎么拼 / 拼 GUID / 界面查不到 GUID / TableGuid / AssetGuid / dp_table / dp_ds_table / odps. / dp_index / cust_index / biz_index / dp_api / qbi_page / 资产唯一标识resolve-asset-guid
资产详情 / 资产画像 / 资产属性查询 / 字段列表 / 使用说明 / 数据预览 / 前50条 / 血缘 / 上下游 / 字段血缘 / 质量概况 / 质量分 / 目录层级 / 资产挂载目录 / 专题 / DirectoryChainquery-asset-details
租户成员 / 添加租户成员 / 移除租户成员 / 更新全局角色 / 租户成员管理 / tenant membermanage-tenant-member
行级权限 / 行权限 / row permission / row-level permission / 按行过滤 / 管控规则 / 授权账号 / 受影响账号manage-row-level-permission
列级权限 / 字段权限 / 字段级权限 / column permission / field permission / 敏感字段可见性 / PHYSICAL_FIELDmanage-column-permission
数据源授权 / 生产账号授权 / DsRead / DsWrite / PublishStatus=0grant-data-source-permission
数据分级分类 / 分类分级 / 数据分类 / 数据分级 / 安全等级 / 敏感数据标签 / 识别结果 / C1 / C2 / C3 / C4manage-data-classification
数据脱敏 / 脱敏规则 / 动态脱敏 / 字段脱敏 / 手机号打星 / 身份证脱敏 / 邮箱脱敏 / 白名单 / masking / desensitizemanage-data-masking
创建 API / 发布 API / SQL API / API 开发 / 数据服务 APIcreate-and-publish-api
创建应用 / API 授权 / 权限绑定 / 应用管理 / 密钥manage-app-and-bindauth
调用 API / SDK 调用 / Python 调用 / AppKeycall-data-service-api
API 监控 / 调用日志 / 运维分析 / 异常分析monitor-api-operations
知识图谱 Schema / 本体模型 / 实体类型 / 关系类型 / Schema 导入导出 / Schema 发布manage-kg-schema
知识图谱数据 / 创建实体 / 创建关系 / 批量导入manage-kg-knowledge
知识图谱查询 / Cypher 查询 / 邻居遍历 / 图查询 / 关系路径探索 / 语义搜索query-kg
知识图谱图引擎差异 / Neo4j vs Lindorm / 为何 Cypher 报错 / 属性类型支持情况图引擎能力矩阵
质量监控 / 质量规则 / 数据质量校验 / 质量告警 / 质量试跑 / 质量调度 / 监控对象configure-quality-rule
非结构化工作流 / 创建工作流 / 知识库构建 / 文档解析 / PPT 按页 / 向量化 / Embedding 入库 / create-work-flow-by-jsoncreate-unstructured-workflow
更新工作流 / 修改工作流 / 调整算子 / 改提示词 / 换模型 / 增删算子 / update-pipelineupdate-unstructured-workflow
创建数据集 / 新建数据集 / 数据集管理 / 元数据表 / 表结构设计 / 向量表 / Milvus / create-dataset / list-datasets / Datasetcreate-dataset
更新数据集表结构 / 数据集加列 / 修改元数据表 / 重新加载表结构 / ALTER TABLE 数据集 / update-dataset-schemaupdate-dataset-schema
  1. 加载子 SKILL.md:委托执行,传递 session-id、SKILL_VERSION、UA 和 SUITE_ROOT
  2. 汇报结果:子 Skill 完成后返回执行摘要

Step 0–5 输入 / 输出示例与边界情况

以下为虚构的文档走查示例,不是实际执行结果,也不作为用户参数的默认值;环境判定与会话标识属于内部上下文,回复用户时仍遵守 §4.1 的中性表述规则。

步骤示例输入预期输出边界情况与处理
Step 0:前置检查与环境锁定CLI 版本为 3.4.8,存在有效 profile dataphin-standalone,已取得服务端版本 6.3版本闸门输出 PASS: aliyun CLI 3.4.8 (>= 3.4.8);回显“本次使用已有 profile dataphin-standalone”;内部锁定环境并按 6.3 裁剪接口集闸门未 PASS 则停止;无有效 profile 时按 §4.1 分步完成配置;版本获取失败时询问版本,不猜测、不切换环境
Step 1:识别场景用户说“帮我创建一个数据集”内部提取关键词“创建数据集”仅说“帮我处理数据”时,中性询问具体操作,不自行选择业务场景
Step 2:接口版本门控已锁定版本 6.3,目标 CreateDataset 最低版本为 6.2目标接口在有效集内,允许继续路由若版本为 6.0,回复“当前版本 6.0 不支持创建数据集,需 6.2 及以上”,停止收参和执行
Step 3:匹配路由关键词“创建数据集”,版本门控已通过唯一目标为 references/unstructured-data/create-dataset/SKILL.md命中多个场景时先确认意图;没有匹配项时说明未找到对应指导,不编造路径
Step 4:加载与透传目标文档可读;父层已初始化 session-id 0123456789abcdef0123456789abcdef,并保存 SKILL_VERSION、UA、SUITE_ROOT加载目标子 Skill;继承同一 session-id、版本、UA 和套件路径,进入子 Skill 的参数确认流程文档缺失或不可读则停止;未初始化时先完成 §7;跨 Shell 重注入已保存值,不重新生成 session-id
Step 5:汇报结果子 Skill 返回“已创建数据集 demo_orders,回读验证通过”回复“已创建数据集 demo_orders,回读验证通过。”仅完成文档分析时回复“已定位指导文件,尚未执行创建”;执行失败或未验证时如实说明,不宣称成功

9. Success Verification

路由分发成功标准:

  • CLI 版本闸门已 PASS(§8 Step 0 第 0 步)
  • 关键词匹配命中且唯一
  • 子 SKILL.md 文件存在且可读
  • Session-id 已生成并传递

10. Cleanup

各子 Skill 负责各自的资源清理,详见对应子 Skill 的 §10。

11. Command Tables

详见 相关命令索引。

12. Best Practices

  • 大整数 ID(19 位 snowflake)必须用字符串传参,示例中用引号包住
  • 写操作(create/update/delete/grant/publish)执行前必须 HITL 确认
  • 不要同时传 --mode AK 和业务参数 --mode([实测确认]):部分命令(如 list-projects)的业务参数 --mode(项目模式 BASIC/DEV_PROD)与全局鉴权参数 --mode(AK/StsToken)同名冲突,同时出现直接报 ERROR: parse failed --mode duplicated。需要指定业务 --mode 时,凭证改用环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID / ALIBABA_CLOUD_ACCESS_KEY_SECRET 注入,不要在命令行上写 --mode AK --access-key-id ...
  • list-projects 的 --mode 实际必填([实测确认,--help 标为可选]):不传时服务端报 DPN.Project.EnumNotFound:枚举ModeEnum不存在。且 BASIC 与 DEV_PROD 是两个不交集的结果集,要枚举全部项目必须两种模式各查一次
  • 独立部署环境 Endpoint 默认规则:
    • 管理面 OpenAPI:dataphin-openapi.<env>.aliyun.com
    • 数据服务网关:dataphin-os-gateway.<env>.aliyun.com
  • 每次操作完成后用 list-* 命令反查确认
  • 上下文经济性(只读查询必看):元数据/列表类只读命令的完整返回往往极大(实测 get-table-columns 单表达 18k 字符,一轮探查工具输出 103k 字符≈ 41k tokens,其中 68% 来自未裁剪的字段列表),必须:
    • 查字段/列表时带 --cli-query '<JMESPath>' 只取所需字段(如 ColumnList[].{Name:Name,DataType:DataType,Cn:Cn},实测可降 ~86%)
    • list-tables 必带 --cli-query 'PageResult.TableList[].Name':不带时会返回每张表二十多个字段的全量元数据,实测单次 115k 字符(占单轮上下文 39%);另:该命令是扁平参数 --catalog/--keyword/--page-no/--page-size,没有 --list-query(误传会得空结果)
    • 分页接口给定 --page-size,不要默认拉全量;先取一次 --cli-query 'PageResult.TotalCount' 判定总数再决定是否翻页,空页不要重试(实测曾对已取完的第 2/3 页空转 5 次)
    • 日志类接口(get-ad-hoc-task-log / get-physical-instance-log)仅失败或需确认状态时才拉,先只取状态字段,看正文时再取并取尾部片段
    • 同一对象不重复查(已有返回就复用,不要先 get-table-columns 再 DESC 表)
    • 不要拉裸 aliyun dataphin-public --help(全量命令帮助实测 44.5k 字符);找命令名时按关键词检索命令名即可。已知码表/标准集/标准模板均无 list 类命令(仅按 ID get-*),不要去找 list-standard-sets、list-standard-templates 之类不存在的命令
  • 部署模式相关:
    • 子 Skill 不感知部署模式,所有 endpoint 适配由父层 profile 配置驱动
    • 环境(公共云 / 独立部署)由 §4.1 运行时自动判定(endpoint / AK 前缀 / 探测),不再依赖 deployment_mode 字段,也不询问用户类型
    • 环境一经锁定不可切换(§4.1 硬规则):调用失败时只在当前环境内排障或直接抛出原始错误终止,不做公共云 ↔ 独立部署的跨环境回退重试
    • 独立部署接口清单按 §4.2 版本感知裁剪;未发布的 sdk_only 接口只能泛化调用
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/analyticscomputing/dataphin/alibabacloud-dataphin-skills

Default branch

master

Latest commit

1ba18b8

Tree SHA

6ed356b