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

Data Lake Formation:table_summary と partition_summary システムテーブル

最終更新日:Jun 24, 2026

DLF は、カタログ内の各テーブルとパーティションの毎日のストレージ使用量、ストレージクラスの分布、ファイルサイズの分布、アクセス頻度の統計を、system データベース配下の 2 つのシステムテーブル、table_summarypartition_summary に集約します。これらを使用して、多数の小さいファイルを含むテーブルの検出、コールドデータの特定、ストレージクラス割り当ての最適化、および最近のアクセサーの追跡を行うことができます。

概要

  • table_summary: 基本的なテーブルプロパティ、ストレージ使用量、ストレージクラスの分布、ファイルサイズの分布、およびアクセス頻度を含むテーブルレベルの統計。

  • partition_summary:各パーティションのストレージ使用量、ストレージクラスの分布、ファイルサイズの分布、アクセス頻度を含むパーティションレベルの統計情報。

説明

データは日次で (T+1) 生成され、カタログ配下の完全な物理ストレージを反映します。両テーブルのパーティション列 dt は、直近 30 日分を保持します。

table_summary

スキーマ

説明

以下は組み込みのスキーマ定義です。参考用に示しているものであり、手動で実行する必要はありません。

CREATE TABLE `table_summary` (
  `database_id`              STRING  COMMENT 'データベース ID',
  `database_name`            STRING  COMMENT 'データベース名',
  `table_id`                 STRING  COMMENT 'テーブル ID',
  `table_name`               STRING  COMMENT 'テーブル名',
  `table_type`               STRING  COMMENT 'テーブルタイプ',
  `owner`                    STRING  COMMENT 'テーブルオーナー',
  `created_by`               STRING  COMMENT '作成者',
  `created_at`               BIGINT  COMMENT '作成時刻 (エポックミリ秒)',
  `updated_by`               STRING  COMMENT '更新者',
  `updated_at`               BIGINT  COMMENT '最終更新時刻 (エポックミリ秒)',
  `obj_cnt`                  BIGINT  COMMENT 'データオブジェクト数、総数 = obj_cnt + meta_obj_cnt',
  `obj_size`                 BIGINT  COMMENT 'データオブジェクトサイズ (バイト)、合計サイズ = obj_size + meta_obj_size',
  `meta_obj_cnt`             BIGINT  COMMENT 'メタデータオブジェクト数',
  `meta_obj_size`            BIGINT  COMMENT 'メタデータオブジェクトサイズ (バイト)',
  `ts_file_count`            BIGINT  COMMENT '最新スナップショットのデータオブジェクト数',
  `ts_file_size_in_bytes`    BIGINT  COMMENT '最新スナップショットのデータオブジェクトサイズ (バイト)',
  `obj_type_standard_size`   BIGINT  COMMENT '標準ストレージ内のデータオブジェクトサイズ (バイト)',
  `obj_type_ia_size`         BIGINT  COMMENT 'IA ストレージ内のデータオブジェクトサイズ (バイト)',
  `obj_type_archive_size`    BIGINT  COMMENT 'アーカイブストレージ内のデータオブジェクトサイズ (バイト)',
  `obj_type_coldarchive_size` BIGINT  COMMENT 'コールドアーカイブストレージ内のデータオブジェクトサイズ (バイト)',
  `obj_size_tiny_cnt`        BIGINT  COMMENT 'データオブジェクト数 (サイズ <= 1 MB)',
  `obj_size_small_cnt`       BIGINT  COMMENT 'データオブジェクト数 (サイズ 1 MB - 128 MB)',
  `obj_size_middle_cnt`      BIGINT  COMMENT 'データオブジェクト数 (サイズ 128 MB - 1 GB)',
  `obj_size_large_cnt`       BIGINT  COMMENT 'データオブジェクト数 (サイズ > 1 GB)',
  `data_last_access_time`    BIGINT  COMMENT '最終データオブジェクトアクセス時刻 (エポックミリ秒)',
  `obj_access_num`           BIGINT  COMMENT '本日のデータオブジェクトアクセス数',
  `obj_access_num_7d`        BIGINT  COMMENT '過去 7 日間のデータオブジェクトアクセス数',
  `obj_access_num_30d`       BIGINT  COMMENT '過去 30 日間のデータオブジェクトアクセス数',
  `meta_last_access_time`    BIGINT  COMMENT '最終メタデータオブジェクトアクセス時刻 (エポックミリ秒)',
  `meta_obj_access_num`      BIGINT  COMMENT '本日のメタデータオブジェクトアクセス数',
  `meta_obj_access_num_7d`   BIGINT  COMMENT '過去 7 日間のメタデータオブジェクトアクセス数',
  `meta_obj_access_num_30d`  BIGINT  COMMENT '過去 30 日間のメタデータオブジェクトアクセス数',
  `last_requester`           STRING  COMMENT '最終リクエスタ',
  `top_requester`            STRING  COMMENT 'その日の最も頻繁なリクエスタ',
  `dt`                       STRING  COMMENT '日付 (yyyyMMdd)'
) COMMENT '日次テーブルレベルのサマリー'
PARTITIONED BY (dt) WITH (
   'file.format' = 'avro',
   'partition.expiration-time' = '30 d',
   'partition.timestamp-formatter' = 'yyyyMMdd'
);

