安裝完成DataWorks開放資料Package後,您可使用開放資料來擷取各中繼資料資訊,為後續資料治理和營運做好資料準備。本文為您介紹開放資料的主要應用情境和使用命令。
前提條件
已完成安裝開放資料Package,詳情可參見安裝/卸載開放資料Package。
使用引導
本文以在DataWorks的ODPS節點中使用開放資料擷取各類別中繼資料資訊為例,為您介紹主要使用開放資料的操作命令。各操作命令使用前需先進入ODPS節點的代碼編輯頁面,步驟如下。
- 進入DataStudio頁面。
- 登入DataWorks控制台。
- 在左側導覽列,單擊工作空間列表。
- 在對應工作空間的操作列單擊進入資料開發。
進入ODPS節點的代碼編輯頁面。
在商務程序中找到MaxCompute引擎下的資料開發,右鍵建立一個ODPS SQL節點。
進入頁面後您可使用開放資料擷取各類別中繼資料資訊:
查看已建立的資料庫(MaxCompute專案)
DataWorks開放資料中的raw_v_meta_database視圖用於查詢已建立的資料庫,查看命令如下。
SELECT * FROM u_meta_hangzhou.raw_v_meta_database_版本資訊('業務日期');其中:
版本資訊:安裝使用的開放資料的版本,格式為類似v1_1的格式,您可執行DESCRIBE PACKAGE查詢實際使用的版本詳情可參見查看DataWorks開放資料提供的表或視圖。
業務日期:查看指定業務日期內的中繼資料資訊,格式為yyyymmdd,如果不指定具體業務日期,則查看所有日期內的中繼資料資訊。
以下為一個查詢操作的命令範例。
-- 查詢2021年1月9日建立的資料庫列表。
SELECT * FROM u_meta_hangzhou.raw_v_meta_database_v1_1('20210109');查詢結果範例:
查詢結果各欄位明細說明可參見資料庫(ODPS專案)中繼資料明細raw_v_meta_database。
查看專案中的表
DataWorks開放資料中的raw_v_meta_table視圖用於查詢專案中的表資訊,查看命令如下。
SELECT *
FROM u_meta_hangzhou.raw_v_meta_table_版本資訊('業務日期')
WHERE catalog_name = 'your_catalog_name'
AND database_name = 'your_database_name'
AND table_name = 'your_table_name'
;其中:
版本資訊:安裝使用的開放資料的版本,格式為類似v1_1的格式,您可執行DESCRIBE PACKAGE查詢實際使用的版本詳情可參見查看DataWorks開放資料提供的表或視圖。
業務日期:查看指定業務日期內的中繼資料資訊,格式為yyyymmdd,如果不指定具體業務日期,則查看所有日期內的中繼資料資訊。
your_catalog_name:查看指定計算引擎的中繼資料資訊,當前請配置為odps。
your_database_name:查看指定專案內的中繼資料資訊,實際配置時請配置為需查詢的專案名稱。
your_table_name:查看指定表的中繼資料資訊,實際配置時請配置為需查詢的表名稱。
以下為一個查詢操作的命令範例。
-- 查詢2021年1月9日,MaxCompute的isv2專案下名稱為ods_user_info_d的表的資料
SELECT *
FROM u_meta_hangzhou.raw_v_meta_table_v1_1('20210109')
WHERE catalog_name = 'odps'
AND database_name = 'isv2'
AND table_name = 'ods_user_info_d'
;查詢結果範例:
查詢結果各欄位明細說明可參見表(table)中繼資料明細raw_v_meta_table。
查詢表的統計資訊
DataWorks開放資料中的rpt_v_meta_ind_table_core和rpt_v_meta_ind_table_extra視圖可用於查詢表的統計資訊,如租戶ID、表生命週期等資訊,查看命令如下。
SELECT c.tenant_id, c.table_uuid, c.dim_life_cycle, c.is_partition_table, c.entity_type, c.categories, c.last_access_time, c.partition_count, c.favorite_count, e.output_task_count
FROM u_meta_hangzhou.rpt_v_meta_ind_table_core_版本資訊('業務日期') c
LEFT OUTER JOIN u_meta_hangzhou.rpt_v_meta_ind_table_extra_版本資訊('業務日期') e
ON c.table_uuid = e.table_uuid AND c.tenant_id = e.tenant_id
WHERE c.catalog_name = 'your_catalog_name'
AND c.database_name = 'your_database_name'
AND c.table_name = 'your_table_name'
;其中:
版本資訊:安裝使用的開放資料的版本,格式為類似v1_1的格式,您可執行DESCRIBE PACKAGE查詢實際使用的版本詳情可參見查看DataWorks開放資料提供的表或視圖。
業務日期:查看指定業務日期內的中繼資料資訊,格式為yyyymmdd,如果不指定具體業務日期,則查看所有日期內的中繼資料資訊。
your_catalog_name:查看指定計算引擎的中繼資料資訊,當前請配置為odps。
your_database_name:查看指定專案內的中繼資料資訊,實際配置時請配置為需查詢的專案名稱。
your_table_name:查看指定表的中繼資料資訊,實際配置時請配置為需查詢的表名稱。
以下為一個查詢操作的命令範例。
--查詢在2021年1月9日,MaxCompute的isv2專案下名稱為ods_user_info_d表的統計資訊
SELECT c.tenant_id, c.table_uuid, c.dim_life_cycle, c.is_partition_table, c.entity_type, c.categories, c.last_access_time, c.partition_count, c.favorite_count, e.output_task_count
FROM u_meta_hangzhou.rpt_v_meta_ind_table_core_v1_1('20210109') c
LEFT OUTER JOIN u_meta_hangzhou.rpt_v_meta_ind_table_extra_v1_1('20210109') e
ON c.table_uuid = e.table_uuid AND c.tenant_id = e.tenant_id
WHERE c.catalog_name = 'odps'
AND c.database_name = 'isv2'
AND c.table_name = 'ods_user_info_d'
;查詢結果範例:
查詢結果各欄位明細說明可參見Table核心指標rpt_v_meta_ind_table_core和Table額外指標rpt_v_meta_ind_table_extra。
查看產出表的任務詳情
DataWorks開放資料中的raw_v_meta_table_output和raw_v_schedule_node視圖可用於查詢表的任務詳情,查看命令如下。
SELECT s.*, o.schedule_instance_id, execute_time
FROM u_meta_hangzhou.raw_v_meta_table_output_版本資訊('業務日期') o
LEFT OUTER JOIN u_meta_hangzhou.raw_v_schedule_node_版本資訊('業務日期') s
ON o.schedule_task_id = s.node_id
WHERE o.type = 'your_table_type'
AND o.database = 'your_database_name'
AND o.table = 'your_table_name'
AND s.project_env = 'your_project_environment'
;其中:
版本資訊:安裝使用的開放資料的版本,格式為類似v1_1的格式,您可執行DESCRIBE PACKAGE查詢實際使用的版本詳情可參見查看DataWorks開放資料提供的表或視圖。
業務日期:查看指定業務日期內的中繼資料資訊,格式為yyyymmdd,如果不指定具體業務日期,則查看所有日期內的中繼資料資訊。
your_table_type:查看指定產出表類型的中繼資料資訊。當前僅支援MaxCompute使用,請配置為odps。
your_database_name:查看指定專案內的中繼資料資訊,實際配置時請配置為需查詢的專案名稱。
your_table_name:查看指定表的中繼資料資訊,實際配置時請配置為需查詢的表名稱。
your_project_environment:查看指定專案環境的中繼資料資訊。查看開發環境請配置為DEV,查看生產環境請配置為PROD。
以下為一個查詢操作的命令範例。
-- 查看2021年1月9日,xc_simple_e1下類型為odps、表名為ods_user_info_d的表的生產任務詳情。
SELECT s.*, o.schedule_instance_id, execute_time
FROM u_meta_hangzhou.raw_v_meta_table_output_v1_1('20210109') o
LEFT OUTER JOIN u_meta_hangzhou.raw_v_schedule_node_v1_1('20210109') s
ON o.schedule_task_id = s.node_id
WHERE o.type = 'odps'
AND o.database = 'xc_simple_e1'
AND o.table = 'ods_user_info_d'
AND s.project_env = 'PROD'
;查詢結果範例:
查詢結果各欄位明細說明可參見表產出任務(table-output)中繼資料明細raw_v_meta_table_output和調度節點明細raw_v_schedule_node。
查看某個任務的上下遊工作清單
DataWorks開放資料中的raw_v_schedule_node和raw_v_schedule_node_relation視圖可用於查詢某個任務的上下遊工作清單,查看命令如下。
-- 查看上遊節點列表
SELECT *
FROM u_meta_hangzhou.raw_v_schedule_node_版本資訊('業務日期') t
WHERE t.project_env = 'your_project_environment'
AND t.node_id IN (
SELECT parent_node_id
FROM u_meta_hangzhou.raw_v_schedule_node_relation_版本資訊('業務日期') r
WHERE r.child_node_id = your_child_node_id
AND r.project_env = 'your_project_environment'
)
;
-- 查看下遊節點列表
SELECT *
FROM u_meta_hangzhou.raw_v_schedule_node_版本資訊('業務日期') t
WHERE t.project_env = 'your_project_environment'
AND t.node_id IN (
SELECT child_node_id
FROM u_meta_hangzhou.raw_v_schedule_node_relation_版本資訊('業務日期') r
WHERE r.child_node_id = your_child_node_id
AND r.project_env = 'your_project_environment'
)
;其中:
版本資訊:安裝使用的開放資料的版本,格式為類似v1_1的格式,您可執行DESCRIBE PACKAGE查詢實際使用的版本詳情可參見查看DataWorks開放資料提供的表或視圖。
業務日期:查看指定業務日期內的中繼資料資訊,格式為yyyymmdd,如果不指定具體業務日期,則查看所有日期內的中繼資料資訊。
your_project_environment:查看指定專案環境的中繼資料資訊。查看開發環境請配置為DEV,查看生產環境請配置為PROD。
your_child_node_id:查看指定某節點的中繼資料資訊。
以下為一個查詢操作的命令範例。
擷取某節點在生產專案中的上遊節點列表。
-- 擷取在2021年1月9日,生產環境中,節點1000550985的上遊節點列表 SELECT * FROM u_meta_hangzhou.raw_v_schedule_node_v1_1('20210109') t WHERE t.project_env = 'PROD' AND t.node_id IN ( SELECT parent_node_id FROM u_meta_hangzhou.raw_v_schedule_node_relation_v1_1('20210109') r WHERE r.child_node_id = 1000550985 AND r.project_env = 'PROD' ) ;查詢結果範例:

