レイ・フロンティアの佐藤です。
レイ・フロンティア株式会社では「人間の無意識を、行動データで見える化する」事業を展開しています。
先日Amazon Athenaで新たにAthena エンジンバージョン2 ※1が発表され2020年12月16日に東京リージョンにもきました。
それに伴いPresto0.172からPresto0.217にアップデートされました。
そこで、追加された内容の中から弊社でよく利用する地理空間関数を実際に試してみました。
追加された地理空間関数の詳細はこちらをご覧ください。
■やりたい事
日比谷駅から大手町駅までの距離をキロメートルで出す。
■使用した関数
great_circle_distance(latitude1, longitude1, latitude2, longitude2)
地表の2点間の大円距離(球の距離)をキロメートルで返してくれる関数です。
■やった事
まず日比谷駅から大手町駅までの距離を調べました。およそ1.3キロメートルあるようです。
次にAmazon Athenaで下記のコードを実行しました。
実行結果
1.26キロメートル。事前に調べた距離はおよそ1.3キロメートルですので合っていますね。
他の地理空間関数との比較も行いました。
使用したのは【to_spherical_geography】で、GeometryをSphericalGeography型に変換する関数です。
※ to_spherical_geographyの詳細
https://prestodb.io/docs/current/functions/geospatial.html
また、ST_Distanceの機能が1つ増え球面上の点に対応するようになりました。
下記のコードで距離を出します。単位はメートルです。
実行結果
先程と同じ距離になりました。
バージョン1のST_Distanceは地球の中心からの角度が結果として出てくる為、角度を近似式
■経度1度あたりのキロメートル
( 360 * 1000 ) / ( 2 * pi * ( 6378137 * cos(lat * pi / 180.0) ))
で算出した結果で割り、距離を計算する必要がありましたが、
今回の関数が追加され直感的に距離をキロメートルで出せるようになりました。
※1 Amazon Athena がエンジンバージョン 2 の提供開始を発表
~お知らせ~
この度iPhone版同様にお使い頂けるSilentLog、Android版をリリースしました。
今後とも宜しくお願い致します。
Android版
https://play.google.com/store/apps/details?id=jp.reifrontier.silentlog
iPhone版
https://apps.apple.com/jp/app/silentlog/id901679160
毎日の振り返る楽しさを「プラス」するアプリ
SilentLogの公式サイトはこちらです
レイ・フロンティアの公式サイトはこちらです
■レイ・フロンティアでは共に未来を切り開く仲間を募集しております。ご興味がある方はお気軽にお問い合わせください。
採用情報:https://www.rei-frontier.jp/recruit/