2

У меня есть большое количество файлов в корзине s3 и обычно импортируйте его в Redshift. Поскольку число файлов велико, мне нужен столбец в таблице Redshift, который должен содержать имя исходного файла из s3-местоположения.Сохранение исходного имени файла при импорте данных из s3 в Redshift

Есть ли какие-либо меры для решения проблемы?

ответ

1

Согласитесь с Ketan, что в настоящее время это невозможно в Redshift. Если это то, что вы хотите достичь, можно либо через

  1. Чтение файлов S3 программно и записывать новый S3 файлы с именем файла в качестве столбца и загрузите новый файл
  2. Также можно использовать улей , Создайте внешнюю таблицу в месте расположения файла S3 и используйте INPUT__FILE__NAME, чтобы получить имена файлов, создать новую таблицу и затем записать обратно на S3. Вы также можете выполнить предварительную обработку в Hive.

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+VirtualColumns

Надеется, что это помогает.

+0

Спасибо! для вашего ответа, что на самом деле произошло, это Preprocessing s3-файл и сохранение снова с новым столбцом данных (с использованием любого языка программирования и AWS SDK) значительно увеличивает значение времени, которое я действительно хотел избежать. –

1

Это невозможно. Во время операции Copy Redshift загружает только содержимое файла в таблицу; он не обеспечивает доступ к именам файлов S3.

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

+0

спасибо !! для вашего ответа, что на самом деле произошло, это Preprocessing s3-файл и сохранение снова с новым столбцом данных (с использованием любого языка программирования и AWS SDK) значительно увеличивает значение времени, которое я действительно хотел избежать. –

Смежные вопросы