擷取某節點在生產專案中的下遊節點列表。
-- 擷取在2021年1月9日,生產環境中,節點1000550985的下遊節點列表 SELECT * FROM u_meta_hangzhou.raw_v_schedule_node_v1_1('20210109') t WHERE t.project_env = 'PROD' AND t.node_id IN ( SELECT child_node_id FROM u_meta_hangzhou.raw_v_schedule_node_relation_v1_1('20210109') r WHERE r.parent_node_id = 1000550985 AND r.project_env = 'PROD' ) ;查詢結果範例:

查詢結果各欄位明細說明可參見調度節點明細raw_v_schedule_node和調度節點關係raw_v_schedule_node_relation。
擷取表或任務的Owner詳情
DataWorks開放資料中的raw_v_meta_table和raw_v_tenant_user視圖可用於查詢某個表或任務的Owner詳情,查看命令如下。
查看錶Owner詳情。
SELECT c.catalog_name, c.database_name, c.table_name, c.owner_name, u.account_name, u.nick FROM u_meta_hangzhou.raw_v_meta_table_版本資訊('業務日期') c LEFT OUTER JOIN u_meta_hangzhou.raw_v_tenant_user_版本資訊('業務日期') u ON c.owner_name = TOLOWER(u.yun_account) WHERE c.catalog_name = 'your_catalog_name' AND c.database_name = 'your_database_name' AND c.table_name = 'your_table_name' ;其中:
版本資訊:安裝使用的開放資料的版本,格式為類似v1_1的格式,您可執行DESCRIBE PACKAGE查詢實際使用的版本詳情可參見查看DataWorks開放資料提供的表或視圖。
業務日期:查看指定業務日期內的中繼資料資訊,格式為yyyymmdd,如果不指定具體業務日期,則查看所有日期內的中繼資料資訊。
your_catalog_name:查看指定計算引擎的中繼資料資訊,當前請配置為odps。
your_database_name:查看指定專案內的中繼資料資訊,實際配置時請配置為需查詢的專案名稱。
your_table_name:查看指定表的中繼資料資訊,實際配置時請配置為需查詢的表名稱。
查看任務Owner詳情。
SELECT t.project_id, t.node_id, t.node_name, t.create_user, u.account_name AS create_user_name, u.nick as create_user_nick, t.modify_user, m.account_name AS modify_user_name, m.nick as modify_user_nick FROM u_meta_hangzhou.raw_v_schedule_node_版本資訊('業務日期') t LEFT OUTER JOIN u_meta_hangzhou.raw_v_tenant_user_版本資訊('業務日期') u ON t.create_user = u.yun_account LEFT OUTER JOIN u_meta_hangzhou.raw_v_tenant_user_版本資訊('業務日期') m ON t.modify_user = m.yun_account WHERE t.node_id = your_node_id AND t.project_env = 'your_project_environment' ;其中:
版本資訊:安裝使用的開放資料的版本,格式為類似v1_1的格式,您可執行DESCRIBE PACKAGE查詢實際使用的版本詳情可參見查看DataWorks開放資料提供的表或視圖。
業務日期:查看指定業務日期內的中繼資料資訊,格式為yyyymmdd,如果不指定具體業務日期,則查看所有日期內的中繼資料資訊。
your_project_environment:查看指定專案環境的中繼資料資訊。查看開發環境請配置為DEV,查看生產環境請配置為PROD。
your_node_id:查看指定ID節點的中繼資料資訊。
以下為一個查詢操作的命令範例。
查看2021年1月9日,表所有者詳情資料。
SELECT c.catalog_name, c.database_name, c.table_name, c.owner_name, u.account_name, u.nick FROM u_meta_hangzhou.raw_v_meta_table_v1_1('20210109') c LEFT OUTER JOIN u_meta_hangzhou.raw_v_tenant_user_v1_1('20210109') u ON c.owner_name = TOLOWER(u.yun_account) WHERE c.catalog_name = 'odps' AND c.database_name = 'isv2' AND c.table_name = 'ods_user_info_d' ;查詢結果範例:

查看2021年1月9日,調度任務所有者和修改者詳情資料。
SELECT t.project_id, t.node_id, t.node_name, t.create_user, u.account_name AS create_user_name, u.nick as create_user_nick, t.modify_user, m.account_name AS modify_user_name, m.nick as modify_user_nick FROM u_meta_hangzhou.raw_v_schedule_node_v1_1('20210109') t LEFT OUTER JOIN u_meta_hangzhou.raw_v_tenant_user_v1_1('20210109') u ON t.create_user = u.yun_account LEFT OUTER JOIN u_meta_hangzhou.raw_v_tenant_user_v1_1('20210109') m ON t.modify_user = m.yun_account WHERE t.node_id = 1000454827 AND t.project_env = 'PROD' ;查詢結果範例:

查詢結果各欄位明細說明可參見調度節點明細raw_v_schedule_node和調度節點關係raw_v_schedule_node_relation。
後續步驟
DataWorks開放資料提供的視圖可以接收日期(yyyyMMdd格式)參數,可按照日期分區,允許擷取最近30天內的歷史資料。如果有指標趨勢分析等需求,您可以按照業務日期擷取資料,將資料儲存專案中,作為指標分析所需的歷史資料。