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

:オープンデータの使用

最終更新日:Jul 25, 2026

DataWorks のオープンデータパッケージをインストールすると、オープンデータを使用してメタデータを取得できます。これにより、後続のデータガバナンスや O&M (運用と保守) のためのデータを準備できます。このトピックでは、オープンデータの主なユースケースと必要なコマンドについて説明します。

重要

DataWorks は、ビジュアルなユーザーインターフェースを使用してメタデータを参照および管理できる新しいオープンデータをリリースしました。この機能の正式版を使用することを推奨します。詳細については、「オープンデータの使用」をご参照ください。

前提条件

オープンデータパッケージがインストール済みであること。詳細については、「オープンデータパッケージのインストールまたはアンインストール (招待制バージョンは間もなく非推奨)」をご参照ください。

使用方法

このトピックでは、DataWorks の ODPS SQL ノードを例に、オープンデータを使用してさまざまな種類のメタデータを取得するコマンドについて説明します。コマンドを実行する前に、ODPS SQL ノードのコードエディタに移動します。次の手順に従ってください。

  1. DataStudio ページに移動します。
    1. DataWorks コンソールにログインします。
    2. 左側のナビゲーションウィンドウで、[Workspaces] をクリックします。
    3. Workspaces ページで、対象のワークスペースを見つけ、[操作] 列の [Data Analytics] をクリックします。
  2. ODPS SQL ノードのコードエディタに移動します。

    MaxCompute 計算エンジンの下にある DataStudio を見つけます。DataStudio を右クリックし、[作成] > [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 コマンドを実行して実際のバージョンをクエリできます。詳細については、「オープンデータが提供するテーブルまたはビューの表示」をご参照ください。

  • ビジネス日付:メタデータを表示するビジネス日付を yyyymmdd 形式で指定します。ビジネス日付を指定しない場合、すべての日付のメタデータが表示されます。

次のコードは例です。

-- 2021年1月9日に作成されたデータベースのリストをクエリします。
SELECT * FROM u_meta_hangzhou.raw_v_meta_database_v1_1('20210109');

このクエリを実行すると、返されるデータベースのメタデータには次のフィールドが含まれます。

  • tenant_id

  • project_id

  • env_type

  • catalog_name

  • database_name

  • database_comment

  • owner_name

  • created_time_ts

  • last_modified_time

  • location

  • extras

  • biz_date

クエリ結果のフィールドの詳細については、「データベース (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 コマンドを実行して実際のバージョンをクエリできます。詳細については、「オープンデータが提供するテーブルまたはビューの表示」をご参照ください。

  • ビジネス日付:メタデータを表示するビジネス日付を 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'
;

このクエリを実行すると、返される結果には catalog_name、database_name、table_name、table_uuid、table_type、partition_keys、table_comment、table_biz_comment、visibility_scope、owner_name などのフィールドが含まれ、対象テーブルのメタデータ属性が表示されます。クエリ結果のフィールドの詳細については、「テーブルメタデータ: 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'
;

次の表にパラメーターを説明します。

  • バージョン情報:使用されるオープンデータのバージョン。フォーマットは v1_1 のようになります。DESCRIBE PACKAGE コマンドを実行して実際のバージョンをクエリできます。詳細については、「オープンデータが提供するテーブルまたはビューの表示」をご参照ください。

  • ビジネス日付:メタデータを表示するビジネス日付を 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'
;

クエリは 1 行のデータを返します。サンプル結果では、dim_life_cycle は 36000、is_partition_table は true、entity_type は 0、last_access_time は 1572193547、partition_count は 190、favorite_count は 0、output_task_count は 0 です。

クエリ結果のフィールドの詳細については、「コアテーブルメトリック: 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 コマンドを実行して実際のバージョンをクエリできます。詳細については、「オープンデータが提供するテーブルまたはビューの表示」をご参照ください。

  • ビジネス日付:メタデータを表示するビジネス日付を 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'
;

このクエリを実行すると、返される結果は、ods_user_info_d テーブルがスケジューリングノードによって生成され、project_env が PROD であることを示します。結果には、tenant_id、project_id、node_id、node_name、node_type、create_time、para_value などのフィールドが含まれます。クエリ結果のフィールドの詳細については、「テーブル出力ノードメタデータ: 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'
 )
;

次の表にパラメーターを説明します。

  • バージョン情報:使用されるオープンデータのバージョン。フォーマットは v1_1 のようになります。DESCRIBE PACKAGE コマンドを実行して実際のバージョンをクエリできます。詳細については、「オープンデータが提供するテーブルまたはビューの表示」をご参照ください。

  • ビジネス日付:メタデータを表示するビジネス日付を yyyymmdd 形式で指定します。ビジネス日付を指定しない場合、すべての日付のメタデータが表示されます。

  • your_project_environment:メタデータを表示するプロジェクト環境を指定します。開発環境の場合は DEV に、本番環境の場合は 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'
     )
    ;

    クエリは 1 件の結果を返します。先祖ノードの情報は次のとおりです。node_id は 1000550983、node_name は workshop_start、node_type は 0、prg_type は 99、project_env は PROD です。

  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'
     )
    ;

    クエリ結果の例:

    Results[1]
    tenant_id | project_id | node_id    | node_name          | node_type | prg_type | flow_id | project_env | create_time   | create_user | modify_time   | modify_user | prg_name
    283xxx    | xxx        | 1000551016 | dw_user_info_all_d | 0         | 10       | 1       | PROD        | 1587465492000 | xxx         | 1596536670000 | xxx         | \N
    283xxx    | 56         | 1000551015 | ods_log_info_d     | 0         | 10       | 1       | PROD        | 1587465489000 | xxx         | 1590117450000 | xxx         | \N

クエリ結果のフィールドの詳細については、「スケジューリングノード詳細: 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 コマンドを実行して実際のバージョンをクエリできます。詳細については、「オープンデータが提供するテーブルまたはビューの表示」をご参照ください。

    • ビジネス日付:メタデータを表示するビジネス日付を 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 コマンドを実行して実際のバージョンをクエリできます。詳細については、「オープンデータが提供するテーブルまたはビューの表示」をご参照ください。

    • ビジネス日付:メタデータを表示するビジネス日付を yyyymmdd 形式で指定します。ビジネス日付を指定しない場合、すべての日付のメタデータが表示されます。

    • your_project_environment:メタデータを表示するプロジェクト環境を指定します。開発環境の場合は DEV に、本番環境の場合は 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'
    ;
    -- クエリ結果:
    -- catalog_name | database_name | table_name      | owner_name | account_name | nick
    -- odps         | isv2          | ods_user_info_d | xxx        | xxx          | Chexxx
  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'
    ;
    -- クエリ結果 (結果[2]):
    -- project_id | node_id    | node_name       | create_user   | create_user_name | create_user_nick | modify_user | modify_user_name | modify_user_nick
    -- 8          | 1000454827 | rpt_user_info_d | datawxxx mo2  | datawxxxo2       | datawxxxno2      | dxxxngcui   | xiaxxx ui        | 向xxx

クエリ結果のフィールドの詳細については、「スケジューリングノード詳細: raw_v_schedule_node」および「スケジューリングノード関係詳細: raw_v_schedule_node_relation」をご参照ください。

次のステップ

オープンデータが提供するビューは、yyyyMMdd 形式の日付パラメーターを受け入れます。このパラメーターを使用して、日付でデータをパーティション分割し、過去 30 日間の履歴データを取得できます。メトリック傾向分析を実行する必要がある場合は、ビジネス日付でデータを取得し、プロジェクトに保存して履歴分析を行うことができます。