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

Data Lake Formation:Paimon テーブルの自動ストレージ最適化

最終更新日:Jul 18, 2026

DLF ストレージ最適化は、アダプティブなコンパクション、期限切れスナップショットのクリーンアップ、パーティションのライフサイクル管理、および孤立ファイルのクリーンアップを通じて、Paimon テーブルのメンテナンスを簡素化します。本ガイドでは、利用可能な最適化戦略と DLF による実行方法について説明します。

ストレージ最適化戦略

戦略タイプ

説明

DLF の実行メカニズム

コンパクション

小規模なファイルを大規模なファイルにマージし、ファイル数、メタデータのオーバーヘッド、クエリ時のファイル検索コストを削減します。これにより、Paimon テーブルのクエリパフォーマンスが向上します。

DLF は、データ書き込みがコミットされた際に自動的にコンパクションをトリガーします。

期限切れスナップショットのクリーンアップ

スナップショットは参照されているデータファイルを削除から保護し、履歴状態を維持します。スナップショットが蓄積されると、ストレージ使用量が増加します。不要になったスナップショットを有効期限切れにすることで、ストレージ領域を解放できます。

DLF は、ストレージ最適化ジョブ中に期限切れスナップショットのクリーンアップを自動的にトリガーします。デフォルトの有効期限は 1 時間で、Paimon テーブルのパラメーターを通じて調整可能です。詳細については、「期限切れデータのクリーンアップ」をご参照ください。

パーティションのライフサイクル管理

多くのシナリオでは、最新のデータのみが必要です。時系列でパーティション化し、有効期限ルールを設定することで、古いパーティションを自動的に削除し、ストレージを解放できます。インテリジェントなストレージ階層化を構成して、アクセス頻度の低いデータを標準ストレージから低コストのストレージクラス(低頻度アクセス、アーカイブ、またはコールドアーカイブ)に移動することも可能です。

パーティションの有効期限の設定で、Paimon テーブルのパラメーターを通じて有効期限を設定します。設定後、クリーンアップは DLF ストレージ最適化ジョブ中に自動的にトリガーされます。インテリジェントなストレージ階層化を使用して、対象となるパーティションデータを低コストのストレージクラスに移動するか、テーブル詳細ページで手動でストレージクラスを変更できます。ストレージ概要ページには、カタログ、データベース、テーブルごとの階層化ディストリビューションが表示されます。

孤立ファイルのクリーンアップ

孤立ファイルとは、テーブルのストレージパス下に存在しながら、どのスナップショットにも参照されていないファイルのことです。通常、中断された書き込みジョブ、失敗したコミット、または異常なクリーンアッププロセスの残留物によって発生します。これらのファイルはスナップショットによって参照されていないため、スナップショットの有効期限切れによって削除されず、定期的なクリーンアップが必要です。

コンソールから手動で孤立ファイルのクリーンアップをトリガーするか、自動クリーンアップを有効化できます。クリーンアップされた孤立ファイルは一時的にゴミ箱 (system.trash) に移動され、保持期間経過後に削除されます。

インテリジェントなストレージ最適化の有効化または無効化

説明

[ストレージ最適化] タブは、Paimon テーブルでのみ表示されます。

  1. DLF コンソールにログインします

  2. カタログページで、対象のカタログ名をクリックします。

  3. Databaseタブで、対象のデータベース名をクリックし、そのテーブルを表示します。

  4. Tablesリストで、対象のテーブル名をクリックし、スキーマ情報を表示します。

  5. Storage Optimizationタブをクリックします。インテリジェントなストレージ最適化スイッチはデフォルトで有効になっています。無効にする場合は、image スイッチをクリックします。

ストレージ最適化戦略の確認と構成

コンパクション

Storage Optimizationタブで、コンパクションをクリックし、実行ステータス、リスケールレコード、および実行履歴を確認します。

要件に応じてポリシーモードを編集します。

動的リソースモード(推奨)

