全部產品
Search
文件中心

MaxCompute:專案層級Information Schema(即將下線)

更新時間:Sep 19, 2024

本文介紹了MaxCompute的中繼資料服務Information Schema服務的基本概念、操作使用以及使用限制。

MaxCompute的Information Schema提供了專案中繼資料及使用歷史資料等資訊。在ANSI SQL-92的Information Schema基礎上,添加了面向MaxCompute服務特有的欄位及視圖。MaxCompute提供了名稱為Information Schema的公用專案,通過訪問該公用專案提供的唯讀視圖,可以查詢到使用者專案的中繼資料資訊及使用歷史資訊。

使用限制

  • Information Schema提供的是當前專案的中繼資料視圖,不支援跨專案的中繼資料訪問。如果需要對多重專案的中繼資料進行統一查詢、分析,需要分別擷取各個專案中的中繼資料並整合在一起進行跨專案中繼資料分析。

  • 中繼資料系統資料表目前提供准即時視圖,對中繼資料時效性要求較高的應用,建議使用SDK/CLI直接擷取指定對象的中繼資料。

  • 中繼資料及作業歷史資料儲存在Information Schema空間下,如果需要對歷史資料進行快照備份或獲得超過14天的作業歷史,您可以定期將Information Schema的資料備份到指定專案。

擷取Information Schema服務

自2024年03月01日開始,MaxCompute停止對新增專案自動安裝專案層級Information Schema,即新增的專案預設沒有專案層級Information Schema的Package。若您有查中繼資料的業務,您可以查詢租戶層級的Information Schema,以便擷取更全的資訊。租戶層級Information Schema的具體使用說明請參見租戶層級Information Schema

對於存量MaxCompute專案,在您開始使用Information Schema服務前,需要以專案所有者(Project Owner)或具備Super_Administrator管理角色的RAM使用者身份安裝Information Schema許可權包,獲得訪問專案中繼資料的許可權。更多為使用者授權管理角色操作資訊,請參見將角色賦予使用者。安裝方式有如下兩種:

Package安裝成功後,當前操作所在專案即獲得了通過Information Schema查詢本專案相關中繼資料的許可權。資料儲存在Information Schema專案內,無需為中繼資料存放區付費。

執行如下命令,可以查看Information Schema所提供的視圖列表。

odps@myproject1> describe package Information_Schema.systables;

查詢結果如下圖。information_schema 截圖返回結果

查詢中繼資料視圖

查詢中繼資料視圖時,需要在視圖名稱前指定專案Information Schema,即Information Schema.view_name

例如,您登入訪問的當前專案為myproject1,在myproject1中,執行如下命令查詢當前myproject1中所有表的中繼資料資訊。

odps@myproject1>select * from Information_Schema.tables;

Information Schema同時也包含了作業歷史視圖,可以查詢到當前專案內的作業歷史資訊。使用時可添加日期分區進行過濾,請參見如下命令。

odps@myproject1>select * from Information_Schema.tasks_history where ds='yyyymmdd' limit 100;

訪問授權

Information Schema的視圖包含了專案層級的所有使用者資料,預設專案所有者可以查看。如果專案內其他使用者或角色需要查看,需要進行授權,請參見基於Package跨專案訪問資源

授權文法如下。

grant <actions> on package Information_Schema.systables to user <user_name>;
grant <actions> on package Information_Schema.systables to role <role_name>;
  • actions:待授予的操作許可權,取值為Read。

  • user_name:已添加至專案中的阿里雲帳號或RAM使用者。

    您可以通過MaxCompute用戶端執行list users;命令擷取使用者帳號。

  • role_name:已添加至專案中的角色。

    您可以通過MaxCompute用戶端執行list roles;命令擷取角色名稱。

授權樣本如下。

grant read on package Information_Schema.systables to user RAM$Bob@aliyun.com:user01;

中繼資料視圖列表

藉助Information_Schema中繼資料視圖,您可以瀏覽和檢索中繼資料。

藉助Information_Schema使用資訊視圖,您可以對作業的運行情況,例如資源消耗、運行時間長度、資料處理量等指標進行分析,用於最佳化作業或規劃資源容量。

不同視圖存在不同的時效性或系統預設的保留周期,超過保留周期的資料將無法訪問。您可以手工從Information_Schema周期性匯出資料到本地表中,備份更長周期的歷史資料。

