是否可以使用 AWS 胶水爬虫重新分区数据?

Is it possible to re-partition the data using AWS glue crawler?

我从以前的同事那里继承了一个S3 bucket,里面的文件是按照id和时间分区的,比如:

s3://bucket/partition_id=0/年=2017/月=6/日=1/文件

所有这些文件的数据是一个table,可以通过Athena查询。从 Glue 目录中,它还显示分区 (0) 是 id,分区 (1) 是年份等等。

最近想重构工作,觉得分区用id不是很直接。我尝试使用 Glue 爬虫并将其定向到 S3 存储桶。但是如果我只希望它按时间分区,而不是按 id 分区,我就无法选择,就像这样:

s3://bucket/year=2017/月=6/日=1/档

我对 AWS 还很陌生,不确定它是否可行,甚至对您有意义。请给我一些反馈。谢谢。

我不认为你可以在爬虫的帮助下做到这一点,但是你可以像这样在 Athena 中手动创建新的 table(另请参阅 https://docs.aws.amazon.com/en_us/athena/latest/ug/ctas-examples.html

CREATE TABLE new_table
WITH (
     format = 'ORC', 
     external_location = 's3://...', 
     partitioned_by = ARRAY['year', 'month', 'day']) 
AS select * 
FROM old_table;

使用 s3 boto api 编写 python shell 作业以重组文件夹结构,然后 运行 爬虫