システムはリアルタイムのワークロードに基づいて計算リソースを自動的にスケーリングし、手動での容量計画を不要にします。トラフィックの変動が大きい場合に適しています。
以下の 3 種類の構成プリファレンスを利用できます。

  • バランス型:コンパクション速度とリソース消費のバランスをとります(デフォルト)。

  • 低遅延:より多くのリソースを割り当ててコンパクションを高速化し、データの可視性遅延を短縮します。

  • 低リソース使用:リソース使用量を制限して計算コストを削減しますが、コンパクション時間が長くなります。

    動的リソース割り当てとスケーリング

    動的リソースモードでは、システムはリアルタイムのワークロードおよびデータ特性に基づいて計算リソースを割り当てます。以下の要素がリソース割り当ておよび自動スケーリングを駆動します。

    書き込みスループット
    書き込みトラフィックが主なドライバーです。書き込みトラフィックが高くなるほど、安定したデータインジェストのためにより多くの計算リソースがトリガーされます。



    アクティブ同時実行数
    アクティブなパーティションおよびバケットの数がリソース要件を決定します。アクティブなパーティションおよびバケットが多いほど、並列処理用のリソースが多く割り当てられます。



    高度な機能のデータ規模
    削除ベクターやルックアップチェンジログプロデューサーなどの高度な機能を備えたテーブルは、計算量が増加します。アクティブなパーティション内の合計ファイルサイズが大きいほど、より多くのリソースが必要になります。



    データ行の特性
    極端に小さい行(多くの null 値を含む)または極端に大きい行(長い文字列フィールドを含む)は処理オーバーヘッドを増加させます。このような場合、システムはパフォーマンスを維持するためにリソース割り当てを増やします。



    小規模テーブル向けのリソース最適化

    小規模テーブルの場合、システムは共有メカニズムを使用してリソースオーバーヘッドを削減します。

    テーブルが延期バケット化(bucket = -2)を使用しており、かつ「低遅延優先」モードが有効になっていない場合、システムは複数の小規模テーブルからの最適化タスクを単一のジョブに統合し、全体的なリソース消費を削減します。

    リソースモニタリングとトラブルシューティング

    リソース消費を分析するには、Catalogs > Resource Overview > Resource Requestsに移動し、CU 時間ベースの上位テーブルリストを確認します。

    説明

    単一テーブルのリソース使用量が異常に高くなる原因として、過剰に詳細なパーティション戦略が挙げられます。これは同時にアクティブなパーティション数を増加させ、過剰なリソース割り当てを強制します。パーティション戦略を見直し、最適化してください。

固定リソースモード

コンパクション用の計算リソースを手動で指定します。トラフィックが安定している場合や、コストを厳密に管理したい場合に適しています。

  • 構成要件:最小 2 CU。

  • パラメーター設定:コンパクションのトリガー間隔およびバケット数をカスタマイズできます。

実行ステータスの確認

現在のテーブルの最適化実行ステータスを確認し、レイクハウス最適化のモニタリングを通じて CloudMonitor アラートサブスクリプションを構成できます。

リスケールレコードの確認

テーブルまたは特定のパーティションのバケットリスケーリングイベントを記録し、物理ストレージ構造の変更を反映します。リスケーリングは、データ量の変化に起因するパフォーマンスの問題に対処します。これらのレコードを使用して、テーブルがリスケール中かどうかを確認できます(リスケール中はコンパクションが実行されません)。

実行履歴の確認

現在のテーブルのコンパクション実行履歴を確認します。これらのレコードは以下の目的で使用します。

  1. タスク実行の確認:バックグラウンドのコンパクションタスクが正しく実行され、小規模ファイルの蓄積を防いでいることを検証します。

  2. コンパクション効率の評価:コンパクション前後のファイル数およびサイズを比較し、戦略の有効性を評価します。

期限切れスナップショットのクリーンアップ

Storage Optimizationタブで、期限切れスナップショットのクリーンアップをクリックし、クリーンアップルールを構成および結果を確認します。

  • スナップショットのクリーンアップルールの構成

    Modifyをクリックし、Snapshot Retention Period(デフォルトは 1 時間)を設定し、Saveをクリックします。

  • スナップショットのクリーンアップ結果の確認

    • 現在のスナップショット数:残存するスナップショットの数。

    • 最も古いスナップショット情報:スナップショット ID、コミット時刻、コミットタイプ、総行数、およびコミット時に追加された行数を含む、最も古いスナップショットの詳細。

