テーブル メンテナンス機能を使用して Fabric でデルタ テーブルを管理する
Microsoft Fabric の Lakehouse は、デルタ テーブルを効率的に管理し、常に分析可能な状態に保つためのテーブル メンテナンス機能を提供します。 このガイドでは、Lakehouse のテーブル メンテナンス機能とその機能について説明します。
レイクハウス テーブル メンテナンス機能の主な機能:
- Lakehouse エクスプローラー内のデルタ テーブルでコンテキストに応じた右クリック アクションを使用して、アドホック テーブルのメンテナンスを実行します。
- bin-compaction、V-Order、および参照されていない古いファイルのクリーンアップを適用します。
Note
複数のテーブル メンテナンス コマンドをグループ化する、スケジュールに基づいて調整するなどの高度なメンテナンス タスクの場合は、コード中心のアプローチをお勧めします。 詳細については、「Delta Lake テーブルの最適化と V-Order」の記事を参照してください。 また、Lakehouse API を使用したテーブルのメンテナンス操作の自動化もできます。詳細については、「Microsoft Fabric REST API を使用して Lakehouse を管理する」を参照してください。
サポートされているファイルの種類
「Lakehouse テーブルのメンテナンス」は、デルタ Lake テーブルにのみ適用されます。 PARQUET、ORC、AVRO、CSV、およびその他の形式を使用する従来の Hive テーブルはサポートされていません。
テーブル メンテナンス操作
テーブルのメンテナンス機能には、3 つの操作が用意されています。
- 最適化: 複数の小さな Parquet ファイルを大きなファイルに統合します。 ビッグ データ処理エンジンとすべての Fabric エンジンは、ファイル サイズが大きくなるとメリットが得られます。 ファイルのサイズが 128 MB を超え、最適には 1 GB に近づくと、クラスター ノード全体での圧縮とデータ分散が向上します。 これにより、効率的な読み取り操作のために多数の小さなファイルをスキャンする必要性が減ります。 大きなテーブルを読み込んだ後で最適化戦略を実行することが一般的なベスト プラクティスです。
- V-Order: 最適化された並べ替え、エンコード、圧縮を Delta Parquet ファイルに適用して、すべての Fabric エンジンで高速な読み取り操作を可能にします。 V-Order は optimize コマンド中に発生し、ユーザー エクスペリエンスのコマンド グループにオプションとして表示されます。 V-Order についての詳細は、「Delta Lake テーブルの最適化と V-Order」の記事を参照してください。
- Vacuum: Delta テーブル ログによって参照されなくなった古いファイルを削除します。 ファイルは保持しきい値より古い必要があり、既定のファイル保持しきい値は 7 日間です。 OneLake のすべての差分テーブルの保持期間は同じです。 ファイルの保存期間は、使用している Fabric コンピュートエンジンにかかわらず、同じです。 このメンテナンスは、ストレージ コストを最適化するために重要です。 保持期間を短くすると、Delta のタイム トラベル機能に影響します。 テーブルに対する同時の読み取りおよび書き込みによって、古いスナップショットやコミットされていないファイルが引き続き使用される可能性があるため、保有期間は少なくとも 7 日に設定するのが一般的なベスト プラクティスです。 VACUUM コマンドを使用してアクティブなファイルをクリーンアップすることで、コミットされていないファイルが削除されると、リーダーの障害が発生したり、テーブルが破損したりする可能性もあります。
Lakehouse を使用して Delta テーブルに対してアドホック テーブル メンテナンスを実行する
この機能の使用方法:
Microsoft Fabric アカウントから、目的の Lakehouse に移動します。
Lakehouse エクスプローラーの [テーブル] セクションで、テーブルを右クリックするか、省略記号を使用してコンテキスト メニューにアクセスします。
[メンテナンス] メニューエントリを選択します。
要件に従って、ダイアログのメンテナンス オプションを確認します。 詳細については、この記事の「テーブルのメンテナンス操作」セクションを参照してください。
[今すぐ実行] を選択して、テーブルのメンテナンス ジョブを実行します。
通知ペインまたは監視ハブによって、メンテナンス ジョブの実行を追跡します。
テーブルのメンテナンスのしくみは?
[今すぐ実行] が選択されると、実行のために Spark メンテナンス ジョブが送信されます。
- Spark ジョブは、ユーザー ID とテーブル権限を使って送信されます。
- Spark ジョブは、ジョブを送信したワークスペース/ユーザーの Fabric 容量を消費します。
- テーブルで別のメンテナンス ジョブが実行されている場合、新しいメンテナンス ジョブは拒否されます。
- 異なるテーブルのジョブは並列で実行できます。
- テーブルのメンテナンス ジョブは、監視ハブで簡単に追跡できます。 監視ハブのメイン ページで、アクティビティ名の列の中で "TableMaintenance" テキストを探します。