次の方法で共有


Azure Databricks for Delta Lake と Apache Iceberg の Unity カタログ マネージド テーブル

Important

Unity カタログのマネージド テーブルは、Delta Lake テーブルで一般提供されています。 Apache Iceberg テーブルの場合、この機能は パブリック プレビュー 段階であり、Databricks Runtime 16.4 LTS 以降で使用できます。

このページでは、Delta Lake と Apache Iceberg の Unity カタログマネージド テーブルについて説明します。これは、Azure Databricks の既定の推奨テーブルの種類です。 これらのテーブルは Unity カタログによって完全に管理および最適化されており、読み取りと書き込みのパターンからマネージド テーブルが学習されるため、パフォーマンス、運用上の利点、および外部テーブルと比較してストレージとコンピューティングコストが低くなります。 Unity カタログは、マネージド テーブルのすべての読み取り、書き込み、ストレージ、および最適化の責任を管理します。 「外部テーブルをマネージド Unity カタログ テーブルに変換する」を参照してください。

マネージド テーブルのデータ ファイルは、それらを含むスキーマまたはカタログに格納されます。 「Unity Catalog の管理されたストレージの場所の指定」を参照してください。

Databricks では、マネージド テーブルを使用して次の利点を活用することをお勧めします。

  • ストレージとコンピューティングのコストの削減。
  • すべてのクライアントの種類のクエリ パフォーマンスが向上します。
  • テーブルの自動メンテナンスと最適化。
  • 開いている API を使用して Databricks 以外のクライアントのアクセスをセキュリティで保護します。
  • Delta Lake および Iceberg 形式のサポート。
  • 最新のプラットフォーム機能への自動アップグレード。

Azure Databricks でサポートされているすべての言語と製品でマネージド テーブルを操作できます。 マネージド テーブルの作成、更新、削除、クエリを実行するには、特定の権限が必要です。 「Unity Catalog の特権の管理」を参照してください。

Note

このページでは、Unity カタログのマネージド テーブルについて説明します。 レガシ Hive メタストアのマネージド テーブルについては、レガシ Hive メタストアのデータベース オブジェクトに関する説明を参照してください。

Unity カタログのマネージド テーブルを使用する理由

Unity カタログのマネージド テーブルでは、自動クラスタリング、ファイル サイズの圧縮、インテリジェントな統計収集などの AI 駆動型テクノロジを使用して、ストレージ コストとクエリ速度が自動的に最適化されます。 次の表は、自動バキュームやメタデータ キャッシュなどの機能を使用してデータ管理を簡素化すると同時に、Delta および Iceberg のサード パーティ製ツールとの相互運用性を確保します。

次の機能は Unity カタログのマネージド テーブルに固有の機能であり、外部テーブルと外部テーブルでは使用できません。

Feature Benefits 既定で有効ですか? 設定。
予測最適化 AI を使用してデータ レイアウトとコンピューティングを自動的に最適化するため、マネージド テーブルの操作を手動で処理する必要はありません。 Databricks では、ストレージとコンピューティングのコストを削減するために、すべてのマネージド テーブルに対して予測最適化を有効にすることをお勧めします。
予測最適化が自動的に実行されます。
はい。2024 年 11 月 11 日以降に作成されたすべての新しいアカウント。
現在のアカウントでは、Azure Databricks は既定で予測最適化のロールアウトを開始しています。 予測最適化が有効になっているかどうかを確認するを参照してください。
Yes. 予測 最適化の有効化を参照してください。
自動液体クラスタリング 予測最適化を使用するテーブルの場合、自動液体クラスタリングを有効にすると、Azure Databricks はクラスタリング キーをインテリジェントに選択できます。 クエリ パターンが変化すると、Azure Databricks はクラスタリング キーを自動的に更新して、パフォーマンスを向上させ、コストを削減します。 いいえ Yes. 「液体クラスタリングを有効にする」を参照してください。
メタデータ キャッシュ トランザクション メタデータのメモリ内キャッシュは、クラウドに格納されているトランザクション ログへの要求を最小限に抑えることで、クエリのパフォーマンスを向上させます。 この機能により、クエリのパフォーマンスが向上します。 イエス No. メタデータ キャッシュは、マネージド テーブルに対して常に有効になります。
DROP TABLE コマンドの後のファイルの自動削除 マネージド テーブルを 削除 すると、Azure Databricks は 8 日後にクラウド ストレージ内のデータを削除し、ストレージ コストを削減します。 外部テーブルの場合は、ストレージ バケットに手動で移動し、ファイルを削除する必要があります。 イエス No. マネージド テーブルの場合、ファイルは常に 8 日後に自動的に削除されます。

