Snowflake - 列默认值对 COPY 命令无效?

Snowflake - Column default values not effective with COPY command?

我正在使用 Matillion 将数据加载到 Azure 上的 Snowflake。当我创建 tables 时,我为列指定了默认值,我不喜欢仓库中有 NULL。

据我所知,Matillion for Snowflake 中的数据库查询编排组件会将检索到的数据集放入 Azure blob 中,并使用 Snowflake COPY 命令将数据从 blob 移动到目标 table.

结果是目标中仍然存在 NULL 值 table。

有人可以确认 COPY 命令执行某种批量数据复制并且默认值仅对 INSERT 语句有效吗?

如果是这样,我将只在源中使用陷阱 NULL 值。

谢谢。

JFS.

它没有直接提及,但 COPY INTO … TABLE statement documentation 确实指定它将仅对跳过的列名称使用默认值(而不是在其他情况下):

( col_name [ , col_name ... ] )

[ … ]

Any columns excluded from this column list are populated by their default value

此外,another scenario 提到了 NULL 使用行为,其中数据可能丢失,没有记录默认值的使用:

ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE

[ … ]

If the input file contains records with fewer fields than columns in the table, the non-matching columns in the table are loaded with NULL values.