フィールドの説明

基本情報

フィールド

説明

database_id

データベース ID。

database_name

データベース名。

table_id

テーブル ID。

table_name

テーブル名。

table_type

テーブルタイプ。paimon-pk (Paimon プライマリーキーテーブル)、paimon-append (Paimon 追加のみテーブル)、object-table (Object Table)、format-table (Format tables) など。

owner

テーブルオーナー。

created_by

作成者。

created_at

作成時刻 (エポックミリ秒)。

updated_by

最終更新者。

updated_at

最終更新時刻 (エポックミリ秒)。

ストレージ統計

フィールド

説明

obj_cnt

データファイルの数。 合計ファイル数 = obj_cnt + meta_obj_cnt。

obj_size

合計データファイルサイズ (バイト)。 合計ストレージサイズ = obj_size + meta_obj_size。

meta_obj_cnt

メタデータファイルの数。

meta_obj_size

合計メタデータファイルサイズ (バイト)。

ts_file_count

最新のスナップショット内のデータファイルの数。

ts_file_size_in_bytes

最新のスナップショット内のデータファイルサイズ (バイト)。

ストレージクラス

フィールド

説明

obj_type_standard_size

標準ストレージ内のデータファイルのサイズ (バイト)。

obj_type_ia_size

低頻度アクセス (IA) ストレージ内のデータファイルのサイズ (バイト)。

obj_type_archive_size

アーカイブストレージ内のデータファイルのサイズ (バイト)。

obj_type_coldarchive_size

コールドアーカイブストレージ内のデータファイルのサイズ (バイト)。

ファイルサイズ分布

フィールド

説明

obj_size_tiny_cnt

サイズが 1 MB 以下のデータファイルの数。

obj_size_small_cnt

サイズが 1 MB から 128 MB までのデータファイルの数。

obj_size_middle_cnt

サイズが 128 MB から 1 GB までのデータファイルの数。

obj_size_large_cnt

サイズが 1 GB を超えるデータファイルの数。

アクセス統計

説明

last_requestertop_requester にデータを入力するには、DLF コンソールの Catalog Configuration タブ > Advanced Settings セクションで dlf.access-tracking.enabled = true に設定し、コンピューティングエンジンが Paimon >= 1.4 を使用することを確認します。両方の条件を満たすアクセスのみが追跡されます。

フィールド

説明

data_last_access_time

最後のデータファイルアクセス時刻 (エポックミリ秒)。

obj_access_num

本日のデータファイルアクセス数。

obj_access_num_7d

過去 7 日間のデータファイルアクセス数。

obj_access_num_30d

過去 30 日間のデータファイルアクセス数。

meta_last_access_time

最後のメタデータファイルアクセス時刻 (エポックミリ秒)。

meta_obj_access_num

本日のメタデータファイルアクセス数。

meta_obj_access_num_7d

過去 7 日間のメタデータファイルアクセス数。

meta_obj_access_num_30d

過去 30 日間のメタデータファイルアクセス数。

last_requester

最終リクエスタ。 上記の前提条件の注記をご参照ください。

top_requester

その日に最もアクセスが多かったリクエスタ。 上記の前提条件の注記をご参照ください。

パーティション列

フィールド

説明

dt

統計日は yyyyMMdd 形式で、直近 30 日分が保持されます。

