Снежинка - значения столбца по умолчанию не действуют с командой КОПИРОВАТЬ? - PullRequest
0 голосов
/ 17 июня 2020

Я использую Matillion для загрузки данных в Snowflake, оба на Azure. Когда я создаю таблицы, я указываю значения по умолчанию для столбцов, мне не нравится наличие NULL на складе.

Из того, что я читал, компонент оркестровки запросов к базе данных в Matillion for Snowflake помещает извлеченный набор данных в Azure blob и использует команду Snowflake COPY для перемещения данных из большого двоичного объекта в целевой объект. стол.

В результате в целевой таблице все еще присутствуют значения NULL.

Может ли кто-нибудь подтвердить, что команда COPY выполняет какое-то массовое копирование данных и что значения по умолчанию эффективны только с INSERT заявления?

В таком случае я просто использую перехват NULL-значений в источнике.

Спасибо.

JFS.

1 Ответ

1 голос
/ 17 июня 2020

Это не упоминается прямо, но документация COPY INTO … TABLE действительно указывает, что он будет использовать значение по умолчанию только для пропущенных имен столбцов (а не в других сценариях ios) :

( col_name [ , col_name ... ] )

[…]

Любые столбцы, исключенные из этого списка столбцов, заполняются по их значениям по умолчанию

Кроме того, поведение использования NULL упоминается для другого сценария , где данные могут отсутствовать, не обращая внимания на использование значений по умолчанию:

ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE

[…]

Если входной файл содержит записи с меньшим количеством полей, чем столбцы в таблице, несоответствующие столбцы в таблице загружаются со значениями NULL .

...