AWS Athenaでログから抽出をしてみた
AWS Athenaとは
AWSのサービスを利用すると、いろいろな方法でログを記録できます。
日々記録されるログを調査、分析しなければならないといったときに、AWSで提供されている分析サービスの一つがAWS Athenaです。
AWS Athenaはクエリーを発行してデータを調査、分析することができます。
今回、ログの調査をする際にはまったこと、迷ったところを書いてみたいと思います。
料金はクエリーでスキャンしたデータ量で決まる
今回調査したのはAWS SESのログでした。
結構なサイズのデータが記録されていますが、絞り込みなしでクエリーを発行すると、スキャンするサイズが大きくなりその分料金がかかります。
ログの調査の場合、まず期間を大まかに絞れると思いますので、日付で絞り込むことでスキャンされるサイズを下げることができます。
クエリーの仕様が変わっている
別の調査で保存されていたクエリーをベースに調査を開始しましたが、なぜか動作しません。
調べてみたら、抽出エンジンが更新されてクエリーの仕様が変わっていました。
保存されていたクエリーはほぼ動作しない状況で、しばらく悩みました。
文字列の部分一致を関数で抽出できていたようなのですが、こちらも仕様が変わっているようで、時間もなかったので完全一致で条件を指定することでとりあえず解決しました。
データベースでクエリーを書いたことがあれば、大体何とかなるけど何ともならないこともある
クエリーの構成は、データベースでクエリーを書いたことがあれば大体何とかなります。
何ともならなかったのは、データ保存方法に対応した抽出対象の指定と、抽出条件の記述でした。
リファレンス読めと言われればそれまでですが、サンプルのクエリーはデータベースのクエリーとの違いが感じられない内容だったので惑わされました。
さいごに
本題とは全く関係ないですが、始めてやることは、とりあえずやってみる派ですか?
それとも、知ってる人に聞いてからやる派ですか?
自分は、やってみる派です。(ただし、興味がわいたものに限る)
既存の知っている内容を参考にしてやってみて、違っている部分を調べることで物事を進めます。
知ってる人に聞くと早く進めることはできますが、その方法では身につかない性分なので、身につけておきたい知識、技術はともかくやってみて覚えます。
逆に、その場限りで次に使うことはあるのかというような内容は、調べるなり人に聞くなりして終わらせます。
個人の性格に左右される部分なので、どれが正解かということはないと思いますが、自分に合った方法を見つけると、何をやるにしてもスムーズにいくようになると思います。
Discussion