Partager via


Convertir en Delta Lake

La commande SQL CONVERT TO DELTA effectue une conversion unique des tables Parquet et Iceberg en tables Delta Lake. Pour la conversion incrémentielle des tables Parquet ou Iceberg en Delta Lake, consultez Cloner de manière incrémentielle des tables Parquet et Iceberg dans Delta Lake.

Unity Catalog prend en charge la commande SQL CONVERT TO DELTA pour les tables Parquet et Iceberg stockées dans des emplacements externes gérés par Unity Catalog.

Vous pouvez configurer des fichiers de données Parquet existants en tant que tables externes dans Unity Catalog, puis les convertir au format Delta Lake pour déverrouiller toutes les fonctionnalités du lakehouse Databricks.

Pour obtenir la documentation technique, consultez CONVERT TO DELTA.

Conversion d’un répertoire de fichiers Parquet ou Iceberg dans un emplacement externe vers Delta Lake

Notes

  • La conversion de tables Iceberg est en préversion publique.
  • La conversion de tables Iceberg est prise en charge dans Databricks Runtime 10.4 LTS et versions ultérieures.
  • La conversion des tables du metastore Iceberg n’est pas prise en charge.
  • La conversion de tables Iceberg ayant connu une évolution de partition n’est pas prise en charge.
  • La conversion de tables de fusion en lecture Iceberg ayant été mises à jour, supprimées ou fusionnées n’est pas prise en charge.
  • Voici des limitations pour convertir des tables Iceberg avec des partitions définies sur des colonnes tronquées :
    • Dans Databricks Runtime 12.2 LTS et versions ultérieures, le seul type de colonne tronqué pris en charge est string.
    • Dans Databricks Runtime 13.3 LTS et versions ultérieures, vous pouvez utiliser des colonnes tronquées de types string, long ou int.
    • Azure Databricks ne prend pas en charge l’utilisation de colonnes tronquées de type decimal.

Vous pouvez convertir un répertoire de fichiers de données Parquet en table Delta Lake tant que vous disposez d’un accès en écriture sur l’emplacement de stockage. Pour plus d’informations sur la configuration de l’accès avec le Unity Catalog, consultez Se connecter au stockage d’objets cloud à l’aide du catalogue Unity.

Remarque

Unity Catalog nécessite 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`;

Pour charger des tables converties comme tables externes dans Unity Catalog, vous avez besoin de l’autorisation CREATE EXTERNAL TABLE sur l’emplacement externe.

Remarque

Pour Databricks Runtime 11.3 LTS et versions ultérieures, CONVERT TO DELTA déduit automatiquement les informations de partitionnement des tables inscrites dans le metastore Hive. Vous devez fournir des informations de partitionnement pour les tables externes du Unity Catalog.

Conversion de tables managées et externes en Delta Lake sur Unity Catalog

La syntaxe CONVERT TO DELTA ne peut être utilisée que pour créer des tables externes du Unity Catalog. Utilisez une instruction CTAS pour convertir une table Parquet héritée gérée par le métastore Hive en une table Delta Lake gérée par Unity Catalog, consultez Mise à niveau d'une table Hive en une table gérée par Unity Catalog à l'aide de CREATE TABLE AS SELECT.

Pour mettre à niveau une table Parquet externe vers une table externe Unity Catalog, consultez Mettre à niveau une seule table Hive vers une table externe Unity Catalog avec l’Assistant Mise à niveau.

Après vous être inscrit une table Parquet externe dans Unity Catalog, vous pouvez la convertir en table Delta Lake externe. Vous devez fournir des informations de partitionnement si la table Parquet est partitionnée.

CONVERT TO DELTA catalog_name.database_name.table_name;

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