はじめに
フェイス・ソリューション・テクノロジーズ株式会社 IS 本部 OS ユニットの masです。
今回はAmazon Athenaについて記事を書かせてもらえることになったので、この機会に色々と触ってみたいと思います。
とりあえずは予備知識としてAtenaの概要や特徴、利用料金や、なんだこれ?と疑問に思ったことなどについて調べたことをまとめてみました。
サービスの概要
Amazon Athenaとは
クエリサービスと呼ばれており、データの分析に使用できます。
めちゃくちゃ簡単に言うとS3においてあるCSVをSQLクエリで検索できるサービスです。
実際はCSVに限らずJSON形式、列データ形式 (Apache Parquet や Apache ORC など) にも対応しています。
クエリエンジンはpresto
Athenaはprestoというオープンソースの分散SQLクエリエンジンを使っています。
prestoはクエリを並列実行し、大量のデータを効率的に照会することで、ペタバイトクラスのデータソースに対応できます。
データ形式は、CSV、JSON、ORC、Avro、Parquet など各種をサポートしています。
Amazon Athenaの特徴
サーバレスなのでサーバを用意する費用や構築の工数が必要なくなります。
さらに大容量のデータでも分散処理によって高速に処理できるのが特徴です。
また、GZIPのように圧縮されたデータを検索できます。
その為、検索用のデータを圧縮でき格納コストを削減することができます。
Amazon Athenaの料金
スキャンしたデータに対して料金が発生
一回検索する毎に検索するデータの量に応じてお金がかかります。(1 TB毎に 5 USD)
検索対象のデータの大きさに料金が左右されるため、圧縮、分割、列形式への変換を行うことにより、コストを削減し、パフォーマンスを向上させることができます。
類似しているAWSサービス
データを分析できるという点で似たようなAWSのサービスにAmazon RedShiftというものがあります。
それではAthenaとRedShiftでどのような違いがあるのかを説明したいと思います。
AthenaとRedShiftとの違い
データを検索する点では同じですが、それぞれに取り扱うデータの状態が違います。
Athenaはデータレイク、RedShiftはデータウェアハウスを取り扱います。
データレイクとデータウェアハウスの違いは説明が難しいのですが、ふわっとした感じで説明すると下記のような違いになります。
データレイク
構造化データ、半構造化データ、非構造化データを格納できる。
決められた構造になっていないデータ
湖の水のようにデータを成形せずそのままの形で保存しているイメージ
データウェアハウス
データベースなど決められた構造になっているデータ
厳密には違うかもしれないけれど、エクセルの表のようにどのカラムに何のデータが入っているかを決めてデータを溜め込んでいるイメージ
以上のことから、取り扱うデータの構造を決めなくてもよいAthenaはRedShiftより手軽さの面では上になります。
しかし、テーブル結合などのより高度な処理が必要な場合はRedShiftを使うという場面が出てくるかと思います。
今回はここまで
色々と細かいことを書きましたが、Athenaを利用する上で最大の利点はパソコンでは処理しきれないような容量の大きいデータでも、高速な検索処理が可能になることです。
次回はAthenaでデータベースを作成して実際にデータを検索する手順をご紹介したいと思います。
コメント