パーティションのライフサイクル管理

Storage Optimizationタブで、パーティションのライフサイクルをクリックし、クリーンアップルールおよびストレージ階層化を構成・確認します。

パーティションのクリーンアップルール

  1. [Expired Partition Cleanup] の横にある image スイッチをクリックして、有効にしてください。

  2. 以下のクリーンアップルールを構成し、Saveをクリックします。

    これらの設定は、テーブルオプションのキーと値のペアを通じても構成可能です。

    パラメーター

    説明

    Expiration Policy

    (partition.expiration-strategy)

    以下の有効期限戦略から 1 つを選択できます。

    • 最終アクセス時刻に基づく (access-time):パーティションの最終アクセス時刻に基づいて有効期限を設定します。

    • パーティション値に基づく (values-time):パーティションのタイムスタンプ形式およびパターンを構成できます。

      • タイムスタンプ形式 (partition.timestamp-formatter): yyyy-MM-ddyyyyMdddd/MM/yyyydd.MM.yyyy などの形式を構成できます。

      • タイムスタンプパターン (partition.timestamp-pattern): デフォルトでは最初のパーティションフィールドが使用されます。$dt$year-$month-$day などのパターンを構成できます。

    • 最終更新時刻に基づく (update-time):パーティションの最終更新時刻に基づいて有効期限を設定します。

    Partition Retention Period

    (partition.expiration-time)

    単位:日。例:30d。最大値は 999,999 日です。保存期間は選択した有効期限戦略に基づいて開始されます。

  3. (任意)保存後、Modify横のCleanup Rule Settingsをクリックし、設定を変更します。

説明

パーティションを永続的に保持する場合は、有効期限ルールを構成しないでください。システムはデフォルトでパーティションデータをクリーンアップしません。

パーティションのクリーンアップ結果

View Partitionsをクリックし、パーティション名、行数、参照ファイル、ファイルサイズ、作成者、ストレージクラス、最終変更者、タイムスタンプ、および操作を含むパーティションリストを確認します。

ストレージ階層化

パラメーター

説明

Intelligent Tiering

image有効化すると、システムは構成されたライフサイクルルールに基づき、カタログ内のすべてのテーブルに対して自動的にストレージ階層化を実施します。必要に応じて戦略およびルールを指定してください。

説明
  • カタログレベルで有効化されている場合、テーブルはデフォルトでこの設定を継承します。テーブルレベルで設定を変更すると、カタログ設定がオーバーライドされ、継承インジケーターが削除されます。

  • カタログレベルで有効化されていない場合でも、テーブルレベルで有効化できます。

Tiering Strategy

  • 最終アクセス時刻:テーブルまたはパーティションデータの最終アクセス時刻に基づいてルールを評価します。

  • 最終更新時刻:テーブルまたはパーティションデータの最終更新時刻に基づいてルールを評価します。

Tiering Rule

ストレージクラスごとに、最小保存期間の要件が異なります。

階層化ルールを構成します。

  • 低頻度アクセスへのトランジション

    • 非アクティブしきい値:カスタム可能。デフォルトは 30 日です。

      この非アクティブ期間経過後、データは低頻度アクセスストレージに移行されます。計算エンジンは引き続きデータにアクセス可能ですが、パフォーマンスが低下します。

    • アクセス時に標準ストレージに自動変換:アクセス時にテーブルまたはパーティションを標準ストレージに戻します。

      説明

      この機能は、階層化戦略が「最終アクセス時刻」に設定されている場合にのみサポートされます。

  • アーカイブへのトランジション

    • 非アクティブしきい値:カスタム可能。デフォルトは 60 日です。

      この非アクティブ期間経過後、データはアーカイブストレージに移行されます。計算エンジンはアーカイブ済みデータにアクセスできません。

    • アクセス時に標準ストレージに自動変換:アクセス時にテーブルまたはパーティションを標準ストレージに戻します。

      説明

      この機能は、階層化戦略が「最終アクセス時刻」に設定されている場合にのみサポートされます。

  • コールドアーカイブへのトランジション

    • 非アクティブしきい値:カスタム可能。デフォルトは 180 日です。

      この非アクティブ期間経過後、データはコールドアーカイブストレージに移行されます。計算エンジンはコールドアーカイブ済みデータにアクセスできません。

