Самый простой инструмент в AWS для очень простого (трансформируемого) ETL? - PullRequest
0 голосов
/ 09 января 2019

У нас есть множество файлов в S3, всего десятки гигабайт. Нам нужно перевести их в формат CSV, в настоящее время файлы имеют разделители, которые не являются запятыми. Обычно я делаю это на сервере, используя sed, но мне не нужно передавать файлы на сервер, я хочу читать напрямую из S3, построчно переводить в CSV и записывать результаты обратно в новые файлы S3 .

Клей, кажется, в состоянии сделать это, но я чувствую, что кривая обучения и настройка для такой простой задачи излишни.

Нет ли какого-нибудь простого способа выполнить такие простые задачи, например, в EMR или другом инструменте AWS? Мы используем Athena, и мне интересно, можно ли это сделать в SQL-выражении с использованием Athena? Спасибо

1 Ответ

0 голосов
/ 10 января 2019

Да, это должно быть очень легко, и вам не нужен какой-либо внешний инструмент ETL или клей. Предположим, у вас есть таблица с разделителями каналов с именем «cust_transaction_pipe», основанная на файле с разделителями каналов, и вы можете запросить таблицу с помощью Athena без каких-либо проблем. Чтобы преобразовать эту таблицу в запятую, просто используйте следующий запрос:

create table cust_transaction_csv 
with (external_location = 's3://YOUR_S3_BUCKET_NAME/cust_tx_csv/',format='TEXTFILE',field_delimiter = ',')
as 
select * from cust_transaction_pipe

После завершения вы можете проверить местоположение, которое вы указали. Там будет файл с разделителями-запятыми. Вы можете указать множество других опций внутри WITH (). Для получения полного набора параметров см. Ссылку на документацию Athena AWS здесь .

...