从BQ迁移至Snowflake:如何创建ARRAY<STRUCT>类型列?
BigQuery ARRAY 转 Snowflake 表结构定义
BigQuery 里的 ARRAY<STRUCT<name STRING, id STRING>> 类型,在 Snowflake 中可以直接用 ARRAY 嵌套 STRUCT 的方式实现,语法上仅需调整括号写法:
示例对比
- BigQuery 表定义:
CREATE TABLE bq_example ( user_items ARRAY<STRUCT<name STRING, id STRING>> );
- 对应的 Snowflake 表定义:
CREATE TABLE snowflake_example ( user_items ARRAY(STRUCT(name STRING, id STRING)) );
关键说明
- Snowflake 用
STRUCT(<字段名> <类型>, ...)定义结构体,外层包裹ARRAY()就对应 BQ 的数组嵌套结构体类型。 - 插入数据时,可通过
ARRAY(OBJECT_CONSTRUCT('name', 'foo', 'id', '1'), OBJECT_CONSTRUCT('name', 'bar', 'id', '2'))生成符合结构的数据,逻辑与 BQ 数组结构体一致。
内容的提问来源于stack exchange,提问作者tomer
相关产品推荐
相关产品推荐

