AWS中最简单的工具即可实现非常简单的ETL(转换)?

时间:2019-01-09 16:45:47

标签: amazon-web-services etl amazon-athena

S3中有大量文件,总计数十GB。我们需要将它们转换为CSV格式,当前文件中的分隔符不是逗号。通常,我会在使用sed的服务器上执行此操作,但我不想将文件传输到服务器,我想直接从S3中读取,逐行转换为CSV,然后将结果写回到新的S3文件中

胶水似乎可以做到这一点,但我觉得学习曲线和完成这种简单任务的设置实在是太过分了。

在EMR或某些其他AWS工具中,是否没有一些简单的方法来完成诸如此类的简单任务?我们使用雅典娜,我想知道是否可以在使用雅典娜的SQL语句中完成?谢谢

1 个答案:

答案 0 :(得分:1)

是的,这应该非常容易,并且您不需要任何外部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文档链接here