【问题标题】:Using AWS Glue to Create a Table and move the dataset使用 AWS Glue 创建表并移动数据集
【发布时间】:2020-01-20 17:58:02
【问题描述】:

我从未使用过 AWS Glue,但我相信它会提供我想要的东西,并且我会听取一些建议。我有一个每月 CSV 数据上传,我推送到 S3,它有一个与之关联的暂存 Athena 表(所有字符串)。我希望 Glue 以 Parquet 格式对此数据集执行 Create Table As(以及所有必要的转换/转换),然后将该数据集从一个 S3 存储桶移动到另一个 S3 存储桶,以便主 Athena 表可以访问数据。

如前所述,以前从未使用过 Glue,并且想要 10 个启动器,所以我不去兔子洞。

我目前手动执行所有这些步骤,因此想了解如何使用 Glue 自动执行我的手动任务。

【问题讨论】:

    标签: amazon-s3 amazon-athena aws-glue


    【解决方案1】:

    是的,您可以使用 AWS Glue ETL 作业完全按照您的描述进行操作。但是,它不执行CREATE TABLE AS SELECTqueries,而是使用基于 spark 的 ETL 作业执行此操作。这里是github repo,它以非常详细的方式描述了这个过程,这里是更多关于ETL programming 的官方AWS 文档,基于AWS Glue 服务。初始设置后,您可以定义一些触发事件/调度来自动运行 Glue ETL 作业。

    但是,要记住的一件事是 cost 使用 AWS Glue 服务。由于它基于执行时间,因此有时预测最终成本并非易事。对于您描述的工作流程,使用 Athena 执行 CTAS 查询可以很好地转换您的数据并将其写入不同的 s3 存储桶。在这种情况下,您将确切地知道价格,因为它取决于您的数据大小。然后,您可以使用 AWS API 对元数据目录进行一些操作,以便可以在一次访问新信息。

    由于您是 AWS Glue ETL 工作的新手,我建议您坚持使用 CTAS 查询简单任务(尽管您可以提出相当复杂的查询)并查看开源项目 Apache Airflow 以实现自动化/调度和编排。这是我用于与您类似的任务的方法。 Airflow 易于在本地和远程机器上设置,具有用于任务监控的 CLI 和 GUI,抽象出所有调度和重试逻辑。它甚至有 hooks 与 AWS 服务交互。天啊,Airflow 甚至为您提供了dedicated operator 用于向 Athena 发送查询。我写了更多关于这种方法here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 2021-05-30
      • 2023-03-13
      相关资源
      最近更新 更多