【问题标题】:Simplest tool in AWS for very simple (transform in) ETL?AWS 中用于非常简单(转换)ETL 的最简单工具?
【发布时间】:2019-01-09 16:45:46
【问题描述】:

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

Glue 似乎能够做到这一点,但我觉得学习曲线和设置这样一个简单的任务是多余的。

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

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 我可以覆盖现有 athena 表中的数据(类似于 truncate insert )还是每次都必须创建一个新表。
    • 很遗憾 Athena 不会覆盖/删除数据。您必须先删除底层 S3 路径,然后才能再次运行相同的查询。
    猜你喜欢
    • 2012-01-18
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    相关资源
    最近更新 更多