AWS Glueがバグってるぅ~
AWS Glue(以下、Glue)のバグを踏みました。
ちなみに ぐるー って呼びます。
Glueを使おうとしたら、どうもうまく動かん。
いろんなところで、うまく動かん。
結果的にGlueそのものの不具合だったというお話。
原則、CLIではなく画面ポチポチでのお話。
そもそもGlue is 何
AWSのサービスのうちの1つでETLツール(データ分析とかするやーつ)です。
市販本であんまりGlueを使った話は目にしない。
PySparkが使えるので、データ量が多いとうまく並列に動いてくれる。
使いこなせれば。
日本語対応しきれていない
S3のデータをGlueを挟んでETLだー
せっかくなんでRDSに送ってみるぜー
と遊ぼうとしたらどうも動かん。
バリデーションエラーが発生する。
1 validation error detected: Value '28-9月-2018-10-13-午前-UTC' at 'logProperties.logStreamName' failed to satisfy constraint: Member must satisfy regular expression pattern: [\.\-_/#A-Za-z0-9]+ .
よくみたら、提供されているサンプルデータが日本語なのにバリデーションがマルチバイト対応してなくて引っ掛かるという罠。
サポートセンターにお問い合わせしたら、
「あ、ほんとだ。たしかに日本語対応できてないっすね。申し訳ないけどマネジメントコンソールを英語表記に変更してくだしあ。」
って返ってきた。
マジかよ。
CSV形式を読み取れずUnknownになる
S3にCSV形式のファイルを格納しておいて、Glueにて処理をしようとすると、
CSV形式ファイルの中身が1行であった場合はスキーマ判定等が正常動作しない。
2行以上のデータがあるとCSVとして認識されるが、以下のような、1行のみであり、かつ、改行コードが入っているCSV形式のファイルはUnknown扱いになって、クローラーが不具合を起こす。
====
1行目:hoge,foo,huga\n
2行目:なにもなし
====
AWS Loft Tokyoにいらしたエキスパートの方にも聞いてみたら
「え、マジすか?それサポート案件ですわ。報告してくれるとありがたいです」
とのことなので、これもサポートセンターにお問い合わせしたら
「あ、ほんとだ。たしかにうまく動かないわ。すまん。2行以上にしてくれ。」
と返ってきた。
マジかよ。
そりゃあたしかにETLのツールだからデータ元が1行というのはレアケースだろうけども、あり得るのであって、これは残念な感じである。
こういうのがありえるからこそ、使ってみて遊んでたんですけども。
配列は1からではなく0から始まるんだぜ みたいな感じを思い出す。
0行、1行、2行って真っ先にテストするところじゃなかろうか。
というわけで
Glue試してたら他にも思うところがたくさんできたので、今はあんまり使いたくない。。。
あと、そもそもお高い料金です。※他が安すぎるんだけども。
現在、本来やろうとしてることにホントにGlueを使うと、Glueの料金だけで月3桁ドルとかいきそうだったんで、結構なお値段です。
他のサービスや通信類は別料金なわけなので、Glueが活躍するようなETLをガンガンやる場合は、結構儲かってるのが前提なんじゃないかなと思いましたっと。