DataWorks データ公開パッケージをインストールすると、データ公開機能を使用してメタデータを取得できます。これにより、後続のデータガバナンスと O&M のためのデータを準備できます。このトピックでは、データ公開機能の主なユースケースと必要なコマンドについて説明します。
DataWorks は、ビジュアルユーザーインターフェースを使用してメタデータを参照および管理できる新しいデータ公開機能をリリースしました。この機能の正式版を使用することを推奨します。詳細については、「データ公開機能の使用」をご参照ください。
前提条件
データ公開パッケージがインストールされていること。詳細については、「データ公開パッケージのインストールまたはアンインストール (招待制バージョンは間もなく非推奨)」をご参照ください。
使用方法
このトピックでは、DataWorks の ODPS SQL ノードを例として、データ公開機能を使用してさまざまな種類のメタデータを取得するコマンドについて説明します。コマンドを実行する前に、ODPS SQL ノードのコードエディタに移動します。次の手順に従ってください。
- DataStudio ページに移動します。
- DataWorks コンソール。
- 左側のナビゲーションウィンドウで、[Workspaces] をクリックします。
- [Workspaces] ページで、目的のワークスペースを見つけ、[操作] 列の [Data Analytics] をクリックします。
ODPS SQL ノードのコードエディタに移動します。
[ビジネスフロー] ペインで、MaxCompute コンピューティングエンジンの下にある [データ開発] を見つけます。[データ開発] を右クリックし、[作成] > [ODPS SQL] を選択して ODPS SQL ノードを作成します。
データ公開機能を使用して、さまざまな種類のメタデータを取得できます。
作成済みデータベース (MaxCompute プロジェクト) の表示
DataWorks のデータ公開機能の raw_v_meta_database ビューは、作成されたデータベースをクエリするために使用されます。コマンドは次のとおりです。
SELECT * FROM u_meta_hangzhou.raw_v_meta_database_<version>('<business_date>');次の表でパラメーターについて説明します。
バージョン情報:使用されるデータ公開機能のバージョン。フォーマットは v1_1 のようになります。`DESCRIBE PACKAGE` コマンドを実行して実際のバージョンをクエリできます。詳細については、「DataWorks データ公開機能によって提供されるテーブルまたはビューの表示」をご参照ください。
ビジネス日付:メタデータを表示するビジネス日付を yyyymmdd フォーマットで指定します。ビジネス日付を指定しない場合、すべての日付のメタデータが表示されます。
以下にコード例を示します。
-- 2021年1月9日に作成されたデータベースのリストをクエリします。
SELECT * FROM u_meta_hangzhou.raw_v_meta_database_v1_1('20210109');クエリ結果の例:
クエリ結果のフィールドの詳細については、「データベース (MaxCompute プロジェクト) のメタデータ:raw_v_meta_database」をご参照ください。
プロジェクト内のテーブルの表示
DataWorks のデータ公開機能の raw_v_meta_table ビューは、プロジェクト内のテーブルに関する情報をクエリするために使用されます。コマンドは次のとおりです。
SELECT *
FROM u_meta_hangzhou.raw_v_meta_table_<version>('<business_date>')
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日に isv2 という名前の MaxCompute プロジェクト内の 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'
;クエリ結果の例:
クエリ結果のフィールドの詳細については、「テーブルメタデータ: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_<version>('<business_date>') c
LEFT OUTER JOIN u_meta_hangzhou.rpt_v_meta_ind_table_extra_<version>('<business_date>') 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日に isv2 という名前の MaxCompute プロジェクト内の 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'
;クエリ結果の例:
クエリ結果のフィールドの詳細については、「コアテーブルメトリック:rpt_v_meta_ind_table_core」および「追加テーブルメトリック: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_<version>('<business_date>') o
LEFT OUTER JOIN u_meta_hangzhou.raw_v_schedule_node_<version>('<business_date>') 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 プロジェクト内の ods_user_info_d という名前の odps テーブルの本番ノードの詳細をクエリします。
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'
;クエリ結果の例:
クエリ結果のフィールドの詳細については、「テーブル出力ノードメタデータ: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_<version>('<business_date>') 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_<version>('<business_date>') 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_<version>('<business_date>') 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_<version>('<business_date>') 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:クエリするノードの 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」をご参照ください。
テーブルとノードのオーナーの表示
DataWorks のデータ公開機能の raw_v_meta_table および raw_v_tenant_user ビューを使用して、テーブルまたはノードのオーナー詳細をクエリできます。コマンドは次のとおりです。
テーブルのオーナー詳細をクエリします。
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_<version>('<business_date>') c LEFT OUTER JOIN u_meta_hangzhou.raw_v_tenant_user_<version>('<business_date>') 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:クエリするテーブルの名前。これを実際のテーブル名に置き換えます。
ノードのオーナー詳細をクエリします。
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_<version>('<business_date>') t LEFT OUTER JOIN u_meta_hangzhou.raw_v_tenant_user_<version>('<business_date>') u ON t.create_user = u.yun_account LEFT OUTER JOIN u_meta_hangzhou.raw_v_tenant_user_<version>('<business_date>') 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」をご参照ください。
次のステップ
データ公開機能によって提供されるビューは、yyyyMMdd フォーマットの日付パラメーターを受け入れます。このパラメーターを使用して、日付でデータをパーティション分割し、過去 30 日間の履歴データを取得できます。メトリックトレンド分析を実行する必要がある場合は、ビジネス日付でデータを取得し、プロジェクトに保存して履歴分析を行うことができます。