КОПИРОВАНИЕ в таблицу Snowflake без определения схемы таблицы - PullRequest
2 голосов
/ 31 января 2020

Есть ли способ скопировать данные из S3 в Snowflake без предварительного определения столбцов вручную?

Мне не нужно определять схему для таблицы в Snowflake ИЛИ схему, для которой столбцы следует импортировать из S3. Я хочу, чтобы это была схема при чтении, а не схема при записи.

Я использую интеграцию хранилища для доступа к внешней ступени S3.

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

Ответы [ 2 ]

3 голосов
/ 31 января 2020

В настоящее время у нас нет вывода схемы для COPY. Я предполагаю, что вы уже знаете о параметре столбца варианта для JSON, но он не даст вам полной схематизации. https://docs.snowflake.net/manuals/user-guide/semistructured-concepts.html

Ужин sh Кулькарни

(PM, Снежинка)

2 голосов
/ 01 февраля 2020

Вам необходимо использовать сторонний инструмент, который анализирует весь файл данных S3, чтобы построить схему SQL из набора данных в файле. Или, возможно, инструмент получил доступ к определению источника данных (которого нет у Snowflake), чтобы упростить работу для инструмента.

Вы можете найти фрагменты кода хранимой процедуры Snowflake, выполнив поиск здесь в stackoverflow, который выводит определения схемы, например, рекурсивное выравнивание JSON файлов данных.

Если вы хотите, чтобы импорт был гибким, вам нужно использовать гибкий формат данных, такой как JSON, и гибкий тип данных SQL, такой как VARIANT. Это будет работать, даже если ваши структуры данных изменятся.

Если вы хотите использовать жесткие форматы, такие как CSV или жесткие SQL типы данных (большинство из которых жесткие), тогда все становится сложнее. Жесткие данные не являются гибкими, и, например, CSV-файлы не содержат никакой встроенной информации о типах, что делает невозможными большие предположения на будущее.
И, возможно, вы удовлетворены тем, что все ваши столбцы заканчиваются как VARCHAR ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...