Цель состоит в том, чтобы загрузить CSV из корзины s3 в таблицу в postgres в RDS.В поисках «лучших практик» я обнаружил, что AWS рекомендует их продукт «Data Pipeline».Они дают вам стартовый шаблон для массовой загрузки csv в rds mysql.Шаблон выглядит как на скриншоте ниже.Моя реакция: «Ух ты, все эти поля и стрелки только для загрузки CSV в таблицу?»
Поэтому мой вопрос: «Можем ли мы найтиболее простой подход к той же цели?Предположим, что моя корзина, моя база данных и бесплатный экземпляр T2.micro EC2 находятся в одном регионе.Предположим, что CLI AWS и клиент postgres установлены на EC2.
Я могу выполнить следующую команду, которая считывает CSV из корзины в стандартный вывод и передает поток в команду массовой загрузки postgres:
aws s3 cp s3://mybucket/dummy.csv - | psql -d mydb -p 5432 -c "copy dummy(f1, f2) from stdin with(format csv);"
^^^Это работает для 50 МБ файлов!Кажется, он не требует значительного буфера памяти.Это не отображает прогресс.Будет ли этот подход работать для очень больших файлов 10 ГБ?100GB?так далее?Является ли это надежным или мне действительно нужно использовать продукт конвейера данных?