partition_summary

スキーマ

説明

以下は組み込みのスキーマ定義です。参考用に示しているものであり、手動で実行する必要はありません。

CREATE TABLE `partition_summary` (
  `database_id`              STRING  COMMENT 'データベース ID',
  `database_name`            STRING  COMMENT 'データベース名',
  `table_id`                 STRING  COMMENT 'テーブル ID',
  `table_name`               STRING  COMMENT 'テーブル名',
  `partition_name`           STRING  COMMENT 'パーティション名',
  `created_by`               STRING  COMMENT '作成者',
  `created_at`               BIGINT  COMMENT '作成時刻 (エポックミリ秒)',
  `updated_by`               STRING  COMMENT '更新者',
  `updated_at`               BIGINT  COMMENT '最終更新時刻 (エポックミリ秒)',
  `obj_cnt`                  BIGINT  COMMENT 'データオブジェクト数',
  `obj_size`                 BIGINT  COMMENT 'データオブジェクトサイズ (バイト)',
  `obj_type_standard_size`   BIGINT  COMMENT '標準ストレージ内のデータオブジェクトサイズ (バイト)',
  `obj_type_ia_size`         BIGINT  COMMENT 'IA ストレージ内のデータオブジェクトサイズ (バイト)',
  `obj_type_archive_size`    BIGINT  COMMENT 'アーカイブストレージ内のデータオブジェクトサイズ (バイト)',
  `obj_type_coldarchive_size` BIGINT  COMMENT 'コールドアーカイブストレージ内のデータオブジェクトサイズ (バイト)',
  `obj_size_tiny_cnt`        BIGINT  COMMENT 'データオブジェクト数 (サイズ <= 1 MB)',
  `obj_size_small_cnt`       BIGINT  COMMENT 'データオブジェクト数 (サイズ 1 MB - 128 MB)',
  `obj_size_middle_cnt`      BIGINT  COMMENT 'データオブジェクト数 (サイズ 128 MB - 1 GB)',
  `obj_size_large_cnt`       BIGINT  COMMENT 'データオブジェクト数 (サイズ > 1 GB)',
  `data_last_access_time`    BIGINT  COMMENT '最終データオブジェクトアクセス時刻 (エポックミリ秒)',
  `obj_access_num`           BIGINT  COMMENT '本日のデータオブジェクトアクセス数',
  `obj_access_num_7d`        BIGINT  COMMENT '過去 7 日間のデータオブジェクトアクセス数',
  `obj_access_num_30d`       BIGINT  COMMENT '過去 30 日間のデータオブジェクトアクセス数',
  `last_requester`           STRING  COMMENT '最終リクエスタ',
  `top_requester`            STRING  COMMENT 'その日の最も頻繁なリクエスタ',
  `dt`                       STRING  COMMENT '日付 (yyyyMMdd)'
) COMMENT '日次パーティションレベルのサマリー'
PARTITIONED BY (dt) WITH (
   'file.format' = 'avro',
   'partition.expiration-time' = '30 d',
   'partition.timestamp-formatter' = 'yyyyMMdd'
);

フィールドの説明

基本情報

フィールド

説明

database_id

データベース ID。

database_name

データベース名。

table_id

テーブル ID。

table_name

テーブル名。

partition_name

パーティション名。

created_by

作成者。

created_at

作成時刻 (エポックミリ秒)。

updated_by

最終更新者。

updated_at

最終更新時刻 (エポックミリ秒)。

ストレージ統計

フィールド

説明

obj_cnt

データファイルの数。

obj_size

合計データファイルサイズ (バイト)。

ストレージクラス

フィールド

説明

obj_type_standard_size

標準ストレージ内のデータファイルのサイズ (バイト)。

obj_type_ia_size

低頻度アクセス (IA) ストレージ内のデータファイルのサイズ (バイト)。

obj_type_archive_size

アーカイブストレージ内のデータファイルのサイズ (バイト)。

obj_type_coldarchive_size

コールドアーカイブストレージ内のデータファイルのサイズ (バイト)。

ファイルサイズ分布

フィールド

説明

obj_size_tiny_cnt

サイズが 1 MB 以下のデータファイルの数。

obj_size_small_cnt

サイズが 1 MB から 128 MB までのデータファイルの数。

obj_size_middle_cnt

