ryn*_*nop 4 hive amazon-emr emr amazon-athena
我在 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/
Run Code Online (Sandbox Code Playgroud)
我每小时运行一个 EMR 作业,将 S3 中的原始 JSON 转换为 ORC,并使用路径分区约定(上文)将其写出以供 Athena 摄取。EMR 作业完成后,我运行msck repair table以便 Athena 可以选择新分区。
我有3个相关的问题:
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/';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2044 次 |
| 最近记录: |