費用說明如下。

  • 對於使用隨用隨付計算資源的專案,針對Information Schema視圖的查詢會產生查詢費用,查詢檢視的SQL產生的費用按視圖底層展開的SQL進行計費。Information Schema視圖為了提升查詢效能底層統一通過Range聚簇表進行最佳化,減少查詢輸入量。如果您查詢TASKS_HISTORYTUNNELS_HISTORY這兩個視圖,請在每天6:00:00後查詢前一天資料,避免查詢當天的資料,可最大程度減少輸入量從而降低查詢費用。

  • 對於使用訂用帳戶計算資源的專案,查詢Information Schema視圖時會消耗您購買的CU。

  • 您不需要為Information Schema視圖支付儲存費用。

說明

匯出資料時,建議顯性地選擇視圖的欄位名稱,盡量避免使用insert into select * from information_schema.***的方式匯出資料,防止新增欄位後導致備份失敗。

中繼資料視圖列表如下。

分類

視圖

時效性/保留周期

延遲說明

中繼資料資訊

TABLES

准即時視圖

與線上資料存在一定延遲,延遲時間為3小時左右。

PARTITIONS

准即時視圖

COLUMNS

准即時視圖

UDFS

准即時視圖

RESOURCES

准即時視圖

UDF_RESOURCES

准即時視圖

USERS

准即時視圖

ROLES

准即時視圖

USER_ROLES

准即時視圖

PACKAGE_OBJECTS

准即時視圖

INSTALLED_PACKAGES

准即時視圖

SCHEMA_PRIVILEGES

准即時視圖

TABLE_PRIVILEGES

准即時視圖

COLUMN_PRIVILEGES

准即時視圖

UDF_PRIVILEGES

准即時視圖

RESOURCE_PRIVILEGES

准即時視圖

TABLE_LABELS

准即時視圖

COLUMN_LABELS

准即時視圖

TABLE_LABEL_GRANTS

准即時視圖

COLUMN_LABEL_GRANTS

准即時視圖

使用資訊

TASKS

運行中作業的即時快照

與線上資料存在秒級延遲,當前處於內測(Preview)中,無SLA保障,後續會逐步開放。

TASKS_HISTORY

准即時視圖,分區表,保留最近14天明細

與線上資料存在一定延遲,延遲時間為3小時左右。

TUNNELS_HISTORY

准即時視圖,分區表,保留最近14天明細

TABLES

專案空間下的表資訊。

欄位

類型

table_catalog

STRING

固定值odps

table_schema

STRING

專案空間名稱。

table_name

STRING

表名。

table_type

STRING

表類型。取值範圍:

  • MANAGED_TABLE

  • VIRTUAL_VIEW

  • EXTERNAL_TABLE

is_partitioned

BOOLEAN

是否是分區表。

owner_id

STRING

表所有者的ID。

owner_name

STRING

可選。表所有者的雲帳號名稱。

create_time

DATETIME

表的建立時間。

last_modified_time

DATETIME

表的資料最後更新時間。

data_length

BIGINT

如果表為非分區表,值為表的資料量大小。如果表為分區表,系統不會計算表的資料量大小,值為NULL。PARTITIONS視圖中包含分區表各個分區的資料量大小。單位:位元組(Byte)。

table_comment

STRING

表的注釋。

life_cycle

BIGINT

可選。生命週期。

is_archived

BOOLEAN

預留欄位,無意義。

table_exstore_type

STRING

預留欄位,無意義。

cluster_type

STRING

MaxCompute表的分桶(Clustering)類型。取值為HASH或RANGE。

number_buckets

BIGINT

可選欄位,Cluster表的Bucket數目,0表示作業執行時動態決定。

view_original_text

STRING

VIRTUAL_VIEW類型表的view text。

PARTITIONS

專案空間下的表分區資訊。

欄位

類型

table_catalog

STRING

固定值odps

table_schema

STRING

專案名稱。

table_name

STRING

表名。

partition_name

STRING

分區名。例如ds='20190130'

create_time

DATETIME

分區的建立時間。

last_modified_time

DATETIME

表的最後更新時間。

data_length

BIGINT

分區的資料量大小。單位:位元組(Byte)。

is_archived

BOOLEAN

預留欄位,無意義。

is_exstore

BOOLEAN

預留欄位,無意義。

cluster_type

STRING

可選欄位。MaxCompute表的分桶(Clustering)類型。取值為HASH或RANGE。

number_buckets

BIGINT

可選欄位,Cluster表的Bucket數目。0表示作業執行時動態決定。

COLUMNS

描述專案空間下的表欄位資訊。

欄位

類型

table_catalog

STRING

固定值odps

table_schema

STRING

專案名稱。

table_name

STRING

表名。

column_name

STRING

列名。

ordinal_position

BIGINT

列序號。

column_default

STRING

欄位預設值。

is_nullable

BOOLEAN

可選欄位。始終為YES。

