すべてのプロダクト
Search
ドキュメントセンター

:データ公開機能を使用する

最終更新日:Jan 14, 2025

DataWorks のデータ公開パッケージをインストールすると、データ公開機能を使用して DataWorks でメタデータを収集し、後続のデータガバナンスと O&M にメタデータを使用できます。このトピックでは、データ公開機能のシナリオと、この機能を使用するために必要なコマンドについて説明します。

前提条件

データ公開パッケージがインストールされています。詳細については、「データ公開パッケージのインストールと削除」をご参照ください。

手順

以下のセクションでは、DataWorks の MaxCompute ノードからさまざまな種類のメタデータを取得するために使用されるコマンドについて説明します。これらのコマンドを使用する前に、MaxCompute ノードのコード編集ページに移動します。

  1. DataStudio ページに移動します。
    1. DataWorks コンソール にログオンします。.
    2. 左側のナビゲーションペインで、[ワークスペース] をクリックします。
    3. [ワークスペース] ページで、目的のワークスペースを見つけ、[アクション] 列の [データ分析] をクリックします。
  2. MaxCompute ノードのコード編集ページに移動します。
    左側のナビゲーションペインで、[ビジネスフロー] をクリックし、ワークフローを見つけてから、ワークフロー名をクリックします。次に、[MaxCompute] を右クリックし、[作成] > [ODPS SQL] を選択します。[ノードの作成] ダイアログボックスで、MaxCompute SQL ノードの作成に必要なパラメーターを設定します。
MaxCompute SQL ノードが設定されると、ノードのコード編集ページが表示されます。このページでは、データ公開機能を使用して、次の種類のメタデータをクエリできます。

MaxCompute プロジェクトで作成されたデータベースを表示する

データ公開機能によって提供される raw_v_meta_database ビューを使用して、MaxCompute プロジェクトで作成されたデータベースをクエリできます。操作を実行するには、次のコマンドを実行します。
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');
次の図は、クエリ結果を示しています。Query result 1クエリ結果のフィールドの詳細については、「データベース (MaxCompute プロジェクト) のメタデータの詳細: raw_v_meta_database」をご参照ください。

MaxCompute プロジェクトのテーブルを表示する

データ公開機能によって提供される raw_v_meta_table ビューを使用して、MaxCompute プロジェクトのテーブルをクエリできます。操作を実行するには、次のコマンドを実行します。
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'
;
次の図は、クエリ結果を示しています。Query result 2クエリ結果のフィールドの詳細については、「テーブルのメタデータの詳細: raw_v_meta_table」をご参照ください。

テーブルの統計情報を表示する

データ公開機能によって提供される 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'
;
上記のコマンドでは、次のとおりです。
  • 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'
;
次の図は、クエリ結果を示しています。Query result 3クエリ結果のフィールドの詳細については、「コアテーブルメトリック: rpt_v_meta_ind_table_core」と「追加のテーブルメトリック: rpt_v_meta_ind_table_extra」をご参照ください。

出力テーブルのノードの詳細を表示する

データ公開機能によって提供される 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'
;
次の図は、クエリ結果を示しています。Query result 4クエリ結果のフィールドの詳細については、「テーブル出力タスクのメタデータの詳細: 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 を指定します。
次のコードは、コマンドの例を示しています。
  1. 本番環境のプロジェクトのノードの上位ノードをクエリします。
    -- 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'
     )
    ;
    次の図は、クエリ結果を示しています。5.1
  2. 本番環境のプロジェクトのノードの下位ノードをクエリします。
    -- 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'
     )
    ;
    次の図は、クエリ結果を示しています。5.2
クエリ結果のフィールドの詳細については、「スケジューリングノードの詳細: raw_v_schedule_node」と「スケジューリングノードの関係: raw_v_schedule_node_relation」をご参照ください。

テーブルまたはノードの所有者の詳細をクエリする

データ公開機能によって提供される 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 を指定します。

次のコードは、コマンドの例を示しています。

  1. 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'
    ;
    次の図は、クエリ結果を示しています。6.1
  2. 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'
    ;
    次の図は、クエリ結果を示しています。6.2
クエリ結果のフィールドの詳細については、「スケジューリングノードの詳細: raw_v_schedule_node」と「スケジューリングノードの関係: raw_v_schedule_node_relation」をご参照ください。

次のステップ

データ公開機能によって提供されるビューは、yyyyMMdd 形式の日付パラメーターをサポートしています。日付に基づいてパーティションを作成し、過去 30 日間の履歴データをクエリできます。メトリックトレンド分析などの要件がある場合は、業務日付別にデータをクエリできます。その後、データをプロジェクトに保存し、メトリック分析の実行に必要な履歴データとして使用できます。