石川覚(126)19この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。S3上ののテキストファイルやカラムナフォーマットファイル(Parquet)に保存されているDATE型のデータをクエリできるようになりました。AWSではリージョン毎にGlueデータカタログでテーブル定義を共有していますが、クエリエンジンやファイルフォーマット組み合わせによって、サポートしてしているデータ型が異なります。Athenaの関係についても解説します。検証したRedshiftのBuildは1/26に更新された1.0.1657です。(東京リージョンではまだデプロイされていないかもしれません。2018)サポートしているDATE型・TIMESTAMP型の形式まず、どんな形式の文字列をDATE型・TIMESTAMP型のデータとして読み取れるかについて解説します。Athenaはスキーマオンリードなので、形式が限定されるのはやむを得ません。認識できない形式の文字列の場合は値がNULLになります。8601の拡張形式(YYYY-MM-DD)です。8601の基本形式(YYYYMMDD)やExcelでよく見る形式(YYYY/MM/DD)はDATE型のデータとして読み込まれません。HH:MI:SS形式です。03:13:42.000となります。03:13:42.123となります。08:08:08を用いて検証します。検証用データデータファイルは以下のタブ区切り文字列(.tsv)です。Athenaから以下のDDLでテーブル定義します。カラムに対してプリミティブなさまざまなデータ型設定しています。パーティションキーにもDATE型を設定しています。従来のBuild1.0.1582では、「パーディションカラム以外DATE型はサポートしていないので、代わりにtimestamp型かvarchar型に定義してください」といったエラーが表示されます。instead.執筆時点の最新版、Build1.0.1657では、DATE型のカラム(order_date)が表示されています。パーティションカラム(p_date)もDATE型として参照できました。クエリを実行もちろん、全く問題なくクエリが実行できました。GlueをJobで生成しました。生成したファイルを同じくGlueのクローラでtest_datatypes_parquetテーブルを定義しています。テーブル定義Glueのクローラが生成したDDL以下のとおりです。従来のBuild1.0.1582では、「パーディションカラム以外DATE型はサポートしていないので、代わりにtimestamp型かvarchar型に定義してください」といったエラーが表示されます。instead.執筆時点の最新版、Build1.0.1657では、エラーメッセージに変化がありましたが、Parquetではエラーが発生しています。1.0.1636なので、その後の更新で変化があったのかもしれません。-----------------------------------------------なお、Redshiftから以下のDDLを実行してテーブルを作成して、クエリを実行しましたが、動作に変化はありません。AthenaのクエリエンジンであるPrestoは、カラムの型にDATE型やTIMESTAMP型をサポートしていませんので、NULLになります。参照できない(新たにサポートされているはずだが、確認できなかった)今回はCSVとTSVとParquet以外の他のファイルフォーマット(実際にはSerde)については検証していない以上の結果から、新たにCSVとTSVは、カラムのDATE型を定義して、データをクエリできる事が確認できました。残念ながら、アナウンスにあったParquetのカラムのDATE型は、データの参照ができませんでした。以下のフォーラムを見ると、一度は1.0.1636がリリースされたが、問題があり従来のBuild1.0.1582に戻され、その後1/26に今回検証した1.0.1657がリリースされたようです。そのような経緯があり1.0.1657は当初のリリースノートの内容とは異なるのかもしれません。今後サポートされるのを期待して待ちたいと思います。Athenaから共通で参照できる事も確認できました。今回のDATE型のサポートやヘッダ行のスキップのサポートによって、データレイクへのマイグレーションにはずみがつきそうです。1,261,945電気メーカ系SIerのSE、IP電話開発会社の製品企画・開発を経てJoin。Linux、Java、MySQLを中心にウェブ、スマホ、基幹サーバーと何でも屋。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。