data_type

STRING

資料類型。

column_comment

STRING

列注釋。

is_partition_key

BOOLEAN

是否是分區鍵。

UDFS

專案空間下的UDF資訊。

欄位

類型

udf_catalog

STRING

固定值odps

udf_schema

STRING

專案名稱。

udf_name

STRING

UDF名稱。

owner_id

STRING

UDF擁有者的ID。

owner_name

STRING

可選欄位,UDF擁有者的雲帳號名稱。

create_time

DATETIME

UDF的建立時間。

last_modified_time

DATETIME

UDF的最後修改時間。

RESOURCES

專案空間下的資源資訊。

欄位

類型

resource_catalog

STRING

固定值odps

resource_schema

STRING

專案的名稱。

resource_name

STRING

資源名。

resource_type

STRING

資源類型。取值為Py或Jar。

owner_id

STRING

資源所有者的ID。

owner_name

STRING

可選欄位,資源所有者的雲帳號名稱。

create_time

DATETIME

資源的建立時間。

last_modified_time

DATETIME

資源的最後修改時間。

size

BIGINT

資源佔用的儲存空間。

comment

STRING

資源的注釋。

is_temp_resource

BOOLEAN

是否是臨時資源。

UDF_RESOURCES

專案空間下UDF的資源依賴。

欄位

類型

udf_catalog

STRING

固定值odps

udf_schema

STRING

專案名稱。

udf_name

STRING

UDF名稱。

resource_schema

STRING

資源所在的專案。

resource_name

STRING

資源名。

USERS

專案空間下的使用者列表。

欄位

類型

user_catalog

STRING

取值為ALIYUN或RAM。

user_schema

STRING

專案名稱。

user_name

STRING

可選欄位,使用者名稱。

user_id

STRING

使用者ID。

user_label

STRING

使用者標籤。

ROLES

專案空間下的角色列表。

欄位

類型

role_catalog

STRING

固定值odps

role_schema

STRING

專案名稱。

role_name

STRING

角色名稱。

role_label

STRING

角色標籤。

comment

STRING

角色的注釋。

USER_ROLES

專案空間下使用者擁有的角色資訊。

欄位

類型

user_role_catalog

STRING

固定值odps

user_role_schema

STRING

專案名稱。

role_name

STRING

角色名稱。

user_name

STRING

使用者名稱。

user_id

STRING

使用者的ID。

PACKAGE_OBJECTS

專案空間下Package中的對象資訊。

欄位

類型

package_catalog

STRING

固定值odps

package_schema

STRING

專案名稱。

package_name

STRING

Package名稱。

object_type

STRING

Package內成員的類型。

object_name

STRING

Package內成員的名字。

column_name

STRING

表的列名。

allowed_privileges

VECTOR<STRING>

共用的許可權。

allowed_label

STRING

共用的標籤。

INSTALLED_PACKAGES

專案空間下已安裝的Package資訊。

欄位

類型

installed_package_catalog

STRING

固定值odps

installed_package_schema

STRING

專案名稱。

package_project

STRING

建立Package的專案空間名稱。

package_name

STRING

Package名稱。

installed_time

DATETIME

安裝時間(預留欄位)。

allowed_label

STRING

共用的標籤。

SCHEMA_PRIVILEGES

專案空間下SCHEMA的許可權資訊。

欄位

類型

user_catalog

STRING

固定值odps

user_schema

STRING

專案名稱。

grantee

STRING

使用者名稱。

user_id

STRING

賬戶ID。

grantor

STRING

授權者帳號,當前值為NULL。

privilege_type

STRING

權限類別型。

TABLE_PRIVILEGES

專案空間下表的許可權資訊。

欄位

類型

table_catalog

STRING

固定值odps

table_schema

STRING

表所在的專案名稱。

table_name

STRING

表名。

grantee

STRING

使用者名稱。

user_id

STRING

賬戶ID。

grantor

STRING

授權者帳號,當前值為NULL。

privilege_type

STRING

權限類別型。

user_schema

STRING

使用者所在的專案名稱。

COLUMN_PRIVILEGES

專案空間下表欄位級的許可權資訊。

欄位

類型

table_catalog

STRING

固定值odps

table_schema

STRING

表所在的專案名稱。

table_name

STRING

表名。

column_name

STRING

列名。

grantee

STRING

使用者名稱。

user_id

STRING

賬戶ID。

grantor

STRING

可選欄位。目前為NULL。

privilege_type

STRING

權限類別型。

user_schema

STRING

使用者所在的專案名稱。

UDF_PRIVILEGES

專案空間下UDF的許可權資訊。

欄位

類型

udf_catalog

