AWS Glue Crawler覆盖数据与附加

时间:2018-04-03 15:26:35

标签: amazon-web-services amazon-s3 aws-glue

我正在尝试利用Athena对第三方供应商预先ETL的数据运行SQL并推送到内部S3存储桶。

ETL供应商每天将CSV文件推送到存储桶。每个文件包括昨天的数据以及返回2016年的数据(即新数据每天到达,但历史数据也可能发生变化)。

我设置了AWS Glue Crawler来监控上传CSV文件的特定S3文件夹。

因为每个文件都包含更新的历史数据,所以我希望找到一种方法,根据上传的最新文件而不是附加来使爬虫覆盖现有表。 这可能吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

你问的方式是不可能的。 Crawler不会改变数据。

Crawler仅使用表格填充AWS Glue数据目录。 有关详细信息,请参阅此处:https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html

如果您想在使用数据之前使用Athena / Glue进行数据清理,您需要按照以下步骤操作:

  1. 使用Crawler将数据映射到临时Athena数据库/表

  2. 使用Athena配置您的数据。 SQL或QuickSight等,以了解您需要改变的内容

  3. 使用胶水作业

    • 使用PySpark或Scala进行数据转换/清理/重命名/ 重复数据删除
    • 将数据导出到S3新位置(.csv / .paruqet等)可能进行分区
  4. 再运行一个Crawler,将清理后的数据从新的S3位置映射到Athena数据库

  5. 您要求的重复数据删除发生在第3步