このトピックでは、動的テーブルのスキーマ、データリネージ、ストレージ詳細の表示方法について説明します。また、インスタンス内のすべての動的テーブルの表示方法と状態表の管理方法についても説明します。
動的テーブルのスキーマの表示
構文
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 データマップを使用して、動的テーブルのデータリネージを表示できます。
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>'));