サイズが 128 MB から 1 GB までのデータファイルの数。

obj_size_large_cnt

サイズが 1 GB を超えるデータファイルの数。

アクセス統計

説明

last_requestertop_requester に値を入力するには、DLF コンソールの Catalog Configuration タブ > Advanced Settings セクションで dlf.access-tracking.enabled = true を設定し、コンピューティングエンジンが Paimon 1.4 以降を使用するようにします。両方の条件を満たすアクセスのみが追跡されます。

フィールド

説明

data_last_access_time

最後のデータファイルアクセス時刻 (エポックミリ秒)。

obj_access_num

本日のデータファイルアクセス数。

obj_access_num_7d

過去 7 日間のデータファイルアクセス数。

obj_access_num_30d

過去 30 日間のデータファイルアクセス数。

last_requester

最終リクエスタ。 上記の前提条件の注記をご参照ください。

top_requester

その日に最もアクセスが多かったリクエスタ。 上記の前提条件の注記をご参照ください。

パーティション列

フィールド

説明

dt

統計日は yyyyMMdd 形式です。直近 30 日分が保持されます。

クエリ例

DLF または Flink SQL を使用して DLF システムテーブルにクエリを実行できます。

DLF データプレビュー

DLF のデータプレビューと検出機能を使用すると、別のコンピューティングエンジンをセットアップすることなく、SQL クエリを直接実行できます。詳細と料金については、「データプレビュー」をご参照ください。

Flink SQL

Flink を使用して SQL の例を実行するには、Flink で DLF カタログを設定する必要があります。詳細な設定手順については、「Flink SQL で DLF にアクセスする」をご参照ください。

説明

以下の例では、<yourCatalogName><tableID><date><startDate><endDate> のように山括弧で囲まれた文字列はプレースホルダーです。クエリを実行する前に、各プレースホルダーを実際の値に置き換えてください (日付は yyyyMMdd 形式です)。

ストレージ概要

過去 N 日間のカタログのストレージトレンドの表示

SELECT
    dt,
    COUNT(DISTINCT table_id) AS table_cnt,
    SUM(obj_size) + SUM(meta_obj_size) AS total_size,
    SUM(obj_size) AS total_data_obj_size,
    SUM(meta_obj_size) AS total_meta_obj_size,
    SUM(ts_file_size_in_bytes) AS total_latest_snapshot_data_obj_size
FROM `<yourCatalogName>`.`system`.`table_summary`
WHERE dt BETWEEN '<startDate>' AND '<endDate>'  -- 実際の日付 (yyyyMMdd 形式) に置き換えます
GROUP BY dt
ORDER BY dt;

特定の日における全テーブルのストレージ統計の表示

SELECT
    database_id,
    database_name,
    table_id,
    table_name,
    table_type,
    owner,
    obj_size + meta_obj_size AS total_size,
    obj_size AS data_obj_size,
    ts_file_size_in_bytes AS latest_snapshot_data_obj_size,
    ts_file_size_in_bytes * 1.0 / NULLIF(obj_size, 0) AS latest_snapshot_ratio
FROM `<yourCatalogName>`.`system`.`table_summary`
WHERE dt = '<date>'  -- 実際の日付 (yyyyMMdd 形式) に置き換えます
ORDER BY total_size DESC;

テーブル内の各パーティションのストレージ内訳の表示

SELECT
    database_id,
    database_name,
    table_id,
    table_name,
    partition_name,
    obj_cnt AS data_obj_cnt,
    obj_size AS data_obj_size
FROM `<yourCatalogName>`.`system`.`partition_summary`
WHERE dt = '<date>'  -- 実際の日付 (yyyyMMdd 形式) に置き換えます
    AND table_id = '<tableID>'
ORDER BY data_obj_size DESC;

過去 N 日間のテーブルのストレージトレンドの表示

SELECT
    dt,
    obj_cnt AS data_obj_cnt,
    obj_size + meta_obj_size AS total_size,
    obj_size AS data_obj_size,
    ts_file_size_in_bytes AS latest_snapshot_data_obj_size,
    ts_file_size_in_bytes * 1.0 / NULLIF(obj_size, 0) AS latest_snapshot_ratio
FROM `<yourCatalogName>`.`system`.`table_summary`
WHERE table_id = '<tableID>'
    AND dt BETWEEN '<startDate>' AND '<endDate>'  -- 実際の日付 (yyyyMMdd 形式) に置き換えます
