Alibabacloud Odps Information Schema — 阿里云 Odps 信息架构
v0.0.1查询 MaxCompute(ODPS)信息架构元数据视图。租户级(SYSTEM_CATALOG.INFORMATION_SCHEMA.*,推荐)或项目级(Information_Schema.*,已弃用)。NL→SQL 适用于 IS 视图:表、列、分区、任务历史、隧道历史、表权限、用户、用户角色、配额使用情况等。不适用于:DDL/DML、通过 MCP 列出表、运行临时 SQL、一般 MaxCompute 问题。
运行时依赖
安装命令
点击复制技能文档
ODPS 信息架构 本技能仅用于信息架构(IS)元数据查询。如果用户的问题是关于 DDL/DML、列出表格或一般的 MaxCompute 使用(不是 IS 视图),请不要使用此技能 —— 使用 MCP 工具(list_tables、get_table_schema)或 odpscmd 代替。通过 INFORMATION_SCHEMA 视图查询 MaxCompute 元数据,用于存储、成本、权限、任务和治理分析。
前提条件 必须:每个 IS 查询必须设置命名空间标志。没有它,所有查询都会失败,提示“表未找到”。 MCP:hints={"odps.namespace.schema":"true"} 在 execute_sql 中 odpscmd:SET odps.namespace.schema=true; 在每个查询之前 没有例外。适用于所有 SYSTEM_CATALOG.INFORMATION_SCHEMA. 查询。 IS 视图需要租户级别的权限。如果您遇到访问错误,用户需要租户级别的角色 —— 参见 references/ram-policies.md 中的策略模板。 数据新鲜度:历史视图(TASKS_HISTORY、TUNNELS_HISTORY)有 ~5 分钟的延迟,实时视图 ~3 小时。对于昨天的数据,请在 06:00 之后查询,以确保完整性。
租户级别与项目级别 IS: MaxCompute 有两个 IS 级别。租户级别(SYSTEM_CATALOG.INFORMATION_SCHEMA.)是默认的 —— 它涵盖了同一元数据中心下的所有项目,并且是推荐的。 项目级别(Information_Schema.)是每个项目的,只需要安装包 Information_Schema.systables,并且自 2024-03 起新项目不再自动安装。 主要区别: (1)项目级别有较少的视图(没有 CATALOGS、VOLUMES、FOREIGN_SERVERS、SCHEMAS、PARTITION_ACCESS_INFO、TABLE_ACCESS_INFO、QUOTA_USAGE;有 SCHEMA_PRIVILEGES,而租户级别没有); (2)项目级别的 TASKS_HISTORY 有 task_schema,而租户级别没有; (3)项目级别的 table_catalog 始终是 odps,而租户级别是实际的项目名称。 请参见项目级别 IS 适配以获取转换规则。 MCP 配置,请参见 references/mcp-tools-reference.md。
执行通道 MCP 是首选,当 mcp__maxcompute-catalog__ 工具可用时。 在连接/认证错误时,回退到 odpscmd。 通道 使用 关键 详细信息 MCP(租户级别) DQL、元数据、搜索 execute_sql + hints={"odps.namespace.schema":"true"};同步限制 1000 行;cost_sql 支持 IS 视图(已验证 2026-04) MCP(项目级别) DQL、元数据、搜索 execute_sql + hints={}(无命名空间标志);视图前缀:Information_Schema. odpscmd(租户级别) DDL/DML、大量结果、MCP 不可用 SET odps.namespace.schema=true;前缀必需 odpscmd(项目级别) DDL/DML、大量结果、MCP 不可用 无命名空间标志;视图前缀:Information_Schema. 请参见 references/mcp-tools-reference.md 中的 15 个 MCP 工具和路由指南。
重要规则 始终设置命名空间标志 —— 每个租户级别 IS 查询,无例外。 项目级别 IS 查询不需要此标志 按 ds 过滤 —— TASKS_HISTORY/TUNNELS_HISTORY 是分区的;始终添加 ds 过滤以避免全表扫描 不使用 SELECT —— 使用显式列名 跨元数据中心不支持 —— 每个区域是独立的 last_access_time 为 NULL 的分区表 —— 使用 COALESCE(last_access_time, last_modified_time) 或检查 PARTITIONS 视图。 此外:不为 ALGO 作业或 Hologres 直接读取收集;从实际访问时间开始最长 24 小时的延迟。 状态值 —— TASKS_HISTORY:Terminated(正常)、Failed、Cancelled(罕见)。永远不要将 Terminated 计为失败。 操作类型值 —— TUNNELS_HISTORY:UPLOADLOG、DOWNLOADLOG、DOWNLOADINSTANCELOG、STORAGEAPIREAD、STORAGEAPIWRITE 没有时间字段的视图 —— COLUMNS 没有时间列。TABLE_PRIVILEGES/COLUMN_PRIVILEGES 没有时间列,只有过期时间。 这些视图仅支持静态快照,不支持时间序列。 cost_cpu/cost_mem 是 DOUBLE —— 单位:100×core×seconds/MB×seconds。转换为 CU 小时:cost_cpu/100/3600 持续时间 —— 使用 DATEDIFF(end_time, start_time, 'ss')(秒)。没有 duration_ms 列。 不存在的字段陷阱 —— 参见下面的关键列参考 连接 IS 视图需要 3 个字段的键 —— 当连接任何两个 IS 视图时,ON 条件必须包括 table_catalog、table_schema 和 table_name。缺少任何一个都会在多个目录环境中导致不正确的结果
项目级别 IS 适配 本技能中的所有 SQL 模板默认为租户级别语法(SYSTEM_CATALOG.INFORMATION_SCHEMA. + 命名空间标志)。如果环境仅支持项目级别 IS,请对每个生成的 SQL 应用以下机械转换: 转换 租户级别(默认) 项目级别 视图前缀 SYSTEM_CATALOG.INFORMATION_SCHEMA. Information_Schema. 命名空间标志(MCP) hints={"odps.namespace.schema":"true"} hints={}(删除标志) 命名空间标志(odpscmd) SET odps.namespace.schema=true; 完全删除 范围 所有元数据中心的项目 当前项目 不可用视图 —— CATALOGS、VOLUMES、FOREIGN_SERVERS、SCHEMAS、PARTITION_ACCESS_INFO、TABLE_ACCESS_INFO、QUOTA_USAGE 仅此级别独有的视图 —— SCHEMA_PRIVILEGES