Delta Lake に変換

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

Unity Catalog は、 Unity Catalog によって管理される外部ロケーションに格納されている Parquet テーブルと Iceberg テーブルに対して CONVERT TO DELTA SQL コマンドをサポートしています。

既存の Parquet データ ファイルを Unity Catalog の外部テーブルとして構成し、それらを Delta Lake に変換して、Databricks レイクハウスのすべての機能のロックを解除できます。

技術文書については、 デルタに変換を参照してください。

外部ロケーションにある Parquet ファイルまたは Iceberg ファイルのディレクトリを Delta Lake に変換する

  • Iceberg テーブルの変換は パブリック プレビュー段階です。

  • Iceberg テーブルの変換は、 Databricks Runtime 10.4 以降でサポートされています。

  • Iceberg メタストア テーブルの変換はサポートされていません。

  • パーティションの進化 を経験した Iceberg テーブルの変換はサポートされていません。

  • 更新、削除、またはマージが発生した Iceberg 読み取り時のマージ テーブルの変換はサポートされていません。

  • 切り捨てられた列で定義されたパーティションを持つ Iceberg テーブルを変換する場合の制限事項を次に示します。

    • Databricks Runtime 13.0 以前では、サポートされている切り捨て列の種類は string のみです。

    • Databricks Runtime 13.1 以降では、 stringlong、または int 型の切り捨てられた列を操作できます。

    • Databricks では、型 decimalの切り捨てられた列の操作はサポートされていません。

Parquet データ ファイルのディレクトリを Delta Lake テーブルに変換できますが、ストレージの場所に対する書き込みアクセス権があります。

CONVERT TO DELTA parquet.`gcs://my-bucket/parquet-data`;

CONVERT TO DELTA iceberg.`gcs://my-bucket/iceberg-data`;

その後、これらのファイルをテーブルとして Hive metastoreに登録できます。

Databricks Runtime 11.2 以降では、CONVERT TO DELTA はメタストアに登録されているテーブルのパーティション分割情報を自動的に推測するため、パーティションを手動で指定する必要がなくなります。

管理対象表と外部表を Unity Catalog Delta L ake に変換する

Unity Catalog は外部テーブルの多くの形式をサポートしていますが、マネージド テーブルの Delta Lake のみをサポートします。 Parquet マネージ テーブルをマネージ Unity Catalog Delta Lake テーブルに直接変換するには、「 テーブルを Unity Catalog マネージド テーブルにアップグレードする」を参照してください。

外部 Parquet テーブルを Unity Catalogにアップグレードするには、「 単一の外部テーブルを 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);