КОПИРОВАТЬ в таблицу Snowflake без определения схемы таблицы

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

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

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

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


person S.S.    schedule 31.01.2020    source источник
comment
мы делаем что-то вроде этого, поскольку у нас есть csv, который на самом деле представляет собой всего лишь один столбец, который является json blob, а затем мы загружаем его в таблицу хранения и вытаскиваем нужные столбцы позже. Но кроме того, что у вас нет столбцов, подобных приведенным выше, я не уверен, как вы можете обойтись без структуры.   -  person Simeon Pilgrim    schedule 02.02.2020


Ответы (2)


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

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

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

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

person Hans Henrik Eriksen    schedule 01.02.2020

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

Динеш Кулкарни

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

person Dinesh    schedule 31.01.2020