新サービス Amazon Athenaについて、マニュアルとこれまでの検証結果をベースに、利用するにあたり抑えておいたほうが良い思われる、Tipsや制限事項についてまとめました。 Tips もしかすると役立つかもしれないTipsやトリックを紹介します。 アンダースコアで始まるテーブル名 アンダースコア(_)で始まるテーブル名にしたい場合はテーブル名をバッククォートで囲んでください。 例えば: CREATE EXTERNAL TABLE IF NOT EXISTS `default._users` ( `_id` int, `_name` string, `_created` date ) ... しかし、このテーブルを参照するときはバッククォートを外さないと参照できないのでご注意を。 SELECT * FROM default._users; なお、同じようにデータベース名に同じ指定で可能
ついにAmazon Athena がINSERT INTOをサポートしました!これまでは、更新系クエリはCTAS(CREATE TABLE AS)のみでしたが、INSERT INTOによる書き込みクエリがサポートされました。既存のテーブルに対してどのようにデータを追加するのか、どのレベルまでサポートしているのか、気になること満載なので実際に試してみます。 Amazon Athena adds support for inserting data into a table using the results of a SELECT query or using a provided set of values 目次 INSERT INTOのサポート内容 構文と例 データのファイルフォーマット INSERT INTO ... VALUEの動作を確認 パーティションしていないテーブルの検証 パー
AWS WAFのフルログで取得したログをAthenaで分析できるようにします。ついでにログのフォーマットとよく使いそうなクエリパターンも紹介します。 こんにちは、臼田です。 皆さん、WAFWAFしてますか?(思いつき ついにAWS WAFでフルログを取得することができるようになりました!すっごいわくわくしてます。 AWS WAFのログをFirehoseでS3に出力しブロックログをS3Selectで確認してみた これまでは頑張ってsampleログを取得してゴニョゴニョしていましたが、これからはKinesis Data Firehoseにつっこんでやりたい放題です! 今回はとりあえずそのままS3に吐き出されたログをAthenaで分析できるようにしてみます。 ログをS3に入れるところまでの方法は上記記事を参考にしてください。 テーブル作成 ログのフォーマットはこちらにあります。 CREATE T
次の CREATE TABLE ステートメントには、最近追加された classification 列と classification_reason 列が含まれています。これらのエントリを含まないApplication Load Balancer アクセスログのテーブルを作成するには、CREATE TABLE ステートメントを作成し、それに応じて正規表現を変更します。 CREATE EXTERNAL TABLE IF NOT EXISTS alb_access_logs ( type string, time string, elb string, client_ip string, client_port int, target_ip string, target_port int, request_processing_time double, target_processing_tim
はじめに Amazon AthenaはAWSの分析関連サービスの1つで、S3に保存・蓄積したログに対してSQLクエリを投げて分析を行えるサービスです。分析基盤を整えたり分析サービスにログを転送したりする必要が無いため、簡単に利用できるのが特長です。 今回はAthenaを使ってこんなことできるよー、というのを紹介したいと思います。 ※社内勉強会向け資料をQiita向けに修正して公開しています ログ分析とAmazon Athena ログ分析は定量的にユーザ行動を分析してサービスの改善に役立つだけでなく、障害時の調査にも役立つなど非常に便利です。ログ分析に利用されるサービスとしてはGoogle BigQueryやAmazon Redshiftなど様々なものがありますが、その中でAmazon Athenaの立ち位置を確認したいと思います。 ログ分析の流れ ログ分析の基盤の概念図は下記のようになりま
西澤です。目新しさの無いエントリーですが、溜め込んだELBログを解析する必要があったので試してみることにしました。Amazon Athenaは東京リージョンでは使えないので、OregonリージョンのAthenaから、東京リージョンのS3バケットをデータソースとして検証しました。 と言ってもほぼ下記ページにやり方は詳しく載っていますので、公式ページを見ていただく形でも構いません。 Analyzing Data in S3 using Amazon Athena | AWS Big Data Blog Athenaでデータベースを作成する データベースエンジニアで無い担当者からすると、専用のSQLクライアントを用意すること無く、AWS Management Console上で全ての操作が完結するというのは大変嬉しいです。GUIで操作することもできますが、テーブルを作成するデータベースを先に別に
Amazon Athena RegexSerDe を利用して CLB ログ / Apache Web のアクセスログを探索する 本日は、Amazon Athena RegexSerDe を利用して CLB / ELB v1 (Classic Load Balancer / Elastic Load Balancing Version 1)のログを探索する方法を紹介します。CLBのファイルフォーマットは Apache Web の アクセスログ と同じ形式なので、ウェブのアクセスログも CLB と同様に Amazon Athena で探索することが可能です。 CLB / ELB v1 とは CLB は、アクセスログを使用して、ロードバランサーに対して行われたリクエストの詳細情報をキャプチャし、Amazon S3 でログファイルとして保存できます。これらのアクセスログを使用して、トラフィックパタ
Amazon Web Services ブログ Amazon Athena のパフォーマンスチューニング Tips トップ 10 2020/10/13 に、原文の更新に合わせて最新のバージョンにアップデートしました Amazon Athena は、S3 に保存されたデータに対して標準 SQL で簡単に分析を行える、インタラクティブクエリサービスです。Athena はサーバーレスのためインフラ管理の必要がなく、また実行したクエリのぶんだけ料金を支払うかたちになります。Athena は簡単に使えます。Amazon S3 上のデータに対してスキーマを定義し、標準 SQL でクエリを投げるだけです。 このブログポストでは、クエリパフォーマンスを改善するための 10 個の Tips をご紹介します。Tips には、Amazon S3 に置かれたデータに関するものと、クエリチューニングに関するものがあ
テーブルを作る GUIで入力もできますが、SQLを書いていきます GUIでテーブル定義を入力するのが結構面倒です 以下、DDL定義です ELB CREATE EXTERNAL TABLE IF NOT EXISTS aws_logs.elb_log ( request_protocol string, request_timestamp string, elb_name string, request_ip string, request_port int, backend_ip string, backend_port int, request_processing_time double, backend_processing_time double, client_response_time double, elb_response_code string, backend_resp
はじめに re:Invent 2016で発表されたAthenaについては弊社でも既に様々な記事が出ております。公式サイトによるといろいろなSQLを使う事ができるようなのですが、今回はデータのSELECTを実際に試してみました。 SELECTの実行 Athenaの実行方法については弊社の記事などを参考にしてください。今回はデフォルトで用意されているsampledb.elb_logsテーブルに対してSELECTを実行してみました。 以下、今回試したSELECTの種類です。 with distinct join where group by having union order by limit tablesample unnest with 以下のSQLを実行しました。 with elb_logs_with as ( select requestip, backendport from elb
コンニチは、千葉です。 QuickSightとAthenaを使って、色々な視点からELBのログを分析してみました。 SQLをガンガンかける人は、Athenaのみで完結する場合もあるかもしれませんが、グラフで直感的に見るメリットもあると思います。 準備 手順サマリです。以下でやっていきます。 AthenaにてELBログテーブルを作成する QuickSightにて、データセットを作成する QuickSightにて分析する AthenaにてELBログ用のテーブルを作成する Amazon AthenaでELBログをSQLで解析する #reinvent こちらのエントリを参考に、Athenaにテーブルを作成します。 QuickSightにて、データセットを作成する マネージメントコンソールからQuickSightへ移動し、[New Analyze]から[New DataSet]で新しいデータセットを
良いやり方を教えていただきました https://qiita.com/sakamossan/items/adc8668038226a65436b#comment-bbfef1ec7866ff507f3a week_of_year で取りたいならもう少し楽だけど、昨日からの直近7日間が欲しい たとえば日本時間の8月4日にクエリしたら (2018-07-28 < 2018-08-03) の範囲が欲しい テーブルのパーティションが (year, month, day) で切られているのでそれを使いたい ミリ秒単位のタイムスタンプが入っているカラム(timestamp)がある CREATE VIEW v AS SELECT t.*, from_unixtime(t.timestamp / 1000) utc_timestamp FROM t WHERE ( ( year = year(curren
はじめに 今回はALBログの最新フォーマットに対応した探索方法をご紹介します。一年前にAmazon Athena RegexSerDe を利用して ALB ログを探索するというブログでALB ログを探索する方法を紹介しましたが、最新のALB ログが探索できないという報告を受けました。確認したところログフォーマット最後に以下の6項目追加されていました。 domain_name chosen_cert_arn matched_rule_priority request_creation_time actions_executed redirect_url 執筆時点では、追加されたフィールドの情報は、以下の英語マニュアルにのみの記載となりますのでご注意ください。 Access Logs for Your Application Load Balancer - Access Log Entries
Amazon Athena で Application Load Balancer のアクセスログを分析したい。 簡単な説明 Elastic Load Balancing では、デフォルトでアクセスログはアクティブではありません。アクセスログを有効にするには、Amazon Simple Storage Service (Amazon S3) バケットを指定します。すべての Application Load Balancer と Classic Load Balancer のアクセスログは Amazon S3 バケットに保存されます。ロードバランサーのパフォーマンスをトラブルシューティングまたは分析するには、Athena で Amazon S3 のアクセスログを分析します。 注: Athena では、Application Load Balancer と Classic Load Balan
こんにちは、藤本です。 先日、Amazon Athena のクエリ結果を SPICE にインポートして、 QuickSight で可視化するというブログをエントリしました。その時に得られた知見をもう一つご紹介します。 タイトルが何を言っているのか分かりづらいですが、、、ELB のアクセスログのタイムスタンプはフォーマット上、Athena の Timestamp にも、QuickSight の Date タイプにも適合しません。でも、グラフ表示上、Date として扱いたいです。タイムスタンプの文字列でも、Athena の場合は、timestamp like '2017-01-01T10:%'というようなクエリで、QuickSight の場合は、Start with フィルターである程度の絞り込みはできますが、柔軟なクエリをしたい場合に複雑なクエリや、細かいフィルターの指定が必要となります。何
この2日間、さんざん悩んだので、メモメモ。 Amazon AthenaはS3に格納したログファイルとかを、まるでRDBのようにSQLで検索・分析できる、いわゆるサーバレスなサービスです。 このAmazon Athenaで、S3→CloudFront経由でダウンロードしたファイルのアクセス数をカウントするような簡単な分析を行いたい、というのが今回の要件。CloudFrontはS3にgzip形式(拡張子:「.gz」)でアクセスログを吐くので、こいつを無加工(gzipを回答したりファイル群を結合したりせずに)で検索できるあたりがAmazon Athenaとても便利なところです。 Amazon Athenaは割と最近リリースされたばかり(「AWS re:Invent 2016」で発表)なので、社内に知見もなく、Webの記事を参考に構築を試みました。……がこれがどエラい苦労しました。 参考にすべきも
RegexSerDe を使用して Amazon Athena のテーブルを作成しました。テーブルをクエリすると、「Number of matching groups doesn't match the number of columns.」(一致するグループの数が列の数と一致しません。) というエラーが表示されます。 解決方法 このエラーを解決するには、正規表現パターンでキャプチャするグループの数が、Athena でテーブルを作成したときに定義したフィールドの数と一致している必要があります。たとえば、1 行の入力データがあるとします。 64.xxx.xx.xx - - [07/Jul/2020:16:06:51 -0800] "GET /twiki/bin/rdiff/TWiki/NewUserTemplate?rev1=1.3&rev2=1.2 HTTP/1.1" 200 4523 この
こんにちは、小澤です。 今回はre:Invent 2016で発表されたというAthenaというものを使ってみました。 Athenaとは S3上にあるデータに対して直接テーブル定義を行って、SQLでデータの取得が行えるもののようです。 RedshiftやEMRのようにコンピューティングのためのインスタンスを生成する必要がないのも特徴です。 また、JDBC経由だけでなく、Web UI上から対話的にSQLを発行できるようになっており非常に手軽に使えるのも魅力的です。 今回はこのWeb UIからSQLを発行してどのような動きをするのか見てみたいと思います。 使ってみる まずはサンプルで動かしてみる サービス一覧上では「分析」の項目に存在していました。 現状ではアメリカのバージニアとオレゴンの2つのリージョンにしか対応していないようなので、そのどちらかで選択する必要があります。 Getting St
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く