説明

インテリジェントなストレージ階層化に加えて、テーブル詳細ページで手動でストレージクラスを変更できます。ストレージ概要ページには、カタログ、データベース、テーブルごとの階層化ディストリビューションが表示されます。

孤立ファイルのクリーンアップ

Storage Optimizationタブで、孤立ファイルのクリーンアップをクリックし、手動で孤立ファイルのクリーンアップをトリガーします。

自動クリーンアップを有効化するには、カタログ構成に auto-orphan-files-clean.enabled = true を追加します。クリーンアップされた孤立ファイルは一時的にゴミ箱 (system.trash) に移動されます。ゴミ箱内のファイルの保持期間は、カタログ構成の dlf.trashed-file-retained-days で調整できます。

ストレージクラスの手動変更

  1. Databaseリストで、データベース名をクリックし、テーブルリストを表示します。

  2. Tablesリストで、テーブル名をクリックし、スキーマを表示します。

  3. Table Detailsタブをクリックし、パーティションテーブルおよび非パーティション化テーブルのストレージクラスを手動で変更します。

    パーティションテーブル

    Partitionsタブで、パーティションのストレージクラスを変更できます。

    • 標準、低頻度アクセス、またはアーカイブストレージクラスにあるパーティションの場合:

      Actions列で、Modify Storage Classをクリックし、他のストレージクラスに変更します。

    • コールドアーカイブストレージクラスにあるパーティションの場合:

      まずデータを復元してから、ストレージクラスを変更します。

      1. Restore]をクリックし、[Restored Copy Availability Duration]を設定します。複数のパーティションをバッチ復元用に選択できます。

        • 有効値:1 ~ 365 の整数(単位:日)。

        • デフォルト値:1 日。

      2. データが解凍状態になると、Actions列でModify Storage Classをクリックして、ストレージクラスを変更します。

    非パーティション化テーブル

    テーブルのBasic Informationセクションで、Storage Classを変更できます。

    • 標準、低頻度アクセス、またはアーカイブストレージクラスの場合:

      Storage Class横のEditをクリックし、他のストレージクラスに変更します。

    • コールドアーカイブストレージクラスの場合:

      まずデータを復元してから、ストレージクラスを変更します。

      1. Restore]を[Storage Class]の横でクリックし、[Restored Copy Availability Duration]を設定します。

        • 有効値:1 ~ 365 の整数(単位:日)。

        • デフォルト値:1 日。

      2. Storage Classが「コールドアーカイブ(解凍済み)」に変更されたら、Storage Class横のEditをクリックします。その後、他のストレージクラスに変更できます。

    説明
    • 解凍時間:コールドアーカイブは標準解凍優先度のみをサポートしており、2 ~ 5 時間かかります。

    • 解凍状態の開始時刻:パーティション内の最初のコールドアーカイブオブジェクトが解凍完了後に解凍状態に入った時点です。

    • 解凍コピーの可用期間:コールドアーカイブから復元された後、データがアクセス可能な期間です。有効期限が切れると、パーティションは再び凍結ステータスに戻ります。再度アクセスするには、新しい解凍リクエストを送信する必要があります。

    復元手順

    1. オブジェクトは凍結ステータスで開始されます。

    2. 解凍リクエストを送信後、オブジェクトは解凍中ステータスに入ります。解凍時間は異なります。

    3. 解凍が完了すると、オブジェクトは解凍状態に入ります。テーブルレベルのストレージ階層化の場合、すべてのオブジェクトが解凍された後、パーティションがアクセス可能になります。

      解凍状態の期間は、解凍コピーの可用期間を調整することで延長できます(ストレージクラスで許容される最大値まで)。

    4. 解凍コピーの可用期間が切れると、オブジェクトは再び凍結ステータスに戻ります。再度アクセスするには、新しい解凍リクエストを送信する必要があります。