Как импортировать / загружать данные из файлов csv в корзине s3 в Redshift с помощью AWS Glue без использования команды копирования
Входные файлы, содержащие данные о продажах, будут отправляться в корзину s3 в формате csv в день максимум 5 файлов один раз в определенное время.
Используя Склейте данные файлов csv для загрузки в Redshift.
Перед загрузкой в Redshift необходимы преобразования, такие как вычисления и сопоставление из файлов CSV.
Пожалуйста, поделитесь своими впечатлениями / предложениями о том, как создать эффективное решение.
Ниже следует позаботиться.
1. Дубликат в CSV, который клиент может или не может отправлять. 2. те же данные говорят, что данные предыдущего дня были отправлены на следующий день. 3. хотите обрабатывать обновление и вставку в таблицы Redshift. 4. Файлы csv после обработки / загрузки в Redshift переместите эти файлы в другое место в корзине S3.
1 ответ
Когда вы говорите «без использования команды копирования», вы имеете в виду все источники для КОПИРОВАНИЯ? COPY может загружаться из S3, EMR, DDB или через соединение ssh. Если это так, я могу придумать только 2 способа получить данные в Redshift без копирования:
- Загрузите литералы в SQL. (ВСТАВИТЬ ... ЗНАЧЕНИЯ (...);)
- Используйте Redshift Spectrum для доступа к объектам S3, затем считайте из этой внешней таблицы и вставьте данные во внутреннюю таблицу.
№1 очень медленный и ограничен тем, сколько данных вы можете поместить в один оператор (ограничение длины команды SQL составляет 64 КБ). Это также отрицательно сказывается на работе ведущего узла, что может повлиять на общую производительность кластера. Это нормально для нескольких строк данных, но не для больших объемов данных.
#2 - отличный вариант, но вам нужно определить внешнюю таблицу, иметь данные в S3 и убедиться, что она получает правильный набор файлов S3. Это прекрасный шаблон, если вы собираетесь и дальше использовать файлы S3, но я не уверен, чем это лучше, чем КОПИРОВАТЬ из S3 в случае одиночной нагрузки.
Если вы намереваетесь использовать шаблоны, которые могут загружать данные без КОПИРОВАНИЯ С S3, то есть еще 3 формы КОПИРОВАНИЯ, о которых стоит подумать.