- Catégories :
GENERATE_COLUMN_DESCRIPTION¶
Génère une liste de colonnes à partir d’un ensemble de fichiers mis en zone de préparation qui contiennent des données semi-structurées en utilisant la sortie de la fonction INFER_SCHEMA.
La sortie de cette fonction peut être utilisée comme entrée lors de la création manuelle d’une table, d’une table externe, d’une table Apache Iceberg™ ou d’une vue (en utilisant la commande CREATE <objet> appropriée) basée sur les définitions de colonnes des fichiers en zone de préparation.
Alternativement, la commande CREATE TABLE ou CREATE ICEBERG TABLE avec la clause USING TEMPLATE peut être utilisée pour créer une nouvelle table avec les définitions de colonnes dérivées de la même sortie de fonction INFER_SCHEMA.
Syntaxe¶
Arguments¶
exprSortie de la fonction INFER_SCHEMA formatée comme un tableau.
'string'Type d’objet qui pourrait être créé à partir de la liste de colonnes. Le formatage approprié pour ce type est appliqué à la sortie.
Les valeurs possibles sont les suivantes :
table,external_table, ouview.
Renvoie¶
La fonction renvoie la liste des colonnes dans un ensemble de fichiers en zone de préparation, qui peuvent être utilisés en entrée lors de la création d’un objet du type identifié dans le deuxième argument.
Exemples¶
Détecter, formater et sortir l’ensemble des définitions de colonnes dans un ensemble de fichiers Parquet mis en zone de préparation dans l’étape mystage. Les colonnes de sortie sont mises en zone de préparation pour la création d’une table.
Cet exemple s’appuie sur un exemple de la rubrique INFER_SCHEMA :
Idem que l’exemple précédent, mais génère un ensemble de colonnes formatées pour la création d’une table externe :
Idem que l’exemple précédent, mais génère un ensemble de colonnes formatées pour la création d’une table Iceberg :
Idem que les exemples précédents, mais génère un ensemble de colonnes formatées pour la création d’une vue :
Note
L’utilisation de * pour ARRAY_AGG(OBJECT_CONSTRUCT()) peut entraîner une erreur si le résultat renvoyé est supérieur à 128 MB. Évitez d’utiliser * pour les jeux de résultats plus importants et de n’utilisez que les colonnes nécessaires, COLUMN NAME, TYPE, et NULLABLE, pour la requête. Vous pouvez inclure la colonne facultative ORDER_ID lorsque vous utilisez WITHIN GROUP (ORDER BY order_id).