0

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

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

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

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

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

谢谢。

JFS。

4

1 回答 1

1

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

( col_name [ , col_name ... ] )

[…]

从此列列表中排除的任何列均由其默认值填充

此外,在另一种可能丢失数据的情况下提到了使用 NULL 的行为,没有注意使用默认值:

ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE

[…]

如果输入文件包含的记录的字段少于表中的列,则表中不匹配的列将加载 NULL 值

于 2020-06-17T15:23:13.700 回答