Help us understand the problem. What is going on with this article?

EmblukでS3に吐いた複数ファイルをGlueでカタログ化する際の注意

More than 1 year has passed since last update.

事象

EmbulkでS3に出力したファイルから、Glueでデータカタログを作成しようとしたところ、入力元データ1に対し、出力は複数だったため、カタログとしては1つでいいのだが、複数ファイル分カタログ(テーブル)ができてしまった。

対処案1:Embulkの出力を1つにする

Embulkは特に指定をしないと、実行したマシンのCPU数分タスクを動作させてファイルを出力するので、min_output_tasks:1とすれば、出力ファイルも1つになるので、カタログの問題は解消する。
だが、その場合Embulkの並列処理が活かせない。

対処案2:クロール対象を1つにする

Glueのクローラ設定で、『データストア』の項目にあるエクスクルードパターンを設定し、1ファイルのみが対象となるようにして対処することもできた。
Embulkの場合、XXXXXX.000.00.tsv.gzのようなファイルが(特にいじらなければ)吐かれるので、この000のファイルのみを対象とするのである。

エクスクルードパターン **/**0[0-9][1-9]**

だがこの場合、テーブルのプロパティに表示される情報(例えばrecordCount)が、1ファイルのものとなっているため、複数ファイルも含めた全量はここから把握できない。

結論

Glueをデータの詳細を知るためのデータカタログとして使うのであれば、現状出力を1ファイルにまとめる必要がありそうだった。
Athenaで利用する定義として使うだけであれば、対処案2の方法でも良いと思う。

番外:よくわからない項目

『クローラに関する情報の追加』に『Grouping behavior for S3 data (optional)』という項目があり、感覚的にはこれのチェックをつけると、複数ファイルでもデータ構造が同じであれば1つとして認識してくれそうだったが、そんなことはなかった。

  • Create a single schema for each S3 path
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした