Delta Lake に変換する

CONVERT TO DELTA SQL コマンドを実行すると、Parquet テーブルと Iceberg テーブルが Delta Lake テーブルに 1 回限り変換されます。 Delta Lake への Parquet テーブルまたは Iceberg テーブルの増分変換については、「Parquet テーブルと Iceberg テーブルを Delta Lake に増分複製する」を参照してください。

Unity Catalog では、その管理下にある外部の場所に格納された Parquet テーブルと Iceberg テーブルについて、SQL コマンド CONVERT TO DELTA がサポートされます。

Unity Catalog で既存の Parquet データ ファイルを外部テーブルとして構成し、それを Delta Lake に変換することで、Databricks Lakehouse のすべての機能が使用できるようになります。

技術ドキュメントについては、「CONVERT TO DELTA」を参照してください。

外部の場所にある Parquet または Iceberg ファイルのディレクトリを Delta Lake に変換する

注意

  • Iceberg テーブルの変換は、パブリック プレビュー段階です。
  • Iceberg テーブルの変換は、Databricks Runtime 10.4 LTS 以降でサポートされています。
  • Iceberg メタストア テーブルの変換はサポートされていません。
  • パーティションの進化が発生した Iceberg テーブルの変換はサポートされていません。
  • 更新、削除、またはマージが発生した Iceberg の読み取り時マージ テーブルの変換はサポートされていません。
  • 切り捨てられた列でパーティションが定義されている Iceberg テーブルを変換する場合の制限事項を次に示します。
    • Databricks Runtime 12.2 LTS 以前では、唯一サポートされている切り捨てられた列は string 型です。
    • Databricks Runtime 13.3 LTS 以降では、stringlongまたは int 型の切り捨てられた列を扱うことができます。
    • Azure Databricks では、decimal 型の切り捨てられた列の処理はサポートされていません。

保存場所に書き込みアクセス権がある限り、Parquet データ ファイルのディレクトリを Delta Lake テーブルに変換できます。 Unity Catalog を使用したアクセスの構成については、「Unity Catalog を使用してクラウド オブジェクト ストレージへの接続」を参照してください。

Note

Unity Catalog には、Azure Data Lake Storage Gen2 が必要です。

CONVERT TO DELTA parquet.`abfss://container@storageAccount.dfs.core.windows.net/parquet-data`;

CONVERT TO DELTA iceberg.`abfss://container@storageAccount.dfs.core.windows.net/iceberg-data`;

変換されたテーブルを外部テーブルとして Unity Catalog に読み込むには、外部の場所に対して CREATE EXTERNAL TABLE アクセス許可が必要です。

Note

Databricks Runtime 11.3 LTS 以降では、CONVERT TO DELTA は Hive メタストアに登録されているテーブルのパーティション分割情報が自動的に推論されます。 Unity Catalog の外部テーブルのパーティション分割情報を指定する必要があります。

Unity Catalog でマネージド テーブルと外部テーブルを Delta Lake に変換する

CONVERT TO DELTA 構文は、Unity Catalog の外部テーブルの作成にのみ使用できます。 CTAS ステートメントを使用してレガシ Hive メタストア マネージド Parquet テーブルをマネージド Unity Catalog Delta Lake テーブルに直接変換します。「CREATE TABLE AS SELECT を使用して Hive テーブルを Unity Catalog マネージド テーブルにアップグレード」を参照してください。

外部 Parquet テーブルを Unity Catalog の外部テーブルにアップグレードするには、「アップグレード ウィザードを使用して単一の Hive テーブルを Unity Catalog の外部テーブルにアップグレードする」を参照してください。

外部 Parquet テーブルを Unity Catalog に登録したら、外部 Delta Lake テーブルに変換できます。 Parquet テーブルがパーティションされている場合、パーティション分割情報を指定する必要があります。

CONVERT TO DELTA catalog_name.database_name.table_name;

CONVERT TO DELTA catalog_name.database_name.table_name PARTITIONED BY (date_updated DATE);