DataWorks のデータ公開パッケージをインストールすると、データ公開機能を使用して DataWorks でメタデータを収集し、後続のデータガバナンスと O&M にメタデータを使用できます。このトピックでは、データ公開機能のシナリオと、この機能を使用するために必要なコマンドについて説明します。
前提条件
データ公開パッケージがインストールされています。詳細については、「データ公開パッケージのインストールと削除」をご参照ください。
手順
以下のセクションでは、DataWorks の MaxCompute ノードからさまざまな種類のメタデータを取得するために使用されるコマンドについて説明します。これらのコマンドを使用する前に、MaxCompute ノードのコード編集ページに移動します。
- DataStudio ページに移動します。
- DataWorks コンソール にログオンします。.
- 左側のナビゲーションペインで、[ワークスペース] をクリックします。
- [ワークスペース] ページで、目的のワークスペースを見つけ、[アクション] 列の [データ分析] をクリックします。
- MaxCompute ノードのコード編集ページに移動します。左側のナビゲーションペインで、[ビジネスフロー] をクリックし、ワークフローを見つけてから、ワークフロー名をクリックします。次に、[MaxCompute] を右クリックし、[作成] > [ODPS SQL] を選択します。[ノードの作成] ダイアログボックスで、MaxCompute SQL ノードの作成に必要なパラメーターを設定します。
MaxCompute プロジェクトで作成されたデータベースを表示する
データ公開機能によって提供される raw_v_meta_database ビューを使用して、MaxCompute プロジェクトで作成されたデータベースをクエリできます。操作を実行するには、次のコマンドを実行します。
クエリ結果のフィールドの詳細については、「データベース (MaxCompute プロジェクト) のメタデータの詳細: raw_v_meta_database」をご参照ください。
SELECT * FROM u_meta_hangzhou.raw_v_meta_database_Version('Business date');上記のコマンドでは、次のとおりです。- Version: インストールして使用するデータ公開パッケージのバージョンを指定します。バージョンの形式は v1_1 のようになります。 DESCRIBE PACKAGE コマンドを実行して、使用しているデータ公開パッケージの実際のバージョンをクエリできます。詳細については、「データ公開パッケージによって提供されるテーブルまたはビューを表示する」をご参照ください。
- Business date: メタデータ情報を表示する特定の業務日付を表します。日付は yyyymmdd 形式で表されます。特定の業務日付を指定しない場合は、すべての業務日付のメタデータ情報がクエリされます。
-- 2021 年 1 月 9 日に作成されたデータベースをクエリします。
SELECT * FROM u_meta_hangzhou.raw_v_meta_database_v1_1('20210109');次の図は、クエリ結果を示しています。
クエリ結果のフィールドの詳細については、「データベース (MaxCompute プロジェクト) のメタデータの詳細: raw_v_meta_database」をご参照ください。MaxCompute プロジェクトのテーブルを表示する
データ公開機能によって提供される raw_v_meta_table ビューを使用して、MaxCompute プロジェクトのテーブルをクエリできます。操作を実行するには、次のコマンドを実行します。
クエリ結果のフィールドの詳細については、「テーブルのメタデータの詳細: 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'
;上記のコマンドでは、次のとおりです。- Version: インストールして使用するデータ公開パッケージのバージョンを指定します。バージョンの形式は v1_1 のようになります。 DESCRIBE PACKAGE コマンドを実行して、使用しているデータ公開パッケージの実際のバージョンをクエリできます。詳細については、「データ公開パッケージによって提供されるテーブルまたはビューを表示する」をご参照ください。
- Business date: メタデータ情報を表示する特定の業務日付を表します。日付は 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'
;次の図は、クエリ結果を示しています。
クエリ結果のフィールドの詳細については、「テーブルのメタデータの詳細: raw_v_meta_table」をご参照ください。テーブルの統計情報を表示する
データ公開機能によって提供される rpt_v_meta_ind_table_core ビューと rpt_v_meta_ind_table_extra ビューを使用して、テナント ID やライフサイクルなど、テーブルの統計情報をクエリできます。操作を実行するには、次のコマンドを実行します。
クエリ結果のフィールドの詳細については、「コアテーブルメトリック: rpt_v_meta_ind_table_core」と「追加のテーブルメトリック: rpt_v_meta_ind_table_extra」をご参照ください。
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'
;上記のコマンドでは、次のとおりです。- Version: インストールして使用するデータ公開パッケージのバージョンを指定します。バージョンの形式は v1_1 のようになります。 DESCRIBE PACKAGE コマンドを実行して、使用しているデータ公開パッケージの実際のバージョンをクエリできます。詳細については、「データ公開パッケージによって提供されるテーブルまたはビューを表示する」をご参照ください。
- Business date: メタデータ情報を表示する特定の業務日付を表します。日付は 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'
;次の図は、クエリ結果を示しています。
クエリ結果のフィールドの詳細については、「コアテーブルメトリック: rpt_v_meta_ind_table_core」と「追加のテーブルメトリック: rpt_v_meta_ind_table_extra」をご参照ください。出力テーブルのノードの詳細を表示する
データ公開機能によって提供される raw_v_meta_table_output ビューと raw_v_schedule_node ビューを使用して、出力テーブルのノードの詳細をクエリできます。操作を実行するには、次のコマンドを実行します。
クエリ結果のフィールドの詳細については、「テーブル出力タスクのメタデータの詳細: 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'
;上記のコマンドでは、次のとおりです。- Version: インストールして使用するデータ公開パッケージのバージョンを指定します。バージョンの形式は v1_1 のようになります。 DESCRIBE PACKAGE コマンドを実行して、使用しているデータ公開パッケージの実際のバージョンをクエリできます。詳細については、「データ公開パッケージによって提供されるテーブルまたはビューを表示する」をご参照ください。
- Business date: メタデータ情報を表示する特定の業務日付を表します。日付は yyyymmdd 形式で表されます。特定の業務日付を指定しない場合は、すべての業務日付のメタデータ情報がクエリされます。
- your_table_type: メタデータを表示する出力テーブルのタイプを指定します。MaxCompute タイプのみを指定できます。値を odps に設定します。
- your_database_name: メタデータ情報を表示するプロジェクトの名前を指定します。ビジネス要件に基づいてこのパラメーターを指定できます。
- your_table_name: メタデータ情報を表示するテーブルの名前を指定します。ビジネス要件に基づいてこのパラメーターを指定できます。
- your_project_environment: メタデータを表示する MaxCompute プロジェクトの環境を指定します。開発環境の MaxCompute プロジェクトのメタデータを表示する場合は、値を DEV に設定します。本番環境の MaxCompute プロジェクトのメタデータを表示する場合は、値を PROD に設定します。
-- 2021 年 1 月 9 日の xc_simple_e1 プロジェクトの MaxCompute テーブル 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'
;次の図は、クエリ結果を示しています。
クエリ結果のフィールドの詳細については、「テーブル出力タスクのメタデータの詳細: raw_v_meta_table_output」と「スケジューリングノードの詳細: raw_v_schedule_node」をご参照ください。ノードの上位ノードと下位ノードを表示する
データ公開機能によって提供される 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'
)
;上記のコマンドでは、次のとおりです。- Version: インストールして使用するデータ公開パッケージのバージョンを指定します。バージョンの形式は v1_1 のようになります。 DESCRIBE PACKAGE コマンドを実行して、使用しているデータ公開パッケージの実際のバージョンをクエリできます。詳細については、「データ公開パッケージによって提供されるテーブルまたはビューを表示する」をご参照ください。
- Business date: メタデータ情報を表示する特定の業務日付を表します。日付は yyyymmdd 形式で表されます。特定の業務日付を指定しない場合は、すべての業務日付のメタデータ情報がクエリされます。
- your_project_environment: メタデータを表示する MaxCompute プロジェクトの環境を指定します。開発環境の MaxCompute プロジェクトのメタデータを表示する場合は、値を DEV に設定します。本番環境の MaxCompute プロジェクトのメタデータを表示する場合は、値を 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_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' ;- Version: インストールして使用するデータ公開パッケージのバージョンを指定します。バージョンの形式は v1_1 のようになります。 DESCRIBE PACKAGE コマンドを実行して、使用しているデータ公開パッケージの実際のバージョンをクエリできます。詳細については、「データ公開パッケージによって提供されるテーブルまたはビューを表示する」をご参照ください。
- Business date: メタデータ情報を表示する特定の業務日付を表します。日付は 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' ;- Version: インストールして使用するデータ公開パッケージのバージョンを指定します。バージョンの形式は v1_1 のようになります。 DESCRIBE PACKAGE コマンドを実行して、使用しているデータ公開パッケージの実際のバージョンをクエリできます。詳細については、「データ公開パッケージによって提供されるテーブルまたはビューを表示する」をご参照ください。
- Business date: メタデータ情報を表示する特定の業務日付を表します。日付は yyyymmdd 形式で表されます。特定の業務日付を指定しない場合は、すべての業務日付のメタデータ情報がクエリされます。
- your_project_environment: メタデータを表示する MaxCompute プロジェクトの環境を指定します。開発環境の MaxCompute プロジェクトのメタデータを表示する場合は、値を DEV に設定します。本番環境の MaxCompute プロジェクトのメタデータを表示する場合は、値を 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' ;
次のステップ
データ公開機能によって提供されるビューは、yyyyMMdd 形式の日付パラメーターをサポートしています。日付に基づいてパーティションを作成し、過去 30 日間の履歴データをクエリできます。メトリックトレンド分析などの要件がある場合は、業務日付別にデータをクエリできます。その後、データをプロジェクトに保存し、メトリック分析の実行に必要な履歴データとして使用できます。