3
私はこのようになりますS3におけるORCのデータがあります。AWS Athena:「msck修理テーブル」に費用がかかりますか?
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/
私はORCにS3で生のJSONに変換EMRジョブを実行するすべての時間を、そしてアテナのパスパーティション大会(上記)とそれを書き出します摂取。 EMRジョブが完了したら、msck repair table
を実行して、Athenaが新しいパーティションを取得できるようにします。
私は3つの関連の質問がある:
- は、このシナリオで
msck repair table
を実行し、AWSで私にお金がかかりますか? - AWS Docs say
msck repair table
タイムアウトが発生する可能性があります。正常に完了するまでこのコマンドを実行し続けるために、データパイプラインの一歩を踏み出す方法はありますか? - Athenaにパーティションを手動で追加することをお勧めします(私が作業している年月日を知っているので)。しかし、私は
clientId
を知りません。なぜなら、それらの1-Xが存在する可能性があり、EMR実行時に存在するものがわからないからです。この問題を解決するベストプラクティスの方法はありますか(Hiveなどを使用して)?私はs3://bucket/org/
のリストを取得し、リストを反復して手作業で追加するコードを書くためにs3 API呼び出しを行うことができました。私は、もっと簡単な方法があると期待して...
注意しています:
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/';