Convertir en Delta Lake
La commande SQL CONVERT TO DELTA effectue une conversion unique des tables Parquet et Apache Iceberg vers des tables Delta Lake. Pour la conversion incrémentielle des tables Parquet ou Iceberg vers Delta Lake, voir Cloner de manière incrémentielle les tables Parquet et Apache Iceberg vers 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ées par Unity Catalog.
Vous pouvez configurer les fichiers de données Parquet existants en tant que tables externes dans Unity Catalog, puis les convertir en Delta Lake pour déverrouiller toutes les fonctionnalités du lakehouse Databricks.
Pour la documentation technique, consultez CONVERT TO DELTA.
Conversion d'un répertoire de fichiers Parquet ou Iceberg dans un emplacement externe en Delta Lake
- La conversion des tables Iceberg est prise en charge dans Databricks Runtime 10.4 LTS et les versions ultérieures.
- La conversion des tables de métastore Iceberg n'est pas prise en charge.
- La conversion des tables Iceberg ayant subi une évolution de partition n’est pas prise en charge.
- Voici les limitations pour la conversion des tables Iceberg avec des partitions définies sur des colonnes tronquées :
- Dans Databricks Runtime 12.2 LTS et versions antérieures, le seul type de colonne tronqué pris en charge est
string. - Dans Databricks Runtime 13.3 LTS et versions ultérieures, vous pouvez travailler avec des colonnes tronquées de types
string,longouint. - Databricks ne prend pas en charge l’utilisation de colonnes tronquées de type
decimal.
- Dans Databricks Runtime 12.2 LTS et versions antérieures, le seul type de colonne tronqué pris en charge est
Vous pouvez convertir un répertoire de fichiers de données Parquet en une table Delta Lake, à condition d’avoir un accès en écriture sur l’emplacement de stockage. Pour plus d’information sur la configuration de l’accès avec Unity Catalog, consultez Se connecter au stockage d’objets cloud à l’aide de Unity Catalog.
CONVERT TO DELTA parquet.`s3://my-bucket/parquet-data`;
CONVERT TO DELTA iceberg.`s3://my-bucket/iceberg-data`;
Pour charger des tables converties en tant que tables externes vers Unity Catalog, vous avez besoin de l’autorisation CREATE EXTERNAL TABLE sur l’emplacement externe.
Pour Databricks Runtime 11.3 LTS et versions ultérieures, CONVERT TO DELTA déduit automatiquement les informations de partitionnement pour les tables enregistrées dans le Hive metastore. Vous devez fournir des informations de partitionnement pour les tables externes de Unity Catalog.
Conversion des tables gérées et externes vers Delta Lake sur Unity Catalog
CONVERT TO DELTA La syntaxe ne peut être utilisée que pour la création de tables externes Unity Catalog. Utilisez une instruction CTAS pour convertir directement une table Parquet gérée par un metastore Hive hérité en une table Delta Lake gérée par Unity Catalog, consultez Mettre à niveau 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 un schéma ou des tables du Hive metastore vers des tables externes Unity Catalog à l'aide de l'assistant de mise à niveau.
Après avoir enregistré 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);