Athena
#AWS #s3
S3のデータをAmazon Athenaを使って分析する
s3に直接クエリ
スキャンデータ量に対しての従量課金
Presto
Amazon Athena の関数 - Amazon Athena
Athena エンジンバージョン 2 は Presto 0.217 に基づいています
クエリエンジン
OSS
メモリ上で処理
Presto とは | Google Cloud
Athenaのデータの扱い
データソースへの接続 - Amazon Athena
データセット
CSV、JSON、Avro、Parquet
データカタログ
AWS Glue Data Catalog
メタストア
Athena では、メタデータを整理するためのシステムを、データカタログまたはメタストア
データ形式
CSV
JSON
Apacheログ
カスタム区切りも可能
正規表現
データ圧縮形式
Snappy
CTAS
クエリ結果からのテーブルの作成 (CTAS) - Amazon Athena
CREATE TABLE AS SELECT (CTAS)
SELECT ステートメントの結果から、Athena で新しいテーブルを作成
SerDe
SerDe (シリアライザー/デシリアライザー)
クエリ
Athena API
Actions - Athena
https://www.google.com/search?q=Query+Execution+API&sxsrf=ALiCzsY5bLilg0b67FKjuBo3LEVNvFUIDA%3A1656322878082&ei=Pnu5YtmtBNzL2roPsfaCoA0&ved=0ahUKEwjZxJ_Gq834AhXcpVYBHTG7ANQQ4dUDCA4&uact=5&oq=Query+Execution+API&gs_lcp=Cgdnd3Mtd2l6EANKBAhBGABKBAhGGABQAFgAYABoAHAAeACAAQCIAQCSAQCYAQA&sclient=gws-wiz
Query Execution API
Named Query API
OLTPではなく、OLAP
ETLではなく分析向け
パフォーマンスチューニング
Amazon Athena のパフォーマンスチューニング Tips トップ 10 | Amazon Web Services ブログ
128MB未満のファイルをできるだけ作らない
列指向データの作成
なるべくフルスキャンはしない
読み込むデータ量を減らすことが重要
パーティション
列志向フォーマット
圧縮
パーティション
Amazon Athena でのパーティションテーブルの作成と使用
year/month/day
s3://yourBucket/pathToTable/<PARTITION_COLUMN_NAME>=<VALUE>/<PARTITION_COLUMN_NAME>=<VALUE>/
s3://athena-examples/flight/parquet/year=1991/month=1/day=1/
パーティションが増えるとオーバーヘッドが大きくなる
Alter Table <tablename> add Partition (PARTITION_COLUMN_NAME = <VALUE>, PARTITION_COLUMN2_NAME = <VALUE>) LOCATION ‘s3://yourBucket/pathToTable/YYYY/MM/DD/’;
カラム名
=とスラッシュ
Hive標準
列指向
圧縮効率が良い。
行指向
Joinの最適化
大きなテーブルを左側、小さなテーブルを右側
JDBCドライバ
JDBC および ODBC 接続を介したアクセス - Amazon Athena
Athena や Amazon S3 バケットなどの AWS のサービス とリソースへのアクセス権を得るには、アプリケーションに JDBC または ODBC ドライバーの認証情報を提供します。
JDBCの概要
クエリした結果を
SPICにインメモリに入れる
パーティション
Amazon Athenaのパーティションを理解する #reinvent | DevelopersIO
Athena権限
Athena workgroup
Athena権限
管理者無制限スキャンとか
参考
Amazon Athenaによるデータ分析入門|コラム|クラウドソリューション|サービス|法人のお客さま|NTT東日本
テーブル作成
データソースの指定
LOCATION 's3://path
データがどこにあるのか
S3
Amazon S3 のテーブルの場所 - Amazon Athena
構造化されていないデータの場合
Grok SerDe - Amazon Athena
構造化されていないテキストデータ (通常はログ) の逆シリアル化専用のパターンセットで構成されるライブラリ
定義済みパターン
https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns
code:sql
ROW FORMAT SERDE
'com.amazonaws.glue.serde.GrokSerDe'
WITH SERDEPROPERTIES (
'input.format'=''
)
スキャン
出力先を指定しておかないと、クエリを実行できない。
S3の階層全てスキャン可能
データの可視化
Amazon QuickSightで、Athenaのデータを見る。
【新機能】Amazon QuickSightがAmazon Athenaをサポート! | DevelopersIO
Amazon Athena データを使用したデータセットの作成 - Amazon QuickSight