Сохранение схемы при выгрузке стола Snowflake на s3 в паркете - PullRequest
3 голосов
/ 26 февраля 2020

Моя таблица в Snowflake содержит поле, созданное как INT и по умолчанию NUMBER(38,0) как тип данных Snowflake.

Когда я выгружаю эту таблицу в s3 в формате паркета с помощью команды COPY, я ожидаю сохранить всю схему, включая точность этого поля. Однако результирующий паркет имеет INT32 Decimal(precision=9, scale=0).

. В документации Snowflake упоминается, что

/ * Чтобы сохранить схему таблицы в выходном файле, используйте простой оператор SELECT. (например, ВЫБРАТЬ * ИЗ городов). * /

Тем не менее, мой запрос ниже не сохраняет точность неизменной.

COPY INTO @staging.dl_stage/prediction/vehicle/export_date=20200226/file 
FROM (
    SELECT * FROM  snd_staging.PREDICTION.vehicle
)
  FILE_FORMAT=(type='parquet' COMPRESSION = AUTO)
  HEADER = TRUE
  OVERWRITE = TRUE
  SINGLE = False
  MAX_FILE_SIZE=256000000;

Возможно ли принудительно сохранить точность типа данных Snowflake без изменений?

1 Ответ

1 голос
/ 27 февраля 2020

Я в конце концов решил это, запустив это:

alter session set ENABLE_UNLOAD_PHYSICAL_TYPE_OPTIMIZATION = false; 
...