我在s3中有兽人数据,看起来像这样:
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,并使用路径分区约定(如上)将其写入athena摄取。emr作业完成后,我运行 msck repair table
所以雅典娜可以拿起新的隔板。
我有3个相关问题:
跑步吗 msck repair table
在这种情况下,我在aws的钱?
aws医生说 msck repair table
can超时。有没有一种方法可以在数据管道中执行一步以继续运行此命令,直到它成功完成?
我更喜欢将分区手动添加到athena(因为我知道我工作的年、月、日、小时)。但是我不知道 clientId
因为可能有1-x个,我不知道在运行emr时存在哪些。有没有解决这个问题的最佳实践方法(使用hive或其他方法)?我可以调用s3api来获取 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/';
1条答案
按热度按时间yh2wf1be1#
美国焊接学会说:
ddl查询或分区检测不收费。
美国焊接学会说:
s3收取费用。
我还不知道如何实现自动化
msck repair table
以确保它完成。