ORDER BY dt;

小さいファイル管理

小さいファイルが多いテーブルの検索

SELECT
    database_id,
    database_name,
    table_id,
    table_name,
    table_type,
    obj_cnt AS data_obj_cnt,
    obj_size AS data_obj_size,
    obj_size_tiny_cnt,
    obj_size_small_cnt,
    obj_size_tiny_cnt * 1.0 / NULLIF(obj_cnt, 0) AS tiny_obj_ratio,
    (obj_size_tiny_cnt + obj_size_small_cnt) * 1.0 / NULLIF(obj_cnt, 0) AS small_obj_ratio,
    obj_size / NULLIF(obj_cnt, 0) AS avg_data_obj_size
FROM `<yourCatalogName>`.`system`.`table_summary`
WHERE dt = '<date>'  -- 実際の日付 (yyyyMMdd 形式) に置き換えます
    AND obj_cnt > 0
ORDER BY obj_size_tiny_cnt DESC;

小さいファイルが多いパーティションの検索

SELECT
    database_id,
    database_name,
    table_id,
    table_name,
    partition_name,
    obj_cnt AS data_obj_cnt,
    obj_size AS data_obj_size,
    obj_size_tiny_cnt,
    obj_size_small_cnt,
    obj_size_tiny_cnt * 1.0 / NULLIF(obj_cnt, 0) AS tiny_obj_ratio,
    (obj_size_tiny_cnt + obj_size_small_cnt) * 1.0 / NULLIF(obj_cnt, 0) AS small_obj_ratio,
    obj_size / NULLIF(obj_cnt, 0) AS avg_data_obj_size
FROM `<yourCatalogName>`.`system`.`partition_summary`
WHERE dt = '<date>'  -- 実際の日付 (yyyyMMdd 形式) に置き換えます
    AND obj_cnt > 0
ORDER BY obj_size_tiny_cnt DESC;

過去 N 日間のテーブルの小さいファイルトレンドの表示

SELECT
    dt,
    obj_cnt AS data_obj_cnt,
    obj_size_tiny_cnt,
    obj_size_small_cnt,
    obj_size_middle_cnt,
    obj_size_large_cnt,
    obj_size_tiny_cnt * 1.0 / NULLIF(obj_cnt, 0) AS tiny_obj_ratio,
    (obj_size_tiny_cnt + obj_size_small_cnt) * 1.0 / NULLIF(obj_cnt, 0) AS small_obj_ratio
FROM `<yourCatalogName>`.`system`.`table_summary`
WHERE table_id = '<tableID>'
    AND dt BETWEEN '<startDate>' AND '<endDate>'  -- 実際の日付 (yyyyMMdd 形式) に置き換えます
ORDER BY dt;
説明

小さいファイルを特定した後、「ストレージの最適化」を参照して、小さいファイルのコンパクションとストレージのチューニングを行ってください。

ライフサイクル管理

ストレージクラス分布の表示

SELECT
    database_id,
    database_name,
    table_id,
    table_name,
    obj_size AS data_obj_size,
    obj_type_standard_size,
    obj_type_ia_size,
    obj_type_archive_size,
    obj_type_coldarchive_size
FROM `<yourCatalogName>`.`system`.`table_summary`
WHERE dt = '<date>'  -- 実際の日付 (yyyyMMdd 形式) に置き換えます
    AND (obj_type_ia_size > 0 OR obj_type_archive_size > 0 OR obj_type_coldarchive_size > 0)
ORDER BY data_obj_size DESC;

過去 30 日間にファイルアクセスのないテーブルの検索

SELECT
    database_id,
    database_name,
    table_id,
    table_name,
    owner,
    obj_size + meta_obj_size AS total_size,
    data_last_access_time,
    meta_last_access_time
FROM `<yourCatalogName>`.`system`.`table_summary`
WHERE dt = '<date>'  -- 実際の日付 (yyyyMMdd 形式) に置き換えます
    AND obj_access_num_30d = 0
    AND meta_obj_access_num_30d = 0
ORDER BY total_size DESC;

関連ドキュメント

DLF API を使用して table_summary および partition_summary システムテーブルをクエリするには、GetCatalogSummary および GetDatabaseSummary をご参照ください。