运行时依赖
安装命令
点击复制技能文档
DLF 数据湖元数据查询 查询 Alibaba Cloud Data Lake Formation (DLF) 中的 Catalog、Database 和 Table 元数据资源。 CRITICAL:仅使用此 Skill 提供的 Python SDK 脚本。所有操作都通过 DLF Python SDK (alibabacloud-dlfnext20250310) 的 scripts/dlf_metadata_query.py 脚本进行。该 Skill 不会调用任何基于 shell 的命令行客户端,也不需要 AI-Mode 配置。 DO NOT 通过任何基于 shell 的命令行客户端尝试访问 —— 该 Skill 中的 DLF 不通过这种方式暴露。 DO NOT 使用 curl、wget 或其他 HTTP 客户端直接调用 DLF API。 MUST 使用此 Skill 提供的 scripts/dlf_metadata_query.py 脚本,该脚本包装了 DLF Python SDK。 所有查询操作都通过 python3 scripts/dlf_metadata_query.py [options] 执行。 架构 Catalog (数据目录) └── Database └── Table ├── Schema (列定义) ├── PartitionKeys (分区键) ├── PrimaryKeys (主键) └── Options (表属性) 安装 pip install -r requirements.txt requirements.txt 固定了完整的传递依赖闭包(包括 alibabacloud-dlfnext20250310==3.0.0),以实现可重现的安装。 预检查:Python SDK 依赖 python3 -c "from alibabacloud_dlfnext20250310.client import Client; print('SDK OK')" 如果未安装,请运行 pip install -r requirements.txt。 身份验证 预检查:Alibaba Cloud 凭证 使用默认凭证链(CredentialClient)自动获取凭证。 支持的来源(按优先顺序): 环境变量(ALIBABA_CLOUD_ACCESS_KEY_ID / ALIBABA_CLOUD_ACCESS_KEY_SECRET) 配置文件(~/.alibabacloud/credentials) ECS 实例 RAM 角色 OIDC 角色 ARN 安全规则: NEVER 读取、回显或打印 AK/SK 值 NEVER 直接在对话或命令行中要求用户输入 AK/SK NEVER 在代码中显式处理或传递 AK/SK —— 依赖默认凭证链 请参阅 https://help.aliyun.com/document_detail/378659.html 获取凭证配置详细信息。 RAM 权限 该 Skill 仅涉及只读操作(List / Get)。请参阅 references/ram-policies.md 获取完整的权限列表。 [MUST] 权限失败处理:当任何命令或 API 调用由于权限错误而失败时,请按照以下过程: 阅读 references/ram-policies.md 以获取所需的完整权限列表 暂停并等待用户确认所需权限已被授予 参数确认 重要:参数确认 —— 在调用 API 之前,必须与用户确认以下用户特定参数;不要假设它们。 region 默认为 cn-hangzhou;如果用户未指定,则使用默认值而不询问。 参数 是否必需 描述 默认值 region 否 区域 ID cn-hangzhou catalog_name 有条件 Catalog 名称(--catalog,获取 Catalog 时所需) - catalog_id 有条件 Catalog ID(--catalog-id,当查询数据库/表时所需,例如 clg-paimon-xxxx) - database 有条件 数据库名称(--database) - table 有条件 表名称(--table) - 核心工作流 脚本自动从环境变量中读取 AK/SK,并在缺失时报告明确的错误。 region 默认为 cn-hangzhou;如果用户未指定,则使用默认值。 您必须使用 scripts/dlf_metadata_query.py 查询元数据。不要使用基于 shell 的命令行客户端或 curl。 操作以 kebab-case 命名。 CRITICAL —— list 与 list--details:选择最轻量的操作以满足请求。 对于列出名称/ID(包括模糊搜索):使用 list-databases / list-tables。这些调用 ListDatabases / ListTables API。 对于完整属性/Schema/属性:使用 list-database-details / list-table-details / get-database / get-table。这些调用更重的 -details / Get API。 默认为轻量的 list- 操作,除非用户明确要求完整配置、Schema 或属性。 当仅需要名称时调用 list-*-details 是不正确的。 查询操作 # ---- Catalog ---- # 1. 列出所有 Catalog(名称 + 最小信息 —— 首选用于列出/搜索) python3 scripts/dlf_metadata_query.py list-catalogs # 2. 按名称模糊搜索 Catalog(使用 ListCatalogs) python3 scripts/dlf_metadata_query.py list-catalogs --pattern test # 3. 获取 Catalog 详细信息(按名称)—仅当需要完整 Catalog 配置时使用 python3 scripts/dlf_metadata_query.py get-catalog --catalog # 4. 获取 Catalog 详细信息(按 ID)—仅当需要完整 Catalog 配置时使用 python3 scripts/dlf_metadata_query.py get-catalog-by-id --id # ---- Database ---- # 5. 列出数据库(名称 —— 默认用于“列出/显示/哪些数据库”,调用 ListDatabases) python3 scripts/dlf_metadata_query.py list-databases --catalog-id # 6. 列出数据库详细信息(完整属性,调用 ListDatabaseDetails)—仅当需要完整属性时使用 python3 scripts/dlf_metadata_query.py list-database-details --catalog-id --database