загрузить формат orc в aurora postgres DB

#postgresql #hadoop #amazon-s3 #orc

#postgresql #hadoop #amazon-s3 #orc

Вопрос:

У нас есть формат файла ORC, который хранится в s3, и мы хотим загрузить файлы в AWS Aurora postgres DB.

То, что мы получили из Интернета, было :

  1. postgres поддерживает csv, txt и другие форматы, отличные от ORC..
  2. 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), но он все равно должен дать вам представление о процессе.