胶水(爬虫)和雅典娜能改变管理吗?

时间:2018-01-23 20:53:55

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

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

架构:

col1 col2 timestamp

key1 val1今天
key2 val2今天

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

明天更新源表(temp),即key2值已更改,另外还有两行。

架构:

col1 col2 timestamp

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

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

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

期望的输出:

col1 col2 timestamp

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

2 个答案:

答案 0 :(得分:1)

Glue仅管理架构更改,无数据更改

答案 1 :(得分:0)

  

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当前不支持镶木地板文件来改变数据类型或允许重新排序列。他们已经在努力修复了。如果这是必备功能,您可以将数据格式更改为JSON。