Glueデータカタログのテーブルにデータ型decimalを指定する際の注意点(Athena)


概要

AthenaやRedshift SpectrumからS3ファイルに対してクエリする際にテーブル定義をGlueデータカタログに登録するかと思いますが、その際のカラムのデータ型にdecimalを指定する際の注意点についてです。

事象

カラムのデータ型の指定でdecimal(10, 5)のようにprecisionとscaleの間に空白を入れると、Athenaからのクエリでは以下のようなエラーが出ます。

HIVE_METASTORE_ERROR: com.facebook.presto.spi.PrestoException: Error: name expected at the position 11 of 'decimal(10, 5)' but ' ' is found.

ちなみにRedshift Spectrumからのクエリではエラーは出ません。

解決策

上記のエラー文からもわかるように空白がエラー原因となっているため、空白を無くしdecimal(10,5)のようにすれば問題ありません。
Prestoの仕様なんでしょうね。。