Databricks データに外部システムを使用してアクセスする

マネージド テーブルは、Delta Lake と Iceberg クライアントからのアクセスを許可することで 相互運用性 をサポートします。 オープン API と資格情報の自動販売機により、Unity Catalog を使用すると、Trino、DuckDB、Apache Spark、Daft、Iceberg REST カタログ統合エンジン (Dremio や Snowflake など) などの外部エンジンがマネージド テーブルにアクセスできるようになります。 サポートされている外部エンジンの一覧については 統合 を参照するか、この一覧に含まれていない場合はエンジンのドキュメントを確認してください。

Unity カタログのマネージド テーブルは、Iceberg REST Catalog (IRC) を介して 外部システム によって読み取りおよび書き込みが可能であり、ガバナンスとセキュリティ制御を維持しながら、Databricks 以外のツールとシームレスに統合できます。 デルタ クライアントは読み取りのみをサポートします。

さらに、 Delta Sharing は、外部パートナーとプラットフォームへのセキュリティで保護された管理されたデータ アクセスを可能にするオープン ソース プロトコルです。 差分共有を使用して、パートナーに一時的な読み取り専用アクセス権を付与できます。

マネージドテーブルへのすべての読み取りと書き込みには、テーブル名、カタログ名、スキーマ名が存在する場合は、それらを使用してください。 たとえば、「 catalog_name.schema_name.table_name 」のように入力します。 パスベースのアクセスは、re:[UC] アクセス制御をバイパスし、マネージド テーブルの機能が正常に動作しないようにするため、推奨されません。

マネージド テーブルを作成する

マネージド テーブルを作成するには、次のものが必要です。

  • テーブルの親スキーマに対する USE SCHEMA
  • テーブルの親カタログに対する USE CATALOG
  • テーブルの親スキーマに対する CREATE TABLE

SQL を使用して空のマネージド テーブルを作成するには、次の SQL 構文を使用します。 プレースホルダー値を次のように置き換えます。

  • <catalog-name>: テーブルを含むカタログの名前。
  • <schema-name>: テーブルを含むスキーマの名前。
  • <table-name>: テーブルの名前。
  • <column-specification>: 各列の名前とデータ型。
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
  <column-specification>
);

-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
  <column-specification>
)
USING iceberg;

読み取りと書き込みのパフォーマンスを維持するために、Azure Databricks は、管理された Iceberg テーブルメタデータを最適化する操作を定期的に実行します。 このタスクは、Iceberg テーブルに対する MODIFY アクセス許可を持つサーバーレス コンピューティングを使用して実行されます。 この操作はテーブルのメタデータにのみ書き込み、コンピューティングはジョブの期間中、テーブルに対するアクセス許可のみを保持します。

Note

Iceberg テーブルを作成するには、 USING icebergを明示的に指定します。 それ以外の場合、Azure Databricks は既定で Delta Lake テーブルを作成します。

クエリ結果または DataFrame 書き込み操作からマネージド テーブルを作成できます。 次の記事では、Azure Databricks でマネージド テーブルを作成するために使用可能な多数のパターンの一部を示します。

マネージド テーブルをドロップする

マネージド テーブルを削除するには、次が必要です。

  • テーブルに対する MANAGE または、テーブルの所有者である必要があります。
  • テーブルの親スキーマに対する USE SCHEMA
  • テーブルの親カタログに対する USE CATALOG

マネージド テーブルをドロップするには、次の SQL コマンドを実行します:

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

Unity Catalog では、削除されたマネージド テーブルを 8 日間復旧するための UNDROP TABLE コマンドがサポートされています。 8 日後、Azure Databricks は、基になるデータをクラウド テナントから削除するようにマークし、自動テーブルメンテナンス中にファイルを削除します。 UNDROP を参照してください。