我在S3中有ORC数据,如下所示:
s3://bucket/orc/clientId=client-1/year=2017/month=3/day=16/hour=20/
s3://bucket/orc/clientId=client-2/year=2017/month=3/day=16/hour=21/
s3://bucket/orc/clientId=client-3/year=2017/month=3/day=16/hour=22/每小时我运行一个EMR作业,它将S3中的原始JSON转换为ORC,并为雅典娜的摄入编写路径分区约定(上面)。在EMR作业完成后,我运行msck repair table,这样雅典娜就可以获得新的分区。
我有三个相关的问题:
msck repair table是否会在AWS中花费我的钱?msck repair table可以超时。是否可以在数据管道中迈出一步,继续运行此命令,直到它成功完成为止?clientId,因为其中可能有1-X,而且我也不知道在运行EMR时存在哪些。是否有最佳实践方法来解决这个问题(使用Hive或其他方法)?我可以进行一个s3 api调用,以获得一个s3://bucket/org/列表,并编写代码来迭代列表并手动添加。我希望有更简单的方法..。注意:当我说“手动添加分区”时,我的意思是这样做:
ALTER TABLE <athena table>
ADD PARTITION (clientId='client-1',year=2017,month=3,day=16,hour=20)
location 's3://bucket/orc/clientId=client-1/year=2017/month=3/day=16/hour=20/';https://stackoverflow.com/questions/42845002
复制相似问题