STRING

固定值odps

udf_schema

STRING

專案名稱。

udf_name

STRING

UDF名稱。

user_schema

STRING

使用者所在的專案名稱。

grantee

STRING

使用者名稱。

user_id

STRING

賬戶ID。

grantor

STRING

授權者帳號,當前值為NULL。

privilege_type

STRING

權限類別型。

RESOURCE_PRIVILEGES

專案空間下資源的許可權資訊。

欄位

類型

resource_catalog

STRING

固定值odps

resource_schema

STRING

專案名稱。

resource_name

STRING

資源名稱。

user_schema

STRING

使用者所在專案空間。

grantee

STRING

使用者名稱。

user_id

STRING

賬戶ID。

grantor

STRING

授權者帳號,當前值為NULL。

privilege_type

STRING

權限類別型。

TABLE_LABELS

專案空間下表的LABEL資訊。

欄位

類型

table_catalog

STRING

固定值odps

table_schema

STRING

專案名稱。

table_name

STRING

表名。

label_type

STRING

標籤類型(始終為NULL)。

label_level

STRING

標籤等級。

COLUMN_LABELS

專案空間下表欄位級的LABEL資訊。

欄位

類型

table_catalog

STRING

固定值odps

table_schema

STRING

專案名稱。

table_name

STRING

表名。

column_name

STRING

欄位名。

label_type

STRING

標籤類型(始終為NULL)。

label_level

STRING

標籤等級。

TABLE_LABEL_GRANTS

專案空間下表的LABEL授權資訊。

欄位

類型

table_label_grant_catalog

STRING

固定值odps

table_label_grant_schema

STRING

使用者所在的專案名稱。

user

STRING

使用者名稱稱。

user_id

STRING

使用者的ID。

table_schema

STRING

表所在的專案名稱。

table_name

STRING

表名。

grantor

STRING

授權者帳號,當前值為NULL。

label_level

STRING

授予的標籤等級。

expired

DATETIME

到期時間。

COLUMN_LABEL_GRANTS

專案空間下表欄位的LABEL授權資訊。

欄位

類型

column_label_grant_catalog

STRING

固定值odps

column_label_grant_schema

STRING

使用者所在專案名稱。

user

STRING

使用者名稱稱。

user_id

STRING

使用者的ID。

table_schema

STRING

表所在的專案名稱。

table_name

STRING

表名。

column_name

STRING

欄位名。

grantor

STRING

授權者帳號,當前值為NULL。

label_level

STRING

授予的標籤等級。

expired

DATETIME

到期時間。

TASKS

作業即時快照,用於即時監控作業。

重要

TASKS視圖當前處於內測發布狀態,存在欄位和欄位內容變更的可能,無SLA保障,請您謹慎使用。後續發布狀態變更請關注公告

欄位

類型

project_name

STRING

專案名稱。

task_name

STRING

作業名稱。

task_type

STRING

作業類型。

作業類型取值如下:

  • SQL:SQL作業

  • CUPID:Spark或Mars作業

  • SQLCost:SQL預估作業

  • SQLRT:查詢加速SQL作業

  • LOT:MapReduce作業

  • PS:PAI的Parameter Server

  • AlgoTask:機器學習作業

inst_id

STRING

執行個體ID。

status

STRING

資料擷取瞬間的運行狀態,取值為Running或Waiting。

owner_id

STRING

作業提交人云帳號ID。

owner_name

STRING

作業提交人云帳號名稱。

start_time

DATETIME

作業啟動時間。

priority

BIGINT

作業優先順序,僅支援採用訂用帳戶資源的作業。

signature

STRING

作業簽名。

queue_name

STRING

計算隊列名稱。

cpu_usage

BIGINT

當前CPU用量,值為core×100。

mem_usage

BIGINT

當前記憶體用量,單位為MB。

gpu_usage

BIGINT

當前GPU用量,值為卡×100。

total_cpu_usage

BIGINT

累計CPU用量,值為core×100×s。

total_mem_usage

BIGINT

累計記憶體用量,值為MB×s。

total_gpu_usage

BIGINT

累計GPU用量,值為卡×100×s。

cpu_min_ratio

BIGINT

作業當前CPU用量佔用隊列保障水位比例,僅支援採用訂用帳戶資源的作業。

mem_min_ratio

BIGINT

作業當前記憶體用量佔用隊列保障水位比例,僅支援採用訂用帳戶資源的作業。

gpu_min_ratio

BIGINT

作業當前GPU用量佔用隊列保障水位比例,僅支援採用訂用帳戶資源的作業。

cpu_max_ratio

BIGINT

