【问题标题】:Can Glue(crawlers) and athena do change management?Glue(爬虫)和 athena 可以进行变更管理吗?
【发布时间】:2018-07-02 19:10:46
【问题描述】:

Glue 从 JDBC 源在 s3 中创建 Parquet 文件。

架构:

col1 col2 时间戳

key1   val1    今天
key2   val2    今天

为今天创建的 Parquet 文件。可以被雅典娜查询。

源表(临时)的明天更新,即 key2 值已更改,并添加了另外两行。

架构:

col1 col2 时间戳

key2   val3    明天
key3   val4    明天
key4   val5    明天

为明天创建的新 Parquet 文件只有 3 行(key2、Key3、Key4)。

我们如何使用 Glue/Athena 使用目标表中的时间戳更新 key2 值..

期望的输出:


col1 col2 时间戳

key1   val1     今天
key2   val3     明天
key3   val4     明天
key4   val5     明天

【问题讨论】:

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


    【解决方案1】:

    Glue 只管理架构更改,没有数据更改

    【讨论】:

    • 关于这个答案的更多细节将使其有价值。
    【解决方案2】:

    Glue 从 JDBC 源在 s3 中创建 Parquet 文件。

    这些文件是否被导出到目标 S3 存储桶中的不同分区(“文件夹”)?

    示例:“s3://target-bucket/year=2018/month=4/day=1/files-here

    如果是这样,请创建并安排一个 Glue 爬虫,以便在 Glue JDBC 提取作业之后定期爬取目标 S3 存储桶。爬虫将更新 Athena 表的定义,添加所有新分区并使新数据可查询。

    总结:

    步骤 1)

    GLUE JOB -- exports --> S3 BUCKET
    

    第 2 步)

    GLUE CRAWLER --> crawls --> S3 BUCKET --> updates --> ATHENA TABLE'S DEFINITION
    

    请注意,您不应更改表的架构(即列的名称、类型和顺序),因为 Glue 目前不支持 parquet 文件来改变数据类型或允许对列进行重新排序。不过,他们已经在进行修复。如果这是必备功能,您可以将数据格式更改为 JSON。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      • 2019-11-07
      相关资源
      最近更新 更多