- 类别:
GENERATE_COLUMN_DESCRIPTION¶
使用 INFER_SCHEMA 函数输出,从一组包含半结构化数据的暂存文件中生成列的列表。
根据暂存文件的列定义手动创建表、外部表、Apache Iceberg™ 表或视图(使用相应的 CREATE <object> 命令)时,此函数的输出可用作输入。
或者,带 USING TEMPLATE 子句的 CREATE TABLE 或 CREATE ICEBERG TABLE 命令可用于创建新表,其中包含从同一 INFER_SCHEMA 函数输出派生的列定义。
语法¶
实参¶
expr格式化为数组的 INFER_SCHEMA 函数的输出。
'string'可以从列的列表中创建的对象的类型。此类型的相应格式适用于输出。
可能的值为
table、external_table或view。
返回¶
该函数返回一组暂存文件中列的列表,在创建第二个实参中标识的类型的对象时,该列表可用作输入。
示例¶
检测、格式化和输出在 mystage 暂存区上暂存的一组 Parquet 文件中的列定义集。输出列经过格式化,用于创建表。
本例以 INFER_SCHEMA 主题中的一个示例为基础:
与前面的示例相同,但生成一组经过格式化的列,用于创建外部表:
与前面的示例相同,但生成一组经过格式化的列,用于创建 Iceberg 表:
与前面的示例相同,但生成一组经过格式化的列,用于创建视图:
备注
如果返回的结果大于 128 MB,则在 ARRAY_AGG(OBJECT_CONSTRUCT()) 中使用 * 可能会导致错误。避免将 * 用于较大的结果集,而仅将所需的列 COLUMN NAME、TYPE 和 NULLABLE 用于查询。使用 WITHIN GROUP (ORDER BY order_id) 时,可以包含可选列 ORDER_ID。