作業當前CPU用量佔用隊列最高彈性水位比例,僅支援採用訂用帳戶資源的作業。

mem_max_ratio

BIGINT

作業當前記憶體用量佔用隊列最高彈性水位比例,僅支援採用訂用帳戶資源的作業。

gpu_max_ratio

BIGINT

作業當前GPU用量佔用隊列最高彈性水位比例,僅支援採用訂用帳戶資源的作業。

settings

STRING

DataWorks等上層自訂調度設定。

additional_info

STRING

附加資訊,保留欄位。

TASKS_HISTORY

MaxCompute專案內已完成的作業歷史,保留近14天資料。

欄位

類型

task_catalog

STRING

固定值odps

task_schema

STRING

專案名稱。

task_name

STRING

作業名稱。

task_type

STRING

作業類型。

作業類型取值如下:

  • SQL:SQL作業

  • CUPID:Spark或Mars作業

  • SQLCost:SQL預估作業

  • SQLRT:查詢加速SQL作業

  • LOT:MapReduce作業

  • PS:PAI的Parameter Server

  • AlgoTask:機器學習作業

inst_id

STRING

執行個體ID。

status

STRING

資料擷取瞬間的運行狀態(非即時狀態)。包含以下狀態:

  • Terminated:作業已執行結束。

  • Failed:作業失敗。

  • Cancelled:作業被取消。

owner_id

STRING

賬戶ID。

owner_name

STRING

雲賬戶名稱。

result

STRING

僅在SQL作業出錯時有值,提供報錯資訊。

start_time

DATETIME

作業啟動時間。

end_time

DATETIME

作業結束時間(當天未結束為NULL)。

input_records

BIGINT

作業讀取的records數目。

output_records

BIGINT

作業輸出的records數目。

input_bytes

BIGINT

實際掃描的資料量,與Logview相同。

output_bytes

BIGINT

輸出位元組數。

input_tables

STRING

[project.table1,project.table2]格式的作業輸入表。有些作業無此資訊,如SQL COST類型作業。

output_tables

STRING

[project.table1,project.table2]格式的作業輸出表。

operation_text

STRING

查詢語句的source_xml(source_xml超過256 KB時值為NULL)。

signature

STRING

可選欄位。作業簽名。

complexity

DOUBLE

可選欄位,作業複雜度。僅SQL作業有此欄位。

cost_cpu

DOUBLE

作業CPU消耗(100表示1 core×s。例如:10 core運行5s,cost_cpu為10×100×5=5000)。

cost_mem

DOUBLE

作業記憶體消耗(MB×s)。

settings

STRING

上層調度或使用者傳入的資訊,以JSON格式儲存。包含欄位:USERAGENT、BIZID、SKYNET_ID和SKYNET_NODENAME。

ds

STRING

資料擷取日期。例如20190101。

TUNNELS_HISTORY

資料通道批量上傳下載的歷史資料,保留近14天資料。

欄位

類型

tunnel_catalog

STRING

固定值odps

tunnel_schema

STRING

專案名稱。

session_id

STRING

會話ID,格式為TIMESTAMP(YYYYMMDDHHmmss,14字元)+ ip(8字元)+ numHex(8字元)。例如2013060414484474e5e60a00000002。

operate_type

STRING

操作類型。取值範圍:

  • UPLOADLOG

  • DOWNLOADLOG

  • DOWNLOADINSTANCELOG

tunnel_type

STRING

通道類型。取值為TUNNEL LOG或TUNNEL INSTANCE LOG。

request_id

STRING

請求ID。

object_type

STRING

操作物件類型。取值為TABLE或INSTANCE。

object_name

STRING

表名稱或執行個體ID。

partition_spec

STRING

分區資訊。例如time=20130222,loc=beijing

data_size

BIGINT

資料的位元組數,單位:位元組(Byte)。

block_id

BIGINT

Tunnel上傳的Block編號。當操作類型是UPLOADLOG時有效,否則為空白。

offset

BIGINT

下載的起始位移位置,表示從第幾條記錄開始(起始是0)。

length

BIGINT

即record_count,本次下載或上傳的記錄數(下載的記錄數為使用者指定的length值)。

owner_id

STRING

雲賬戶ID。

owner_name

STRING

雲賬戶名稱。

start_time

DATETIME

請求開始時間。

end_time

DATETIME

請求結束時間。

client_ip

STRING

發起Tunnel請求的用戶端IP地址。

user_agent

STRING

User Agent,發起Tunnel請求的用戶端的相關資訊。例如Java版本、作業系統。

columns

STRING

Tunnel下載資料時指定列的集合。

ds

STRING

資料擷取日期。例如20190101。