#postgresql #hadoop #amazon-s3 #orc
#postgresql #hadoop #amazon-s3 #orc
Вопрос:
У нас есть формат файла ORC, который хранится в s3, и мы хотим загрузить файлы в AWS Aurora postgres DB.
То, что мы получили из Интернета, было :
- postgres поддерживает csv, txt и другие форматы, отличные от ORC..
INSERT OVERWRITE DIRECTORY '<Hdfs-Directory-Path>' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE SELECT * FROM default.foo;
Может ли кто-нибудь, пожалуйста, помочь нам найти решение?
Комментарии:
1. Вам необходимо преобразовать эти данные в формат, совместимый с Aurora / PostgreSQL.
2. разве у нас нет какого-либо решения, позволяющего напрямую конвертировать orc в csv или txt?
Ответ №1:
Эта дата PostgreSQL на Aurora поддерживает получение данных из S3 с помощью команды КОПИРОВАНИЯ только из файлов TXT и CSV.
Поскольку ваши файлы находятся в формате ORC, вы можете преобразовать эти листы в CSV или TXT, а затем использовать данные. Вы могли бы сделать это очень легко с помощью Athena, просто создав таблицу для ваших исходных данных и выполнив запрос SELECT * FROM table. Как объясняется на странице «Работа с результатами запроса, выходными файлами и историей запросов«, это автоматически сгенерирует файл CSV, содержащий результаты. Это было бы не оптимально, так как вы заплатили бы не только цену преобразования, но и за хранилище he дважды (как исходный ORC и преобразованный CSV), но это позволило бы вам довольно легко конвертировать данные.
Лучшим способом сделать это было бы вместо этого использовать сервис, такой как AWS Glue, который поддерживает S3 в качестве исходного кода и имеет разъем Aurora. Использование этого метода даст вам фактический ETL, и даже если сейчас вам просто нужны E(xtract) и L (oad), все равно оставит дверь открытой для любого преобразования, которое может понадобиться в будущем.
В этом блоге AWS под названием «Как извлекать, преобразовывать и загружать данные для аналитической обработки с помощью AWS Glue» (часть 2) показан противоположный поток (Aurora-> S3 через Glue), но он все равно должен дать вам представление о процессе.