AWS 中用于非常简单(转换)ETL 的最简单工具?
Simplest tool in AWS for very simple (transform in) ETL?
我们在S3中有很多文件,总共有几十GB。我们需要将它们转换为 CSV 格式,目前这些文件的分隔符不是逗号。通常我会在使用 sed 的服务器上执行此操作,但我不想将文件传输到服务器,我想直接从 S3 读取,逐行转换为 CSV,然后将结果写回新的 S3 文件.
Glue 似乎能够做到这一点,但我感觉这种简单任务的学习曲线和设置有点矫枉过正。
是否没有一些简单的方法可以完成诸如此类的简单任务,也许是在 EMR 或其他一些 AWS 工具中?我们使用 Athena,我想知道这是否可以使用 Athena 在 SQL 语句中完成?谢谢
是的,这应该非常简单,您不需要任何外部 ETL 工具或胶水。
假设您有一个名为 "cust_transaction_pipe" 的竖线分隔 table,它基于一个竖线分隔文件,您可以使用 Athena 查询 table 而不会出现任何问题。要将 table 转换为逗号分隔,只需使用以下查询:
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 文档 link here.
我们在S3中有很多文件,总共有几十GB。我们需要将它们转换为 CSV 格式,目前这些文件的分隔符不是逗号。通常我会在使用 sed 的服务器上执行此操作,但我不想将文件传输到服务器,我想直接从 S3 读取,逐行转换为 CSV,然后将结果写回新的 S3 文件.
Glue 似乎能够做到这一点,但我感觉这种简单任务的学习曲线和设置有点矫枉过正。
是否没有一些简单的方法可以完成诸如此类的简单任务,也许是在 EMR 或其他一些 AWS 工具中?我们使用 Athena,我想知道这是否可以使用 Athena 在 SQL 语句中完成?谢谢
是的,这应该非常简单,您不需要任何外部 ETL 工具或胶水。 假设您有一个名为 "cust_transaction_pipe" 的竖线分隔 table,它基于一个竖线分隔文件,您可以使用 Athena 查询 table 而不会出现任何问题。要将 table 转换为逗号分隔,只需使用以下查询:
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 文档 link here.