我从未使用过AWS Glue,但是相信它会满足我的要求,并且会在得到一些建议之后提供帮助。我每月有一个CSV数据上传到S3,并已关联了一个临时的Athena表(所有字符串)。我希望Glue以Parquet格式对此数据集执行“创建表为”(具有所有必要的转换/广播),然后将该数据集从一个S3存储桶移动到另一个S3存储桶,以便主Athena表可以访问数据。>
如前所述,以前从未使用过Glue,并且想要10块起步器,所以我不会掉下去。
我目前手动执行所有这些步骤,因此想了解如何使用Glue自动执行手动任务。
答案 0 :(得分:0)
是的,您可以使用AWS Glue ETL作业完全按照您的描述进行操作。但是,它不执行CREATE TABLE AS SELECT
queries,而是对基于spark的ETL作业执行此操作。这里是github repo,它非常详细地描述了这种过程,这里是基于AWS Glue服务的关于ETL programming的AWS官方文档的更多内容。初始设置后,您可以定义一些触发事件/计划以自动运行您的Glue ETL作业。
但是,要记住的一件事是cost使用AWS Glue服务。由于它是基于执行时间的,因此有时候预测最终成本并不是一件容易的事。对于您描述的工作流程,使用Athena执行CTAS
查询可以很好地转换数据并将其写入另一个s3存储桶。在这种情况下,您将确切知道价格,因为它取决于数据的大小。然后,您可以使用AWS API对元数据目录进行一些操作,以便可以一次访问新信息。
由于您不熟悉AWS Glue ETL作业,所以我建议坚持使用CTAS
查询简单任务(尽管您可以提出非常复杂的查询),并研究一个开源项目{{3} }用于自动化/计划和编排。这是我用于与您类似的任务的方法。 Airflow易于在本地和远程计算机上设置,并具有用于任务监视的CLI和GUI,抽象了所有调度和重试逻辑。它甚至具有Apache Airflow与AWS服务进行交互。糟糕,Airflow甚至为您提供了hooks来向雅典娜发送查询。我写了更多有关这种方法dedicated operator的内容。