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

Hologres:動的テーブルのスキーマとリネージの表示

最終更新日:Feb 04, 2026

このトピックでは、動的テーブルのスキーマ、データリネージ、ストレージ詳細の表示方法について説明します。また、インスタンス内のすべての動的テーブルの表示方法と状態表の管理方法についても説明します。

動的テーブルのスキーマの表示

  • 構文

    SELECT hg_dump_script('[<schema_name>.]<table_name>');
  • パラメータ

    • schema_name:任意。スキーマの名前。

    • table_name:必須。動的テーブルの名前。

現在のインスタンス内の動的テーブルの表示

hologres.hg_dynamic_table_properties システムテーブルを使用して、現在のインスタンス内のすべての動的テーブルとそのリフレッシュパターンを表示できます。SQL コマンドは次のとおりです。

SELECT dynamic_table_name, property_value FROM hologres.hg_dynamic_table_properties WHERE property_key = 'refresh_mode';

次の SQL コマンドを実行して、特定の動的テーブルのすべてのメタデータを表示できます。

SELECT * FROM hologres.hg_dynamic_table_properties WHERE dynamic_table_name='<dynamic_table_name>';

動的テーブルのデータリネージの表示

可視化

HoloWeb または DataWorks データマップを使用して、動的テーブルのデータリネージを表示できます。

  • HoloWeb:HoloWeb コンソールで、Table Metadata Management > [Dynamic Table Management] を選択します。[Lineage Information] タブで、動的テーブルのデータリネージを表示します。

  • DataWorks データマップ:DataWorks データマップは、動的テーブルのデータリネージを自動的に収集して表示します。詳細については、「データリネージ」をご参照ください。

SQL メソッド

単一の動的テーブルのデータリネージの表示

次の SQL コマンドを実行して、特定の動的テーブルのデータリネージを表示できます。

-- 単一テーブルのリネージの表示
SELECT
    d.*,
    CASE WHEN k.dynamic_table_namespace IS NOT NULL THEN
        'd'
    ELSE
        c.relkind
    END
FROM
    hologres.hg_dynamic_table_dependencies d
    LEFT JOIN pg_namespace n ON n.nspname = d.table_namespace
    LEFT JOIN pg_class c ON c.relnamespace = n.oid
        AND c.relname = d.table_name
    LEFT JOIN (
        SELECT
            dynamic_table_namespace,
            dynamic_table_name
        FROM
            hologres.hg_dynamic_table_properties
        GROUP BY
            1,
            2) k ON k.dynamic_table_namespace = d.table_namespace
    AND k.dynamic_table_name = d.table_name
WHERE
    d.dynamic_table_namespace = '<schema_name>'
    AND d.dynamic_table_name = '<dynamic_table_name>'
    AND d.dependency <> 'internal_table';

すべての動的テーブルのデータリネージの表示

次の SQL コマンドを実行して、現在のインスタンス内のすべての動的テーブルのデータリネージを表示できます。

SELECT
    d.*,
    CASE WHEN k.dynamic_table_namespace IS NOT NULL THEN
        'd'
    ELSE
        c.relkind 
    END
FROM
    hologres.hg_dynamic_table_dependencies d
    LEFT JOIN pg_namespace n ON n.nspname = d.table_namespace
    LEFT JOIN pg_class c ON c.relnamespace = n.oid
        AND c.relname = d.table_name
    LEFT JOIN (
        SELECT
            dynamic_table_namespace,
            dynamic_table_name
        FROM
            hologres.hg_dynamic_table_properties
        GROUP BY
            1,
            2) k ON k.dynamic_table_namespace = d.table_namespace
    AND k.dynamic_table_name = d.table_name
WHERE
    d.dependency <> 'internal_table';
説明

base_table_type の値のマッピングは次のとおりです:

  • r:通常テーブル。

  • v:ビュー。

  • m:マテリアライズドビュー。

  • f:外部テーブル。

  • d:動的テーブル。

動的テーブルのストレージ詳細の表示

hologres.hg_relation_size 関数を使用して、動的テーブルのストレージサイズと詳細を表示できます。hologres.hg_relation_size 関数の使用方法の詳細については、「テーブルのストレージ詳細の表示」をご参照ください。

状態表の管理

増分更新を使用する動的テーブルの場合、システムはデータコンピューティングを高速化するために下位レイヤーで状態表を生成します。このテーブルには集約結果が格納されます。デフォルトでは、状態表はデフォルトのテーブルグループに格納され、再シャーディングはサポートされていません。詳細については、「動的テーブル」をご参照ください。さらに、リフレッシュパターンを完全更新に変更すると、状態表はデフォルトでクリアされます。

状態表のストレージ使用量の表示

次の SQL コマンドを実行して、状態表のストレージサイズを表示できます。そのストレージの課金ルールは、標準テーブルと同じです。詳細については、「課金の概要」をご参照ください。

SELECT pg_size_pretty(hologres.hg_dynamic_table_state_size('<dynamic_table_name>'));