SlideShare ist ein Scribd-Unternehmen logo
1 von 76
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Solutions Architect, Analytics
Makoto Kawamura
2020/06/17
[AWS Black Belt Online Seminar]
Amazon Athena
サービスカットシリーズ
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
自己紹介
川村 誠
Hadoop/Spark スペシャリスト
ソリューションアーキテクト
• データ分析系サービスを担当
• 好きなサービス
⎼ Amazon EMR
⎼ Amazon Athena
⎼ AWS Glue
⎼ Amazon SageMaker
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
AWS Black Belt Online Seminar とは
「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマゾ
ン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。
質問を投げることができます!
• 書き込んだ質問は、主催者にしか見えません
• 今後のロードマップに関するご質問は
お答えできませんのでご了承下さい
① 吹き出しをクリック
② 質問を入力
③ Sendをクリック
Twitter ハッシュタグは以下をご利用ください
#awsblackbelt
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
内容についての注意点
• 本資料では 2020 年 6 月 17 日時点のサービス内容および価格についてご説明しています。
最新の情報は AWS 公式ウェブサイト (http://aws.amazon.com) にてご確認ください。
• 資料作成には十分注意しておりますが、資料内の価格と AWS 公式ウェブサイト記載の価格
に相違があった場合、AWS 公式ウェブサイトの価格を優先とさせていただきます。
• 価格は税抜表記となっています。日本居住者のお客様には別途消費税をご請求させていただ
きます。
• AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to
change in accordance with the AWS Customer Agreement available at
http://aws.amazon.com/agreement/. Any pricing information included in this document is
provided only as an estimate of usage charges for AWS services based on certain
information that you have provided. Monthly charges will be based on your actual use of
AWS services、 and may vary from the estimates provided.
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
アジェンダ
• Amazon Athena 概要
• Athena の使い方
• Athena のさまざまなクエリ
• パフォーマンスチューニング
• Athena の運用管理
• Athena のセキュリティ
• サービス上限と料金
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Athena 概要
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon Athena とは
Amazon S3 にあるデータ(およびさまざまなデータソース*)に対して
標準 SQL を使用して簡単に分析可能とする
インタラクティブなクエリサービス
* Federated Query によるサポート
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon Athena の特徴
サーバレスでインフラ管理不要
大規模データに対しても高速なクエリ
事前のデータロードなしに Amazon S3 に直接クエリ
スキャンしたデータに対しての従量課金
JDBC / ODBC / API 経由で BI ツールやシステムと連携
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
ユースケース 1: アナリストによるアドホックな分析
S3 にデータをアップロードしたら、テーブル定義をしてすぐにクエリを実行
さらに BI ツールから可視化
アナリスト S3 バケット BI ツールAmazon Athena
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
ユースケース 2: ログ分析
S3 に出力される様々な AWS サービスのログや収集データに対してクエリ
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/querying-AWS-service-logs.html
https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/athena.html
https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory-query.html
https://aws.amazon.com/jp/about-aws/whats-new/2019/08/amazon-athena-supports-querying-data-from-amazon-s3/
• Elastic Load Balancing (ALB/CLB/NLB) ログ
• Amazon CloudFront ログ
• AWS CloudTrail ログ
• Amazon EMR ログ
• AWS Global Accelerator ログ
• Amazon GuardDuty ログ
• Amazon VPC フローログ
• AWS WAF ログ
• AWS Cost and Usage Reports データ
• AWS Systems Manager インベントリデータ
• Amazon S3リクエスタ支払いバケットデータ
S3 Athena
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
ETL パイプラインを Athena で構築
連携先サービスから定期的に送られてくるデータに対して、INSERT
INTO 句を用いて継続的なデータ変換を行い、効率的にクエリ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Athena の使い方
1. データを S3 に保存する
2. テーブルを定義する
3. クエリを実行する
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Athena コンソール
クエリを記述
以下を選択
• データソース
• データベース
クエリを実行
クエリ実行結果を参照
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
1. データを Amazon S3 に保存する
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon S3 にデータを保存する方法
AWS Database
Migration
Service
Amazon Kinesis
Data Firehose
AWS Snowball AWS Snowmobile
AWS Storage
Gateway
Amazon S3
AWS DataSync AWS Transfer
Family
AWS Snowball
Edge
Amazon Kinesis
Data Streams
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
2. テーブルを定義する
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
テーブルを定義する
• Athena ではクエリのためにテーブル
定義が必要.デフォルトで AWS Glue
Data Catalog 上のテーブル定義を使用
• AWS Glue Data Catalog は、Apache
Hive Metastore という OSS と互換性
のある、メタデータを管理するための
リポジトリ
• AWS Glue Data Catalog にテーブル定
義を作成する方法は次の 3 つ
• Athena DDL
• AWS Glue Catalog API
• AWS Glue Crawler
AWS Glue Data Catalog で定義されたテーブルの例
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Athena DDL
• Athena の DDL は HiveQL 形式で記述
• 標準的なテーブル定義ステートメントの後に、パーティション定義、データ形
式、データの場所、圧縮形式などを指定
CREATE EXTERNAL TABLE IF NOT EXISTS action_log (
user_id string,
action_category string,
action_detail string
)
PARTITIONED BY (year int, month int)
STORED AS PARQUET
LOCATION 's3://athena-examples/action-log/’
TBLPROPERTIES ('PARQUET.COMPRESS'='SNAPPY');
パーティション
データ形式
データの場所
圧縮形式
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon Athena のデータ形式
データ形式 SerDe
CSV 通常は LazySimpleSerDe を、引用符付きカラムが含まれる場合は OpenCSVSerDe を使用
TSV LazuSimpleSerDe を使用して ‘¥t’ を区切り文字に指定
カスタム区切り LazuSimpleSerDe を使用して任意の区切り文字を指定
JSON HiveJSONSerDe または OpenXJsonSerDe を指定
Apache Avro AvroSerDe を指定
ORC ORCSerDe を指定
Apache Parquet ParquetSerDe を指定
Logstash ログ Grok SerDe を指定
Apache ログ RegexSerDe を指定
CloudTrail ログ 基本的に CloudTrailSerDe を指定.一部では OpenXJSONSerDe を指定
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/supported-format.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
データソース
• Athena では、データを記述する
データカタログ、およびそこに含ま
れるデータをあわせてデータソース
と呼ぶ。デフォルトのデータソース
は AWS Glue Data Catalog
• AWS Glue Data Catalog に登録され
たデータのうち、操作しているユー
ザーが参照権限を持っているものの
みが、Athena 上で表示される
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
データソースの追加
• AWS Glue Data Catalog 以外のデータソースを、新たに追加することができる
• すでに既存の仕組みがあり、自分たちの Hive Metastore を持っている場合に
は、これを Athena に登録することで、Athena でも利用可能になる
• 既存の Hive Metastore 資産を移行する必要がなくなる
• 外部メタストアへの接続には、Lambda 関数として実行されるコネクター
(Athena Data Connector for External Hive Metastore) を利用する
https://docs.aws.amazon.com/athena/latest/ug/connect-to-data-source-hive.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
3. クエリを実行する
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon Athena のクエリ
• Presto と同様、標準 ANSI SQL に準拠したクエリ
• WITH句、Window関数、JOINなどに対応
• 基本的には Presto 0.172 に準拠
• 一部サポートしていない機能等の詳細は以下ドキュメント参照
[ WITH with_query [, ...] ]
SELECT [ ALL | DISTINCT ] select_expression [, ...]
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY [ ALL | DISTINCT ] grouping_element [, ...] ]
[ HAVING condition ]
[ UNION [ ALL | DISTINCT ] union_query ]
[ ORDER BY expression [ ASC | DESC ] [ NULLS FIRST | NULLS LAST] [, ...] ]
[ LIMIT [ count | ALL ] ]
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/other-notable-limitations.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Athena におけるクエリ実行の基礎
• 標準 SQL を利用可能
• 行単位でのトランザクションではなく、あ
くまでデータ抽出や集計がメインの用途
• 典型的なクエリパターン
• SELECT でデータを取得
• COUNT(), SUM() 等で集計
• JOIN で複数テーブルを結合
• WHERE でデータのフィルタ
• GROUP BY で集約
SELECT
col1
, col2
, COUNT(col3)
, SUM(col3)
FROM
table1
INNER JOIN table2
ON table1.id = table2.id
WHERE
table1.id = table2.id
AND col4 = 1
AND col5 = “good”
GROUP BY
col1
, col2
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
クエリ結果
• 実行される各クエリのクエリ結果とメタデータ情報を、指定した
S3 バケットに自動的に保存
• この保存自体をオフにすることはできない
• 必要に応じて、この場所にあるファイルにアクセスして操作可能
• Athena コンソール履歴画面から、クエリ結果ファイルを直接ダウン
ロードすることも可能
• クエリ出力ファイルへのアクセスには以下の権限が必要
• クエリ結果の場所の Amazon S3 GetObject アクション
• Athena GetQueryResults アクション
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
クエリ履歴
• Athena コンソールの履歴画面では下記情報を確認可能.結果は 45 日間保存
• クエリ送信時刻
• 送信クエリ
• 暗号化タイプ
• クエリの状態(成功/失敗)
• 実行時間
• スキャンしたデータ量
• 成功したクエリの結果ファイルダウンロード
• 失敗したクエリのエラー情報詳細表示
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
コンソール以外からの実行
JDBC / ODBC ドライバー経由
• JDBC: バージョン 2.0.9: JDBC API 4.1 および 4.2 のデータ基準に準拠
• ODBC: Windows、Linux、および OSX で使用可能
Athena API 経由
• AWS SDK 経由で Athena API を利用可能
• クエリ実行 API: 非同期処理 (JDBC 接続と異なる)
1. StartQueryExecution でクエリを実行して QueryExecutionId を取得
2. GetQueryExecution で実行状況を確認
3. State が SUCCEEDED になったら GetQueryResults で結果を取得
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/athena-bi-tools-jdbc-odbc.html
https://docs.aws.amazon.com/athena/latest/APIReference/Welcome.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Athena のクエリパフォーマンスの基本
スキャンデータ量を減らす
クエリ速度を向上するには、クエリ結果を集計するために必要なデータのスキャ
ン量を減らすのことが効果的
• 列指向フォーマットの利用
• データの圧縮
• データのパーティショニング(ファイルの配置方法の最適化)
スキャンするファイルを一定サイズ以上にまとめる
小さいファイルが大量にある場合、ファイル操作のオーバーヘッドが大きいため、
128MB 以上のかたまりにまとめる
スキャンするファイルを分割可能な形式とする
Athena は複数のワーカーが並列で処理を行うため、ファイルを分割可能な形式
として、複数のワーカーで並列処理できるようにする
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Athena のさまざまなクエリ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
CTAS (Create Table As Select)
クエリ結果をもとに、新しいテーブルを作成.ETL 処理を Athena で実行可能
• データ / 圧縮フォーマット変換
• データを複雑に加工整形するための多段クエリ
CREATE TABLE new_table WITH (
format = ‘PARQUET’,
external_location = ‘s3://my_athena_results/new_table/’
partitioned_by = ARRAY[‘year’, ‘month’, ‘day’],
bucketed_by = ARRAY[‘user_id’, ‘category’],
bucket_count = 3,
)
AS
SELECT * FROM old_table;
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
CTAS のパーティショニングとバケッティング
パーティショニング
• 通常のパーティションと一緒、 ARRAY[‘key1’, ‘key2’, ‘key3’] で指定した順番に
s3://MYBUCKET/key1=xxx/key2=yyy/key3=zzz という形で保存
• CTAS 句で作成可能なパーティション数は最大 100 で、超えるとエラーになる
バケッティング
• 指定したカラム群を元に、出力のファイル数に振りわける
• カラム内の同じキーは同一ファイルに入るため、カラムのカーディナリティに注意
使い分け
• パーティショニングは、WHERE 句で絞る対象のカラムを指定
• バケッティングは、個々のファイルサイズを調整(128-512MB 程度)
• 両方同時に使うことが可能(組み合わせた場合、パーティション内のファイル数が、
バケッティングで指定した数で分割される)
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
INSERT INTO
クエリ結果をもとに、既存のテーブルにデータを追加
• SELECT クエリの結果を、新しい行として対象テーブルに挿入する形
• データは挿入先テーブルの形式に変換されるため、データ形式変換用のクエリとして
INSERT INTO を利用可能
• INSERT INTO のたびに新しいファイルが生成されるため,少量データでの実行を繰り返す
ことで、大量の小さなファイルが生成され,クエリパフォーマンスに影響
INSERT INTO destination_table
SELECT select_query FROM source_table_or_view
INSERT INTO destination_table [(col1,col2,...)]
VALUES (col1value,col2value,...)[,
(col1value,col2value,...)][,
...]
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/insert-into.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
INSERT INTO によるパーティション追加
パーティション追加の例
1. CREATE EXTERNAL TABLE で、s3://MY_BUCKET/service_a/ にパーティションを設定したテーブル
table_service_a を作成
2. 日次受信データ用のテーブル tmp_table_service_a を作成
3. INSERT INTO で tmp_table_service_a のデータを(処理した上で) table_service_a に追加
4. tmp_table_service_a を DELETE TABLE で削除
5. 2-4 を日次で実行
制約事項
• INSERT INTO できるパーティションの最大数は 100
• バケット化されたテーブルは未サポート
• サポートされるデータ形式は Avro/JSON/ORC/Parquet/テキストファイル
(対応する Serde の詳細はドキュメントを参照)
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/insert-into.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
VIEW
クエリ内容自体を仮想的なテーブルとして登録
• VIEW を実行すると、裏側で元テーブルに対してクエリを実行
• VIEW からさらに VIEW を作成することも可能
• AWS Glue Data Catalog 側からは、テーブルとして認識される
CREATE VIEW my_view AS
SELECT
col1,
col2 / 100 col2_percent
FROM table1
INNER JOIN table2
ON table1.id = table2.id;
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
VIEW の活用シーン
• データのサブセットをクエリする。元のテーブルから列のサブセットがある
テーブルを作成して、データのクエリを単純化する
• 複数のテーブルを 1 つのクエリに結合する。複数のテーブルを持ち、それら
を UNION ALLと組み合わせる場合は、その式でビューを作成して、結合テー
ブルに対するクエリを簡素化できる
• 既存の基本クエリの複雑性を解消して、ユーザーによるクエリの実行を単純化
する
• View をクエリ問い合わせのインタフェースとして利用し、より最適なクエリ
への移行やクエリの仕様変更に対するメンテナンスの影響を最小限に抑える
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
地理空間データの分析
ESRI Java Geometry Library をサポート
• ジオメトリデータ型として point,line,multiline 等に対応
• ジオメトリデータ間の関係として distance,equals,overlaps 等に対応
具体的には、以下のような分析を行うことが可能
• 2 点間の距離を計算
• あるエリアに他のエリアが含まれているか否かをチェック
以下の例では、各地域内で起こった地震の回数を ST_CONTAINS, ST_POINT 関数で求めている
SELECT counties.name, COUNT(*) cnt
FROM counties
CROSS JOIN earthquakes
WHERE ST_CONTAINS (
counties.boundaryshape,
ST_POINT(earthquakes.longitude, earthquakes.latitude))
GROUP BY counties.name
ORDER BY cnt DESC
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/geospatial-query-what-is.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
SELECT $path / WHERE $path
• 予期しないデータの調査や、ソースデータに関する情報を必要とする場合に
利用可能なクエリ
• SELECT 句や WHERE 句の中で利用可能
SELECT "$path" FROM "my_database"."my_table" WHERE year=2019;
https://aws.amazon.com/jp/premiumsupport/knowledge-center/find-s3-source-file-athena-table-row/
s3://awsexamplebucket/datasets_mytable/year=2019/data_file1.json
クエリ
結果
SELECT 句での利用
SELECT *,"$path" FROM "my_database"."my_table" WHERE "$path" LIKE
's3://awsexamplebucket/my_table/my_partition/file-01.csv’
id name year $path
3 John 1999 's3://awsexamplebucket/my_table/my_partition/file-01.csv’
4 Jane 2000 's3://awsexamplebucket/my_table/my_partition/file-01.csv'
クエリ
結果
WHERE 句での利用
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon Athena Federated Query
• 様々なデータソースに対して SQL クエリを実行可能
• AWS Lambda で動作するコネクタを利用して実行
• 標準のコネクタとしてさまざまなデータソースが対
応済
• Amazon DynamoDB
• Amazon Redshift
• Apache HBase
• MySQL
• PostgreSQL など
• Athena Query Federation SDK を利用して、独自コ
ネクタを実装可能
https://github.com/awslabs/aws-athena-query-federation
https://aws.amazon.com/jp/blogs/news/query-any-data-source-with-amazon-athenas-new-federated-query/
対応リージョン: バージニア、ムンバイ、アイルランド、オレゴン
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
UDF (User Defined Function)
• ユーザ独自のスカラー関数を UDF として定義して、SQL クエリで呼び出
すことが可能
• データの圧縮や解凍、機密データの編集、カスタマイズされた復号の
適用など独自の処理を実行可能
• Athena Query Federation SDK を利用して Java で実装し、Lambda 関数
として Athena から呼び出される
• 参照される Lambda 関数内の
Java メソッドに対応した UDF
名を指定
• 名前付き変数を複数指定可能
https://docs.aws.amazon.com/athena/latest/ug/querying-udf.html
USING FUNCTION compress(col1 VARCHAR)
RETURNS VARCHAR TYPE
LAMBDA_INVOKE WITH (lambda_name = 'MyAthenaUDFLambda’)
SELECT
compress('StringToBeCompressed');
対応リージョン: バージニア、ムンバイ、アイルランド、オレゴン
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Machine Learning (ML) with Amazon Athena
• Athena SQL クエリで SageMaker ML モデルを呼び出し、推論を実行可能
• 異常検出やコホート分析、販売予測などの複雑な作業が SQL クエリで関数
を呼び出す感覚で利用できる
USING FUNCTION predict_customer_registration(age INTEGER)
RETURNS DOUBLE TYPE
SAGEMAKER_INVOKE_ENDPOINT WITH (sagemaker_endpoint = 'xgboost-2019-09-20-04-49-29-303’)
SELECT predict_customer_registration(age) AS probability_of_enrolling, customer_id
FROM "sampledb"."ml_test_dataset”
WHERE predict_customer_registration(age) < 0.5;
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/querying-mlmodel.html
ML関数を定義、名前付き変数を複数指定可能
ML関数呼び出し
対応リージョン: バージニア、ムンバイ、アイルランド、オレゴン
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
パフォーマンスチューニング
• データの最適化
• データレイアウトの最適化
• クエリの最適化
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
データ最適化
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
列指向フォーマット
指向 特徴
列指向
• カラムごとにデータをまとめて保存
• 特定の列だけを扱う処理では、ファイル全体を読む必要がない
• OLAP向き
• ORC, Parquet など
行指向
• レコード単位でデータを保存
• 1カラムのみ必要でも、レコード全体を読み込む必要がある
• OLTP向き
• AVRO など
https://orc.apache.org/docs/spec-intro.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
1 2 3 4 5 6
列指向フォーマットを使うメリット
1 2 3 4 5 6 1 2 3 4 5 6
列指向行指向
I/O の効率があがる
• 圧縮と同時に使うことで I/O 効率がさらに向上
• カラムごとに分けられてデータが並んでいる
• 同じカラムは、似たような中身のデータが続く
ため、圧縮効率がよくなる
1 2 3 4 5 61 2 3 4 5 6
a
列指向行指向
OLAP 系の分析クエリを効率的に実行できる
• たいていの分析クエリは、一度のクエリで一部
のカラムしか使用しない
• 単純な統計データなら、メタデータで完結する
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
データ圧縮
圧縮形式 分割 説明
SNAPPY 可 Parquet フォーマットファイルのデフォルト圧縮形式
ZLIB 可 ORC フォーマットファイルのデフォルト圧縮形式
GZIP 不可 あらかじめデータを 1GB 未満のサイズに分割する必要あり
LZO 可 分割するためインデックスを付与する処理を行う必要あり
BZIP2 可 圧縮率と処理速度のバランスが良い圧縮形式
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/compression-formats.html
• 最低限分割可能な圧縮形式を利用しておくと巨大なファイルがあったとしても、
分散処理することが可能
• 分割不可の圧縮方式では、ファイル単位でしか分散処理できため、巨大なファイ
ルは事前に分割しておく必要がある
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
列指向フォーマット & 圧縮の使い方
• CREATE 文で指定するだけ
• データは事前にフォーマット変換 & 圧縮の必要あり
• 分析クエリを実行する際に、使用するカラムだけを
読み込むようになる
SELECT
month
, action_category
, COUNT(action_category)
FROM
action_log
WHERE
year = 2016
AND month >= 4
AND month < 7
GROUP BY
month
, action_category
CREATE EXTERNAL TABLE IF NOT EXISTS action_log (
user_id string,
action_category string,
action_detail string
year int,
month int,
day int
)
PARTITIONED BY (year int, month int, day int)
STORED AS PARQUET
LOCATION 's3://athena-examples/action-log/’
TBLPROPERTIES ('PARQUET.COMPRESS'='SNAPPY');
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
データレイアウトの最適化
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
パーティション
• S3のオブジェクトキーの構成を CREATE TABLE に反映
• WHERE で絞ったときに当該ディレクトリだけ読み込む
• AWS Glue Data Catalog 使用時 1テーブルあたりの最大パーティション数は
10,000,000
CREATE EXTERNAL TABLE IF NOT EXISTS action_log (
user_id string,
action_category string,
)
PARTITIONED BY (year int, month int, day int)
STORED AS PARQUET
LOCATION 's3://athena-examples/action-log/’
TBLPROPERTIES ('PARQUET.COMPRESS'='SNAPPY');
s3://athena-examples/action-log/year=2017/month=03/day=01/data01.snappy.parquet
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
パーティションの効果的な使い方
• WHERE で読み込み範囲を絞るときに、頻繁に使われる
カラムをキーに指定する
• 絞り込みの効果が高いものが向いている
• ログデータの場合、日付が定番
• “year/month/day” と階層で指定する
SELECT
month
, action_category
, action_detail
, COUNT(user_id)
FROM
action_log
WHERE
year = 2016
AND month >= 4
AND month < 7
GROUP BY
month
, action_category
, action_detail
以下の Amazon S3 パスだけが読み込まれる
s3://athena-examples/action-log/year=2016/month=04/day=01/
s3://athena-examples/action-log/year=2016/month=04/day=02/
s3://athena-examples/action-log/year=2016/month=04/day=03/
...
s3://athena-examples/action-log/year=2016/month=06/day=30/
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
パーティションの分け方
タイプ 形式 特徴
カラム名あり
(Hive 標準)
col1=val1/col2=val2/
• CREATE TABLE をしてから、MSCK REPAIR TABLE
を実行すればOK
• パーティションが増えた際も、MSCK REPAIR
TABLE を1回実行すればOK
• この形式にするために前処理が必要
カラム名なし val1/val2/
• 自然な形式
• MSCK REPAIR TABLE が使えないため、ALTER
TABLE ADD PARTITION を、パーティション数
実行する必要がある
• 後からパーティションが増えた際、増えた分だけ
ALTER TABLE ADD PARTITION
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Partition Projection
Partition Projection を使用すると、非常に多くのパーティションがあるテーブル
に対するクエリ処理を高速化し、パーティション管理を自動化することが可能
• パーティションプルーニングでは、メタデータを収集し、クエリに適用される
パーティションにだけに処理が実行されるので、多くの場合、クエリが高速化
する
• しかしながら、テーブルに非常に多くのパーティションがある場合、AWS
Glue Data Catalog に対するパーティション取得 API(GetPartitions) の呼び出し
がクエリパフォーマンスに影響する可能性が生じる
• Partition Projection を利用するとパーティション情報を Athena 自身で計算で
きるようになるため、GetPartitions 呼び出しの影響を回避し、パーティショ
ンプルーニングによるクエリ高速化の恩恵を享受できるようになる
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/partition-projection.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Partition Projection
ユースケース
• 非常に多くのパーティションがあるテーブルに対するクエリが思ったほどすぐに完了しない場合
• データに新しいパーティションが作成されたとき、定期的にパーティションをテーブルに追加し
ている場合
• 非常に多くのパーティション化されたデータが S3 に保存されていて、メタデータストアで管理
するのが現実的でなく、クエリで参照する対象のデータがほんの一部の場合
Projection 可能なパーティション構造
Partition Projection はパーティションが予測可能なパターンに従う場合に利用する
整数 – 整数の連続シーケンス: 例) [1, 2, 3, 4, ..., 1000] や [0500, 0550, ..., 2500] など
日付 – 日付/日時の連続シーケンス: 例) [20200101, 20200102, ..., 20201231]
列挙値 – 列挙値の有限セット : 例) 空港コードや AWS リージョンなど
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/partition-projection.html
Projection
Type
パターン 例
整数 整数の連続シーケンス [1, 2, 3, 4, ..., 1000] や [0500, 0550, ..., 2500] など
日付
日付/日時の
連続シーケンス
[20200101, 20200102, ..., 20201231]、
[1-1-2020 00:00:00, 1-1-2020 01:00:00, ..., 12-31-2020 23:00:00] など
列挙値 列挙値の有限セット 空港コードや AWS リージョンなど
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Partition Projection – 設定例
• テーブル作成時に Partition Projection を設定しておくと、設定に基づいて
パーティションが存在する場所を Athena に通知することが可能
• 次の CREATE TABLE の設定例では、日付範囲の上限に NOW を使用すること
で、1時間毎に新しいデータが自動的にクエリ可能になる
...
LOCATION "s3://bucket/prefix/"
PARTITIONED BY (
datehour STRING
)
TABLE PROPERTIES (
"projection.enabled" = "true",
"projection.datehour.type" = "date",
"projection.datehour.range" = "2018/01/01/00,NOW",
"projection.datehour.format" = ""yyyy/MM/dd/HH",
"projection.datehour.interval" = "1",
"projection.datehour.interval.unit" = "HOURS",
"storage.location.template" = "s3://bucket/prefix/${datehour}”
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/partition-projection-kinesis-firehose-example.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
クエリの最適化
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
クエリの最適化
1. ORDER BY を最適化する
LIMIT 句をつけることで、ORDER BY の負荷を軽減
2. JOIN を最適化する
結合の際には、大きなテーブルを左側に、小さなテーブルを右にする
3. GROUP BY を最適化する
複数カラムを指定する場合には、カーディナリティの高いカラムを前に持ってくる
4. LIKE 演算子を最適化する
クエリ内で複数の LIKE 演算子を使う場合には、RegEx におきかえた方が高速になる
5. 近似関数を使う
多少の誤差を許容できるなら、COUNT DISTINCT でなく APPROX_DISTINCT() を使用
6. 必要なカラムだけを読みこむ
できるだけ * を使わず、必要なカラムだけを指定して SELECT 文を実行
https://aws.amazon.com/jp/blogs/news/top-10-performance-tuning-tips-for-amazon-athena/
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Athena の運用管理
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Workgroups を利用した利用量・コストの管理
• 同一アカウント内で、仮想的なワークグループを作成することが可能
• ワークグループごとに下記設定を実施可能
• クエリワークロードの分離
• クエリメトリクスの分離
• クエリ毎のスキャン量上限設定
• スキャン量が一定を超えたらアラームをあげることも可能
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/user-created-workgroups.html
https://aws.amazon.com/jp/about-aws/whats-new/2020/03/amazon-athena-adds-support-for-managing-athena-workgroups-using-aws-cloudformation/
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon EventBridge を利用したクエリの監視
• EventBridge (旧名 Amazon CloudWatch Events) を使用して、クエリの状態に
関するリアルタイムの通知を受け取ることが可能に
• クエリの状態が移行する(たとえば、実行中から成功またはキャンセルなど)と、
Athena はそのクエリ状態移行に関する情報を含むイベントを EventBridge に
発行する
• 発行されたイベントに対応したルールを準備することで、下記のようなアク
ションを自動化することが可能
• クエリが成功した場合に Lambda 関数を呼び出して後続処理を実行
• クエリが失敗した場合にアラート通知を発行する
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon Athena のメトリクス
Athena の性能を把握するのに役立つ,以下の CloudWatch メトリクスがある
メトリクス 概要
EngineExecutionTime クエリの実行にかかったミリ秒数
ProcessedBytes クエリ内でスキャンされたデータのメガバイト数
Query Planning Time
クエリの計画を立てるためにかかるミリ秒数
データソースからテーブルパーティションを取得する時間も
含まれる
Query Queuing Time クエリがリソースを待ってキューに並んでいたミリ秒数
Service Processing Time
クエリエンジンがその実行を完了した後に結果を書き込むの
にかかるミリ秒数
Total Execution Time クエリを実行するのに Athena が費やした全体のミリ秒数
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
CloudTrail を利用した利用状況のロギング
• CloudTrail は、Athena の全ての API コールをイベントとしてキャプチャする
• CloudTrail によって収集される下記情報から、Athena に対してどのような
リクエストが行われたかを判断可能
• リクエストの作成元の IP アドレス
• リクエストの実行者
• リクエストの実行日時
• Athena で実行されたアクション
• 証跡を作成する場合は、Athena のイベントなど、Amazon S3 バケットへの
CloudTrail イベントの継続的な配信を有効にすることが可能
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/monitor-with-cloudtrail.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Athena のセキュリティ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
暗号化
• 保管時の暗号化
• 暗号化データについて、以下に対応
• 暗号化された Amazon S3 データに対するクエリ
• 結果データを暗号化して Amazon S3 に保存
• AWS Glue Data Catalog 内のデータ
• 暗号化方式は以下の 3 種類
• SSE-S3
• SSE-KMS
• CSE-KMS
• 暗号化方式は、クエリと保存で別々のものを指定可能
• 転送時の暗号化
• Athena と Amazon S3 間、Athena と Athena にアクセスするカスタマー
アプリケーション間で、転送時のデータに Transport Layer Security (TLS)
暗号化を使用
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/encryption.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
AWS Lake Formation による Fine Grained Access Control
• シンプルな権限の Grant/Revoke によりデータアクセスを制御
• データカタログのデータベース、テーブル、列に対して権限を指定可能
• 特定ユーザーに付与されたポリシーの確認も可能
• すべてのデータアクセスを1箇所で監査
ユーザー
IAM ユーザー、 ロール
Active Directory ユーザー
(フェデレーション)
エンドサービスは
Amazon S3から直接
関連データを検索
テーブルTに
対するクエリ
1
テーブルTへの
アクセスリクエスト2
3テーブルTへアクセスする
ための一時証明書を返却
Amazon S3
4
テーブルTに含まれる
オブジェクトへの
リクエスト
クエリ結果の返却 5
Amazon Athena データ
カタログ
アクセス
制御
AWS Lake Formation
https://docs.aws.amazon.com/ja_jp/lake-formation/latest/dg/access-
control-overview.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
AWS Glue Data Catalog のリソースベースポリシー
• AWS Glue Data Catalog を用いることで、IAM ユーザーやロールに対して、
テーブル単位でのアクセス権限を設定することが可能
• 権限のないテーブルは、Amazon Athena 側でも表示されなくなる
• AWS Glue Data Catalog はメタデータの管理しか行わないので、別途 Amazon
S3 へのアクセスをバケットポリシーで制限する必要がある
• 制限されたバケットに対する Athena からのアクセスは aws:CalledVia 条件キー
で制御する
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
VPCエンドポイント
• インターネットを介さずに、Virtual Private Cloud (VPC) のインターフェイス
VPC エンドポイントを使用して、Athena に直接接続可能
• インターフェイス VPC エンドポイントを使用すると、VPC と Athena の間の
通信は完全に AWS ネットワーク内で実施されます
• VPC エンドポイントのポリシーを作成して、以下を指定できます
• アクションを実行できるプリンシパル
• 実行可能なアクション
• このアクションを実行できるリソース
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/interface-vpc-endpoint.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
サービス上限と料金
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
リソース制限(クエリ関連)
Amazon Athena の 1 アカウントあたりのクエリ関連のリソース制限は以下の通り
• 最大同時クエリ実行数: 20 (DDL とクエリそれぞれで 20 ずつ)
• クエリタイムアウト時間: 30 分
• 1 秒あたりの API 実行数制限(下表)
API 名 デフォルト値 バースト時の値
BatchGetNamedQuery,BatchGetQueryExecution
ListNamedQueries, ListQueryExecutions
5 最大 10
CreateNamedQuery, DeleteNamedQuery, GetNamedQuery
StartQueryExecution, StopQueryExecution
5 最大 20
BatchGetQueryExecution 20 最大 40
StartQueryExecution, StopQueryExecution 20 最大 80
GetQueryExecution, GetQueryResults 100 最大 200
https://docs.aws.amazon.com/athena/latest/ug/service-limits.html
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
リソース制限(データベース/テーブル関連)
AWS Glue の 1 アカウントあたりのデータベース/テーブル関連の制限は
以下の通り
• データベース数: 10,000
• データベースあたりテーブル数: 200,000
• テーブルあたりパーティション数: 10,000,000
• テーブル数: 1,000,000
• パーティション数: 20,000,000
• 関数の数: 100
https://docs.aws.amazon.com/ja_jp/general/latest/gr/glue.html#limits_glue
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
料金
• クエリ単位の従量課金で、基本は S3 のデータスキャン 1TB につき 5 USD
• 最低スキャン量は 10MB で、それ以下のものは 10MB に切り上げ
• スキャン量の MB 未満の端数は切り上げて計算
• スキャンの計算は、S3 上のデータサイズに基づいて行われるため、圧縮するだ
けで課金額を削減可能
• DDL および実行に失敗したクエリは、課金の対象外
• 別リージョンの Amazon S3 バケットからデータを読み込む場合は、別途 S3
のデータ転送料金が課金される
• 裏側で実行される Amazon S3 API リクエストについては、S3 側で別途課金
• AWS Glue Data Catalog の利用についても、別途課金
• VPC エンドポイント利用時、インターフェイス VPC エンドポイント料金が
適用、課金される
https://aws.amazon.com/jp/athena/pricing/
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
リージョン
Amazon Athena は、東京リージョンを含む以下のリージョンで利用可能
アメリカ大陸
• 北バージニア
• オハイオ
• オレゴン
• 北カリフォルニア
• モントリオール
• サンパウロ
• GovCloud (米国西部)
• GovCloud (米国東部)
欧州/中東/アフリカ
• フランクフルト
• アイルランド
• ロンドン
• パリ
• ストックホルム
• バーレーン
アジアパシフィック
• シンガポール
• 東京
• シドニー
• ソウル
• ムンバイ
• 香港
• 北京
• 寧夏
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
まとめ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
まとめ
• Amazon Athena は、Amazon S3 上のデータに対して、標準 SQL による
インタラクティブクエリを実行して、データ分析を行うことができる
サービス
• データの持ち方やクエリの記述を工夫することで、より低いコストで、
より高速にクエリを実行することが可能
• 性能改善・運用改善につながる様々な機能追加を行なっている
• 安全にデータ分析を実施可能な機能が揃っている
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
Q&A
お答えできなかったご質問については
AWS Japan Blog 「https://aws.amazon.com/jp/blogs/news/」にて
資料公開と併せて、後日掲載させていただきます。
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
AWS の日本語資料の場所「AWS 資料」で検索
https://amzn.to/JPArchive
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
で[検索]AWS イベント
毎週 ”W-A 個別技術相談会” を実施中
• AWS のソリューションアーキテクト (SA) に
対策などを相談することも可能
• 申込みはイベント告知サイトから
(https://aws.amazon.com/jp/about-aws/events/)
AWS Well-Architected 個別技術相談会
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark.
ご視聴ありがとうございました
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive

Weitere ähnliche Inhalte

Was ist angesagt?

20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQLAmazon Web Services Japan
 
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...Amazon Web Services Japan
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS BatchAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAmazon Web Services Japan
 
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatchAmazon Web Services Japan
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本Amazon Web Services Japan
 
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)Amazon Web Services Japan
 
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理Amazon Web Services Japan
 
20180509 AWS Black Belt Online Seminar Amazon GuardDuty
20180509 AWS Black Belt Online Seminar Amazon GuardDuty20180509 AWS Black Belt Online Seminar Amazon GuardDuty
20180509 AWS Black Belt Online Seminar Amazon GuardDutyAmazon Web Services Japan
 
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step FunctionsAmazon Web Services Japan
 
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / GlacierAmazon Web Services Japan
 
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要Amazon Web Services Japan
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...Amazon Web Services Japan
 
20190723 AWS Black Belt Online Seminar AWS CloudHSM
20190723 AWS Black Belt Online Seminar AWS CloudHSM 20190723 AWS Black Belt Online Seminar AWS CloudHSM
20190723 AWS Black Belt Online Seminar AWS CloudHSM Amazon Web Services Japan
 
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows ServerAmazon Web Services Japan
 
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipelineAmazon Web Services Japan
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation Amazon Web Services Japan
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndureAmazon Web Services Japan
 

Was ist angesagt? (20)

20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
 
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
 
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
 
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
 
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
 
20180509 AWS Black Belt Online Seminar Amazon GuardDuty
20180509 AWS Black Belt Online Seminar Amazon GuardDuty20180509 AWS Black Belt Online Seminar Amazon GuardDuty
20180509 AWS Black Belt Online Seminar Amazon GuardDuty
 
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions
 
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
 
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
 
20190723 AWS Black Belt Online Seminar AWS CloudHSM
20190723 AWS Black Belt Online Seminar AWS CloudHSM 20190723 AWS Black Belt Online Seminar AWS CloudHSM
20190723 AWS Black Belt Online Seminar AWS CloudHSM
 
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon AuroraAWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
 
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
 
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
 

Ähnlich wie 20200617 AWS Black Belt Online Seminar Amazon Athena

[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonightAmazon Web Services Japan
 
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法Amazon Web Services Japan
 
Effective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンEffective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンNoritaka Sekiyama
 
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)Amazon Web Services Japan
 
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回SORACOM, INC
 
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-Amazon Web Services Japan
 
20180710 AWS Black Belt Online Seminar AWS入門者向け: AWSで実現するウェブサイトホスティング
20180710 AWS Black Belt Online Seminar AWS入門者向け: AWSで実現するウェブサイトホスティング20180710 AWS Black Belt Online Seminar AWS入門者向け: AWSで実現するウェブサイトホスティング
20180710 AWS Black Belt Online Seminar AWS入門者向け: AWSで実現するウェブサイトホスティングAmazon Web Services Japan
 
Presto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon AthenaPresto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon AthenaAmazon Web Services Japan
 
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Daisuke Miyamoto
 
2015年12月 Amazon RDS for Aurora セミナー in 関西 「Aurora検証のご紹介」
2015年12月 Amazon RDS for Aurora セミナー in 関西 「Aurora検証のご紹介」2015年12月 Amazon RDS for Aurora セミナー in 関西 「Aurora検証のご紹介」
2015年12月 Amazon RDS for Aurora セミナー in 関西 「Aurora検証のご紹介」Serverworks Co.,Ltd.
 
[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)Amazon Web Services Japan
 
[JAWS Days 2020] AWS Well-Architected フレームワークのご紹介
[JAWS Days 2020] AWS Well-Architected フレームワークのご紹介[JAWS Days 2020] AWS Well-Architected フレームワークのご紹介
[JAWS Days 2020] AWS Well-Architected フレームワークのご紹介Takanori Ohba
 
20120201 aws meister-reloaded-iam-and-billing-public
20120201 aws meister-reloaded-iam-and-billing-public20120201 aws meister-reloaded-iam-and-billing-public
20120201 aws meister-reloaded-iam-and-billing-publicAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-Amazon Web Services Japan
 
Serverless services on_aws_dmm_meetup_20170801
Serverless services on_aws_dmm_meetup_20170801Serverless services on_aws_dmm_meetup_20170801
Serverless services on_aws_dmm_meetup_20170801Amazon Web Services Japan
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSAmazon Web Services Japan
 

Ähnlich wie 20200617 AWS Black Belt Online Seminar Amazon Athena (20)

[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
 
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
 
Data Lake Security on AWS
Data Lake Security on AWSData Lake Security on AWS
Data Lake Security on AWS
 
Effective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンEffective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターン
 
AWS Black Belt - AWS Glue
AWS Black Belt - AWS GlueAWS Black Belt - AWS Glue
AWS Black Belt - AWS Glue
 
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
 
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
 
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
 
20180710 AWS Black Belt Online Seminar AWS入門者向け: AWSで実現するウェブサイトホスティング
20180710 AWS Black Belt Online Seminar AWS入門者向け: AWSで実現するウェブサイトホスティング20180710 AWS Black Belt Online Seminar AWS入門者向け: AWSで実現するウェブサイトホスティング
20180710 AWS Black Belt Online Seminar AWS入門者向け: AWSで実現するウェブサイトホスティング
 
Presto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon AthenaPresto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon Athena
 
20170725 black belt_monitoring_on_aws
20170725 black belt_monitoring_on_aws20170725 black belt_monitoring_on_aws
20170725 black belt_monitoring_on_aws
 
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
 
2015年12月 Amazon RDS for Aurora セミナー in 関西 「Aurora検証のご紹介」
2015年12月 Amazon RDS for Aurora セミナー in 関西 「Aurora検証のご紹介」2015年12月 Amazon RDS for Aurora セミナー in 関西 「Aurora検証のご紹介」
2015年12月 Amazon RDS for Aurora セミナー in 関西 「Aurora検証のご紹介」
 
[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)
 
[JAWS Days 2020] AWS Well-Architected フレームワークのご紹介
[JAWS Days 2020] AWS Well-Architected フレームワークのご紹介[JAWS Days 2020] AWS Well-Architected フレームワークのご紹介
[JAWS Days 2020] AWS Well-Architected フレームワークのご紹介
 
20120201 aws meister-reloaded-iam-and-billing-public
20120201 aws meister-reloaded-iam-and-billing-public20120201 aws meister-reloaded-iam-and-billing-public
20120201 aws meister-reloaded-iam-and-billing-public
 
Serverless analytics on aws
Serverless analytics on awsServerless analytics on aws
Serverless analytics on aws
 
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-
AWS Black Belt Online Seminar 2016 クラウドのためのアーキテクチャ設計 -ベストプラクティス-
 
Serverless services on_aws_dmm_meetup_20170801
Serverless services on_aws_dmm_meetup_20170801Serverless services on_aws_dmm_meetup_20170801
Serverless services on_aws_dmm_meetup_20170801
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
 

Mehr von Amazon Web Services Japan

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)Amazon Web Services Japan
 
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFSAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device DefenderAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現Amazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...Amazon Web Services Japan
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Web Services Japan
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用Amazon Web Services Japan
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdfAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介Amazon Web Services Japan
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介Amazon Web Services Japan
 

Mehr von Amazon Web Services Japan (20)

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
 
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDD
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
 

Kürzlich hochgeladen

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Kürzlich hochgeladen (8)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

20200617 AWS Black Belt Online Seminar Amazon Athena

  • 1. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Solutions Architect, Analytics Makoto Kawamura 2020/06/17 [AWS Black Belt Online Seminar] Amazon Athena サービスカットシリーズ AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive
  • 2. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 自己紹介 川村 誠 Hadoop/Spark スペシャリスト ソリューションアーキテクト • データ分析系サービスを担当 • 好きなサービス ⎼ Amazon EMR ⎼ Amazon Athena ⎼ AWS Glue ⎼ Amazon SageMaker
  • 3. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. AWS Black Belt Online Seminar とは 「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマゾ ン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。 質問を投げることができます! • 書き込んだ質問は、主催者にしか見えません • 今後のロードマップに関するご質問は お答えできませんのでご了承下さい ① 吹き出しをクリック ② 質問を入力 ③ Sendをクリック Twitter ハッシュタグは以下をご利用ください #awsblackbelt
  • 4. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 内容についての注意点 • 本資料では 2020 年 6 月 17 日時点のサービス内容および価格についてご説明しています。 最新の情報は AWS 公式ウェブサイト (http://aws.amazon.com) にてご確認ください。 • 資料作成には十分注意しておりますが、資料内の価格と AWS 公式ウェブサイト記載の価格 に相違があった場合、AWS 公式ウェブサイトの価格を優先とさせていただきます。 • 価格は税抜表記となっています。日本居住者のお客様には別途消費税をご請求させていただ きます。 • AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services、 and may vary from the estimates provided.
  • 5. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. アジェンダ • Amazon Athena 概要 • Athena の使い方 • Athena のさまざまなクエリ • パフォーマンスチューニング • Athena の運用管理 • Athena のセキュリティ • サービス上限と料金
  • 6. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Athena 概要
  • 7. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon Athena とは Amazon S3 にあるデータ(およびさまざまなデータソース*)に対して 標準 SQL を使用して簡単に分析可能とする インタラクティブなクエリサービス * Federated Query によるサポート
  • 8. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon Athena の特徴 サーバレスでインフラ管理不要 大規模データに対しても高速なクエリ 事前のデータロードなしに Amazon S3 に直接クエリ スキャンしたデータに対しての従量課金 JDBC / ODBC / API 経由で BI ツールやシステムと連携
  • 9. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. ユースケース 1: アナリストによるアドホックな分析 S3 にデータをアップロードしたら、テーブル定義をしてすぐにクエリを実行 さらに BI ツールから可視化 アナリスト S3 バケット BI ツールAmazon Athena
  • 10. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. ユースケース 2: ログ分析 S3 に出力される様々な AWS サービスのログや収集データに対してクエリ https://docs.aws.amazon.com/ja_jp/athena/latest/ug/querying-AWS-service-logs.html https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/athena.html https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory-query.html https://aws.amazon.com/jp/about-aws/whats-new/2019/08/amazon-athena-supports-querying-data-from-amazon-s3/ • Elastic Load Balancing (ALB/CLB/NLB) ログ • Amazon CloudFront ログ • AWS CloudTrail ログ • Amazon EMR ログ • AWS Global Accelerator ログ • Amazon GuardDuty ログ • Amazon VPC フローログ • AWS WAF ログ • AWS Cost and Usage Reports データ • AWS Systems Manager インベントリデータ • Amazon S3リクエスタ支払いバケットデータ S3 Athena
  • 11. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. ETL パイプラインを Athena で構築 連携先サービスから定期的に送られてくるデータに対して、INSERT INTO 句を用いて継続的なデータ変換を行い、効率的にクエリ
  • 12. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Athena の使い方 1. データを S3 に保存する 2. テーブルを定義する 3. クエリを実行する
  • 13. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Athena コンソール クエリを記述 以下を選択 • データソース • データベース クエリを実行 クエリ実行結果を参照
  • 14. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 1. データを Amazon S3 に保存する
  • 15. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon S3 にデータを保存する方法 AWS Database Migration Service Amazon Kinesis Data Firehose AWS Snowball AWS Snowmobile AWS Storage Gateway Amazon S3 AWS DataSync AWS Transfer Family AWS Snowball Edge Amazon Kinesis Data Streams
  • 16. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 2. テーブルを定義する
  • 17. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. テーブルを定義する • Athena ではクエリのためにテーブル 定義が必要.デフォルトで AWS Glue Data Catalog 上のテーブル定義を使用 • AWS Glue Data Catalog は、Apache Hive Metastore という OSS と互換性 のある、メタデータを管理するための リポジトリ • AWS Glue Data Catalog にテーブル定 義を作成する方法は次の 3 つ • Athena DDL • AWS Glue Catalog API • AWS Glue Crawler AWS Glue Data Catalog で定義されたテーブルの例
  • 18. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Athena DDL • Athena の DDL は HiveQL 形式で記述 • 標準的なテーブル定義ステートメントの後に、パーティション定義、データ形 式、データの場所、圧縮形式などを指定 CREATE EXTERNAL TABLE IF NOT EXISTS action_log ( user_id string, action_category string, action_detail string ) PARTITIONED BY (year int, month int) STORED AS PARQUET LOCATION 's3://athena-examples/action-log/’ TBLPROPERTIES ('PARQUET.COMPRESS'='SNAPPY'); パーティション データ形式 データの場所 圧縮形式
  • 19. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon Athena のデータ形式 データ形式 SerDe CSV 通常は LazySimpleSerDe を、引用符付きカラムが含まれる場合は OpenCSVSerDe を使用 TSV LazuSimpleSerDe を使用して ‘¥t’ を区切り文字に指定 カスタム区切り LazuSimpleSerDe を使用して任意の区切り文字を指定 JSON HiveJSONSerDe または OpenXJsonSerDe を指定 Apache Avro AvroSerDe を指定 ORC ORCSerDe を指定 Apache Parquet ParquetSerDe を指定 Logstash ログ Grok SerDe を指定 Apache ログ RegexSerDe を指定 CloudTrail ログ 基本的に CloudTrailSerDe を指定.一部では OpenXJSONSerDe を指定 https://docs.aws.amazon.com/ja_jp/athena/latest/ug/supported-format.html
  • 20. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. データソース • Athena では、データを記述する データカタログ、およびそこに含ま れるデータをあわせてデータソース と呼ぶ。デフォルトのデータソース は AWS Glue Data Catalog • AWS Glue Data Catalog に登録され たデータのうち、操作しているユー ザーが参照権限を持っているものの みが、Athena 上で表示される
  • 21. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. データソースの追加 • AWS Glue Data Catalog 以外のデータソースを、新たに追加することができる • すでに既存の仕組みがあり、自分たちの Hive Metastore を持っている場合に は、これを Athena に登録することで、Athena でも利用可能になる • 既存の Hive Metastore 資産を移行する必要がなくなる • 外部メタストアへの接続には、Lambda 関数として実行されるコネクター (Athena Data Connector for External Hive Metastore) を利用する https://docs.aws.amazon.com/athena/latest/ug/connect-to-data-source-hive.html
  • 22. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 3. クエリを実行する
  • 23. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon Athena のクエリ • Presto と同様、標準 ANSI SQL に準拠したクエリ • WITH句、Window関数、JOINなどに対応 • 基本的には Presto 0.172 に準拠 • 一部サポートしていない機能等の詳細は以下ドキュメント参照 [ WITH with_query [, ...] ] SELECT [ ALL | DISTINCT ] select_expression [, ...] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY [ ALL | DISTINCT ] grouping_element [, ...] ] [ HAVING condition ] [ UNION [ ALL | DISTINCT ] union_query ] [ ORDER BY expression [ ASC | DESC ] [ NULLS FIRST | NULLS LAST] [, ...] ] [ LIMIT [ count | ALL ] ] https://docs.aws.amazon.com/ja_jp/athena/latest/ug/other-notable-limitations.html
  • 24. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Athena におけるクエリ実行の基礎 • 標準 SQL を利用可能 • 行単位でのトランザクションではなく、あ くまでデータ抽出や集計がメインの用途 • 典型的なクエリパターン • SELECT でデータを取得 • COUNT(), SUM() 等で集計 • JOIN で複数テーブルを結合 • WHERE でデータのフィルタ • GROUP BY で集約 SELECT col1 , col2 , COUNT(col3) , SUM(col3) FROM table1 INNER JOIN table2 ON table1.id = table2.id WHERE table1.id = table2.id AND col4 = 1 AND col5 = “good” GROUP BY col1 , col2
  • 25. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. クエリ結果 • 実行される各クエリのクエリ結果とメタデータ情報を、指定した S3 バケットに自動的に保存 • この保存自体をオフにすることはできない • 必要に応じて、この場所にあるファイルにアクセスして操作可能 • Athena コンソール履歴画面から、クエリ結果ファイルを直接ダウン ロードすることも可能 • クエリ出力ファイルへのアクセスには以下の権限が必要 • クエリ結果の場所の Amazon S3 GetObject アクション • Athena GetQueryResults アクション
  • 26. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. クエリ履歴 • Athena コンソールの履歴画面では下記情報を確認可能.結果は 45 日間保存 • クエリ送信時刻 • 送信クエリ • 暗号化タイプ • クエリの状態(成功/失敗) • 実行時間 • スキャンしたデータ量 • 成功したクエリの結果ファイルダウンロード • 失敗したクエリのエラー情報詳細表示
  • 27. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. コンソール以外からの実行 JDBC / ODBC ドライバー経由 • JDBC: バージョン 2.0.9: JDBC API 4.1 および 4.2 のデータ基準に準拠 • ODBC: Windows、Linux、および OSX で使用可能 Athena API 経由 • AWS SDK 経由で Athena API を利用可能 • クエリ実行 API: 非同期処理 (JDBC 接続と異なる) 1. StartQueryExecution でクエリを実行して QueryExecutionId を取得 2. GetQueryExecution で実行状況を確認 3. State が SUCCEEDED になったら GetQueryResults で結果を取得 https://docs.aws.amazon.com/ja_jp/athena/latest/ug/athena-bi-tools-jdbc-odbc.html https://docs.aws.amazon.com/athena/latest/APIReference/Welcome.html
  • 28. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Athena のクエリパフォーマンスの基本 スキャンデータ量を減らす クエリ速度を向上するには、クエリ結果を集計するために必要なデータのスキャ ン量を減らすのことが効果的 • 列指向フォーマットの利用 • データの圧縮 • データのパーティショニング(ファイルの配置方法の最適化) スキャンするファイルを一定サイズ以上にまとめる 小さいファイルが大量にある場合、ファイル操作のオーバーヘッドが大きいため、 128MB 以上のかたまりにまとめる スキャンするファイルを分割可能な形式とする Athena は複数のワーカーが並列で処理を行うため、ファイルを分割可能な形式 として、複数のワーカーで並列処理できるようにする
  • 29. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Athena のさまざまなクエリ
  • 30. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. CTAS (Create Table As Select) クエリ結果をもとに、新しいテーブルを作成.ETL 処理を Athena で実行可能 • データ / 圧縮フォーマット変換 • データを複雑に加工整形するための多段クエリ CREATE TABLE new_table WITH ( format = ‘PARQUET’, external_location = ‘s3://my_athena_results/new_table/’ partitioned_by = ARRAY[‘year’, ‘month’, ‘day’], bucketed_by = ARRAY[‘user_id’, ‘category’], bucket_count = 3, ) AS SELECT * FROM old_table;
  • 31. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. CTAS のパーティショニングとバケッティング パーティショニング • 通常のパーティションと一緒、 ARRAY[‘key1’, ‘key2’, ‘key3’] で指定した順番に s3://MYBUCKET/key1=xxx/key2=yyy/key3=zzz という形で保存 • CTAS 句で作成可能なパーティション数は最大 100 で、超えるとエラーになる バケッティング • 指定したカラム群を元に、出力のファイル数に振りわける • カラム内の同じキーは同一ファイルに入るため、カラムのカーディナリティに注意 使い分け • パーティショニングは、WHERE 句で絞る対象のカラムを指定 • バケッティングは、個々のファイルサイズを調整(128-512MB 程度) • 両方同時に使うことが可能(組み合わせた場合、パーティション内のファイル数が、 バケッティングで指定した数で分割される)
  • 32. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. INSERT INTO クエリ結果をもとに、既存のテーブルにデータを追加 • SELECT クエリの結果を、新しい行として対象テーブルに挿入する形 • データは挿入先テーブルの形式に変換されるため、データ形式変換用のクエリとして INSERT INTO を利用可能 • INSERT INTO のたびに新しいファイルが生成されるため,少量データでの実行を繰り返す ことで、大量の小さなファイルが生成され,クエリパフォーマンスに影響 INSERT INTO destination_table SELECT select_query FROM source_table_or_view INSERT INTO destination_table [(col1,col2,...)] VALUES (col1value,col2value,...)[, (col1value,col2value,...)][, ...] https://docs.aws.amazon.com/ja_jp/athena/latest/ug/insert-into.html
  • 33. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. INSERT INTO によるパーティション追加 パーティション追加の例 1. CREATE EXTERNAL TABLE で、s3://MY_BUCKET/service_a/ にパーティションを設定したテーブル table_service_a を作成 2. 日次受信データ用のテーブル tmp_table_service_a を作成 3. INSERT INTO で tmp_table_service_a のデータを(処理した上で) table_service_a に追加 4. tmp_table_service_a を DELETE TABLE で削除 5. 2-4 を日次で実行 制約事項 • INSERT INTO できるパーティションの最大数は 100 • バケット化されたテーブルは未サポート • サポートされるデータ形式は Avro/JSON/ORC/Parquet/テキストファイル (対応する Serde の詳細はドキュメントを参照) https://docs.aws.amazon.com/ja_jp/athena/latest/ug/insert-into.html
  • 34. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. VIEW クエリ内容自体を仮想的なテーブルとして登録 • VIEW を実行すると、裏側で元テーブルに対してクエリを実行 • VIEW からさらに VIEW を作成することも可能 • AWS Glue Data Catalog 側からは、テーブルとして認識される CREATE VIEW my_view AS SELECT col1, col2 / 100 col2_percent FROM table1 INNER JOIN table2 ON table1.id = table2.id;
  • 35. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. VIEW の活用シーン • データのサブセットをクエリする。元のテーブルから列のサブセットがある テーブルを作成して、データのクエリを単純化する • 複数のテーブルを 1 つのクエリに結合する。複数のテーブルを持ち、それら を UNION ALLと組み合わせる場合は、その式でビューを作成して、結合テー ブルに対するクエリを簡素化できる • 既存の基本クエリの複雑性を解消して、ユーザーによるクエリの実行を単純化 する • View をクエリ問い合わせのインタフェースとして利用し、より最適なクエリ への移行やクエリの仕様変更に対するメンテナンスの影響を最小限に抑える
  • 36. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 地理空間データの分析 ESRI Java Geometry Library をサポート • ジオメトリデータ型として point,line,multiline 等に対応 • ジオメトリデータ間の関係として distance,equals,overlaps 等に対応 具体的には、以下のような分析を行うことが可能 • 2 点間の距離を計算 • あるエリアに他のエリアが含まれているか否かをチェック 以下の例では、各地域内で起こった地震の回数を ST_CONTAINS, ST_POINT 関数で求めている SELECT counties.name, COUNT(*) cnt FROM counties CROSS JOIN earthquakes WHERE ST_CONTAINS ( counties.boundaryshape, ST_POINT(earthquakes.longitude, earthquakes.latitude)) GROUP BY counties.name ORDER BY cnt DESC https://docs.aws.amazon.com/ja_jp/athena/latest/ug/geospatial-query-what-is.html
  • 37. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. SELECT $path / WHERE $path • 予期しないデータの調査や、ソースデータに関する情報を必要とする場合に 利用可能なクエリ • SELECT 句や WHERE 句の中で利用可能 SELECT "$path" FROM "my_database"."my_table" WHERE year=2019; https://aws.amazon.com/jp/premiumsupport/knowledge-center/find-s3-source-file-athena-table-row/ s3://awsexamplebucket/datasets_mytable/year=2019/data_file1.json クエリ 結果 SELECT 句での利用 SELECT *,"$path" FROM "my_database"."my_table" WHERE "$path" LIKE 's3://awsexamplebucket/my_table/my_partition/file-01.csv’ id name year $path 3 John 1999 's3://awsexamplebucket/my_table/my_partition/file-01.csv’ 4 Jane 2000 's3://awsexamplebucket/my_table/my_partition/file-01.csv' クエリ 結果 WHERE 句での利用
  • 38. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon Athena Federated Query • 様々なデータソースに対して SQL クエリを実行可能 • AWS Lambda で動作するコネクタを利用して実行 • 標準のコネクタとしてさまざまなデータソースが対 応済 • Amazon DynamoDB • Amazon Redshift • Apache HBase • MySQL • PostgreSQL など • Athena Query Federation SDK を利用して、独自コ ネクタを実装可能 https://github.com/awslabs/aws-athena-query-federation https://aws.amazon.com/jp/blogs/news/query-any-data-source-with-amazon-athenas-new-federated-query/ 対応リージョン: バージニア、ムンバイ、アイルランド、オレゴン
  • 39. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. UDF (User Defined Function) • ユーザ独自のスカラー関数を UDF として定義して、SQL クエリで呼び出 すことが可能 • データの圧縮や解凍、機密データの編集、カスタマイズされた復号の 適用など独自の処理を実行可能 • Athena Query Federation SDK を利用して Java で実装し、Lambda 関数 として Athena から呼び出される • 参照される Lambda 関数内の Java メソッドに対応した UDF 名を指定 • 名前付き変数を複数指定可能 https://docs.aws.amazon.com/athena/latest/ug/querying-udf.html USING FUNCTION compress(col1 VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'MyAthenaUDFLambda’) SELECT compress('StringToBeCompressed'); 対応リージョン: バージニア、ムンバイ、アイルランド、オレゴン
  • 40. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Machine Learning (ML) with Amazon Athena • Athena SQL クエリで SageMaker ML モデルを呼び出し、推論を実行可能 • 異常検出やコホート分析、販売予測などの複雑な作業が SQL クエリで関数 を呼び出す感覚で利用できる USING FUNCTION predict_customer_registration(age INTEGER) RETURNS DOUBLE TYPE SAGEMAKER_INVOKE_ENDPOINT WITH (sagemaker_endpoint = 'xgboost-2019-09-20-04-49-29-303’) SELECT predict_customer_registration(age) AS probability_of_enrolling, customer_id FROM "sampledb"."ml_test_dataset” WHERE predict_customer_registration(age) < 0.5; https://docs.aws.amazon.com/ja_jp/athena/latest/ug/querying-mlmodel.html ML関数を定義、名前付き変数を複数指定可能 ML関数呼び出し 対応リージョン: バージニア、ムンバイ、アイルランド、オレゴン
  • 41. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. パフォーマンスチューニング • データの最適化 • データレイアウトの最適化 • クエリの最適化
  • 42. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. データ最適化
  • 43. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 列指向フォーマット 指向 特徴 列指向 • カラムごとにデータをまとめて保存 • 特定の列だけを扱う処理では、ファイル全体を読む必要がない • OLAP向き • ORC, Parquet など 行指向 • レコード単位でデータを保存 • 1カラムのみ必要でも、レコード全体を読み込む必要がある • OLTP向き • AVRO など https://orc.apache.org/docs/spec-intro.html
  • 44. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 1 2 3 4 5 6 列指向フォーマットを使うメリット 1 2 3 4 5 6 1 2 3 4 5 6 列指向行指向 I/O の効率があがる • 圧縮と同時に使うことで I/O 効率がさらに向上 • カラムごとに分けられてデータが並んでいる • 同じカラムは、似たような中身のデータが続く ため、圧縮効率がよくなる 1 2 3 4 5 61 2 3 4 5 6 a 列指向行指向 OLAP 系の分析クエリを効率的に実行できる • たいていの分析クエリは、一度のクエリで一部 のカラムしか使用しない • 単純な統計データなら、メタデータで完結する
  • 45. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. データ圧縮 圧縮形式 分割 説明 SNAPPY 可 Parquet フォーマットファイルのデフォルト圧縮形式 ZLIB 可 ORC フォーマットファイルのデフォルト圧縮形式 GZIP 不可 あらかじめデータを 1GB 未満のサイズに分割する必要あり LZO 可 分割するためインデックスを付与する処理を行う必要あり BZIP2 可 圧縮率と処理速度のバランスが良い圧縮形式 https://docs.aws.amazon.com/ja_jp/athena/latest/ug/compression-formats.html • 最低限分割可能な圧縮形式を利用しておくと巨大なファイルがあったとしても、 分散処理することが可能 • 分割不可の圧縮方式では、ファイル単位でしか分散処理できため、巨大なファイ ルは事前に分割しておく必要がある
  • 46. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 列指向フォーマット & 圧縮の使い方 • CREATE 文で指定するだけ • データは事前にフォーマット変換 & 圧縮の必要あり • 分析クエリを実行する際に、使用するカラムだけを 読み込むようになる SELECT month , action_category , COUNT(action_category) FROM action_log WHERE year = 2016 AND month >= 4 AND month < 7 GROUP BY month , action_category CREATE EXTERNAL TABLE IF NOT EXISTS action_log ( user_id string, action_category string, action_detail string year int, month int, day int ) PARTITIONED BY (year int, month int, day int) STORED AS PARQUET LOCATION 's3://athena-examples/action-log/’ TBLPROPERTIES ('PARQUET.COMPRESS'='SNAPPY');
  • 47. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. データレイアウトの最適化
  • 48. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. パーティション • S3のオブジェクトキーの構成を CREATE TABLE に反映 • WHERE で絞ったときに当該ディレクトリだけ読み込む • AWS Glue Data Catalog 使用時 1テーブルあたりの最大パーティション数は 10,000,000 CREATE EXTERNAL TABLE IF NOT EXISTS action_log ( user_id string, action_category string, ) PARTITIONED BY (year int, month int, day int) STORED AS PARQUET LOCATION 's3://athena-examples/action-log/’ TBLPROPERTIES ('PARQUET.COMPRESS'='SNAPPY'); s3://athena-examples/action-log/year=2017/month=03/day=01/data01.snappy.parquet
  • 49. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. パーティションの効果的な使い方 • WHERE で読み込み範囲を絞るときに、頻繁に使われる カラムをキーに指定する • 絞り込みの効果が高いものが向いている • ログデータの場合、日付が定番 • “year/month/day” と階層で指定する SELECT month , action_category , action_detail , COUNT(user_id) FROM action_log WHERE year = 2016 AND month >= 4 AND month < 7 GROUP BY month , action_category , action_detail 以下の Amazon S3 パスだけが読み込まれる s3://athena-examples/action-log/year=2016/month=04/day=01/ s3://athena-examples/action-log/year=2016/month=04/day=02/ s3://athena-examples/action-log/year=2016/month=04/day=03/ ... s3://athena-examples/action-log/year=2016/month=06/day=30/
  • 50. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. パーティションの分け方 タイプ 形式 特徴 カラム名あり (Hive 標準) col1=val1/col2=val2/ • CREATE TABLE をしてから、MSCK REPAIR TABLE を実行すればOK • パーティションが増えた際も、MSCK REPAIR TABLE を1回実行すればOK • この形式にするために前処理が必要 カラム名なし val1/val2/ • 自然な形式 • MSCK REPAIR TABLE が使えないため、ALTER TABLE ADD PARTITION を、パーティション数 実行する必要がある • 後からパーティションが増えた際、増えた分だけ ALTER TABLE ADD PARTITION
  • 51. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Partition Projection Partition Projection を使用すると、非常に多くのパーティションがあるテーブル に対するクエリ処理を高速化し、パーティション管理を自動化することが可能 • パーティションプルーニングでは、メタデータを収集し、クエリに適用される パーティションにだけに処理が実行されるので、多くの場合、クエリが高速化 する • しかしながら、テーブルに非常に多くのパーティションがある場合、AWS Glue Data Catalog に対するパーティション取得 API(GetPartitions) の呼び出し がクエリパフォーマンスに影響する可能性が生じる • Partition Projection を利用するとパーティション情報を Athena 自身で計算で きるようになるため、GetPartitions 呼び出しの影響を回避し、パーティショ ンプルーニングによるクエリ高速化の恩恵を享受できるようになる https://docs.aws.amazon.com/ja_jp/athena/latest/ug/partition-projection.html
  • 52. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Partition Projection ユースケース • 非常に多くのパーティションがあるテーブルに対するクエリが思ったほどすぐに完了しない場合 • データに新しいパーティションが作成されたとき、定期的にパーティションをテーブルに追加し ている場合 • 非常に多くのパーティション化されたデータが S3 に保存されていて、メタデータストアで管理 するのが現実的でなく、クエリで参照する対象のデータがほんの一部の場合 Projection 可能なパーティション構造 Partition Projection はパーティションが予測可能なパターンに従う場合に利用する 整数 – 整数の連続シーケンス: 例) [1, 2, 3, 4, ..., 1000] や [0500, 0550, ..., 2500] など 日付 – 日付/日時の連続シーケンス: 例) [20200101, 20200102, ..., 20201231] 列挙値 – 列挙値の有限セット : 例) 空港コードや AWS リージョンなど https://docs.aws.amazon.com/ja_jp/athena/latest/ug/partition-projection.html Projection Type パターン 例 整数 整数の連続シーケンス [1, 2, 3, 4, ..., 1000] や [0500, 0550, ..., 2500] など 日付 日付/日時の 連続シーケンス [20200101, 20200102, ..., 20201231]、 [1-1-2020 00:00:00, 1-1-2020 01:00:00, ..., 12-31-2020 23:00:00] など 列挙値 列挙値の有限セット 空港コードや AWS リージョンなど
  • 53. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Partition Projection – 設定例 • テーブル作成時に Partition Projection を設定しておくと、設定に基づいて パーティションが存在する場所を Athena に通知することが可能 • 次の CREATE TABLE の設定例では、日付範囲の上限に NOW を使用すること で、1時間毎に新しいデータが自動的にクエリ可能になる ... LOCATION "s3://bucket/prefix/" PARTITIONED BY ( datehour STRING ) TABLE PROPERTIES ( "projection.enabled" = "true", "projection.datehour.type" = "date", "projection.datehour.range" = "2018/01/01/00,NOW", "projection.datehour.format" = ""yyyy/MM/dd/HH", "projection.datehour.interval" = "1", "projection.datehour.interval.unit" = "HOURS", "storage.location.template" = "s3://bucket/prefix/${datehour}” https://docs.aws.amazon.com/ja_jp/athena/latest/ug/partition-projection-kinesis-firehose-example.html
  • 54. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. クエリの最適化
  • 55. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. クエリの最適化 1. ORDER BY を最適化する LIMIT 句をつけることで、ORDER BY の負荷を軽減 2. JOIN を最適化する 結合の際には、大きなテーブルを左側に、小さなテーブルを右にする 3. GROUP BY を最適化する 複数カラムを指定する場合には、カーディナリティの高いカラムを前に持ってくる 4. LIKE 演算子を最適化する クエリ内で複数の LIKE 演算子を使う場合には、RegEx におきかえた方が高速になる 5. 近似関数を使う 多少の誤差を許容できるなら、COUNT DISTINCT でなく APPROX_DISTINCT() を使用 6. 必要なカラムだけを読みこむ できるだけ * を使わず、必要なカラムだけを指定して SELECT 文を実行 https://aws.amazon.com/jp/blogs/news/top-10-performance-tuning-tips-for-amazon-athena/
  • 56. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Athena の運用管理
  • 57. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Workgroups を利用した利用量・コストの管理 • 同一アカウント内で、仮想的なワークグループを作成することが可能 • ワークグループごとに下記設定を実施可能 • クエリワークロードの分離 • クエリメトリクスの分離 • クエリ毎のスキャン量上限設定 • スキャン量が一定を超えたらアラームをあげることも可能 https://docs.aws.amazon.com/ja_jp/athena/latest/ug/user-created-workgroups.html https://aws.amazon.com/jp/about-aws/whats-new/2020/03/amazon-athena-adds-support-for-managing-athena-workgroups-using-aws-cloudformation/
  • 58. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon EventBridge を利用したクエリの監視 • EventBridge (旧名 Amazon CloudWatch Events) を使用して、クエリの状態に 関するリアルタイムの通知を受け取ることが可能に • クエリの状態が移行する(たとえば、実行中から成功またはキャンセルなど)と、 Athena はそのクエリ状態移行に関する情報を含むイベントを EventBridge に 発行する • 発行されたイベントに対応したルールを準備することで、下記のようなアク ションを自動化することが可能 • クエリが成功した場合に Lambda 関数を呼び出して後続処理を実行 • クエリが失敗した場合にアラート通知を発行する
  • 59. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon Athena のメトリクス Athena の性能を把握するのに役立つ,以下の CloudWatch メトリクスがある メトリクス 概要 EngineExecutionTime クエリの実行にかかったミリ秒数 ProcessedBytes クエリ内でスキャンされたデータのメガバイト数 Query Planning Time クエリの計画を立てるためにかかるミリ秒数 データソースからテーブルパーティションを取得する時間も 含まれる Query Queuing Time クエリがリソースを待ってキューに並んでいたミリ秒数 Service Processing Time クエリエンジンがその実行を完了した後に結果を書き込むの にかかるミリ秒数 Total Execution Time クエリを実行するのに Athena が費やした全体のミリ秒数
  • 60. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. CloudTrail を利用した利用状況のロギング • CloudTrail は、Athena の全ての API コールをイベントとしてキャプチャする • CloudTrail によって収集される下記情報から、Athena に対してどのような リクエストが行われたかを判断可能 • リクエストの作成元の IP アドレス • リクエストの実行者 • リクエストの実行日時 • Athena で実行されたアクション • 証跡を作成する場合は、Athena のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることが可能 https://docs.aws.amazon.com/ja_jp/athena/latest/ug/monitor-with-cloudtrail.html
  • 61. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Athena のセキュリティ
  • 62. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 暗号化 • 保管時の暗号化 • 暗号化データについて、以下に対応 • 暗号化された Amazon S3 データに対するクエリ • 結果データを暗号化して Amazon S3 に保存 • AWS Glue Data Catalog 内のデータ • 暗号化方式は以下の 3 種類 • SSE-S3 • SSE-KMS • CSE-KMS • 暗号化方式は、クエリと保存で別々のものを指定可能 • 転送時の暗号化 • Athena と Amazon S3 間、Athena と Athena にアクセスするカスタマー アプリケーション間で、転送時のデータに Transport Layer Security (TLS) 暗号化を使用 https://docs.aws.amazon.com/ja_jp/athena/latest/ug/encryption.html
  • 63. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. AWS Lake Formation による Fine Grained Access Control • シンプルな権限の Grant/Revoke によりデータアクセスを制御 • データカタログのデータベース、テーブル、列に対して権限を指定可能 • 特定ユーザーに付与されたポリシーの確認も可能 • すべてのデータアクセスを1箇所で監査 ユーザー IAM ユーザー、 ロール Active Directory ユーザー (フェデレーション) エンドサービスは Amazon S3から直接 関連データを検索 テーブルTに 対するクエリ 1 テーブルTへの アクセスリクエスト2 3テーブルTへアクセスする ための一時証明書を返却 Amazon S3 4 テーブルTに含まれる オブジェクトへの リクエスト クエリ結果の返却 5 Amazon Athena データ カタログ アクセス 制御 AWS Lake Formation https://docs.aws.amazon.com/ja_jp/lake-formation/latest/dg/access- control-overview.html
  • 64. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. AWS Glue Data Catalog のリソースベースポリシー • AWS Glue Data Catalog を用いることで、IAM ユーザーやロールに対して、 テーブル単位でのアクセス権限を設定することが可能 • 権限のないテーブルは、Amazon Athena 側でも表示されなくなる • AWS Glue Data Catalog はメタデータの管理しか行わないので、別途 Amazon S3 へのアクセスをバケットポリシーで制限する必要がある • 制限されたバケットに対する Athena からのアクセスは aws:CalledVia 条件キー で制御する
  • 65. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. VPCエンドポイント • インターネットを介さずに、Virtual Private Cloud (VPC) のインターフェイス VPC エンドポイントを使用して、Athena に直接接続可能 • インターフェイス VPC エンドポイントを使用すると、VPC と Athena の間の 通信は完全に AWS ネットワーク内で実施されます • VPC エンドポイントのポリシーを作成して、以下を指定できます • アクションを実行できるプリンシパル • 実行可能なアクション • このアクションを実行できるリソース https://docs.aws.amazon.com/ja_jp/athena/latest/ug/interface-vpc-endpoint.html
  • 66. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. サービス上限と料金
  • 67. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. リソース制限(クエリ関連) Amazon Athena の 1 アカウントあたりのクエリ関連のリソース制限は以下の通り • 最大同時クエリ実行数: 20 (DDL とクエリそれぞれで 20 ずつ) • クエリタイムアウト時間: 30 分 • 1 秒あたりの API 実行数制限(下表) API 名 デフォルト値 バースト時の値 BatchGetNamedQuery,BatchGetQueryExecution ListNamedQueries, ListQueryExecutions 5 最大 10 CreateNamedQuery, DeleteNamedQuery, GetNamedQuery StartQueryExecution, StopQueryExecution 5 最大 20 BatchGetQueryExecution 20 最大 40 StartQueryExecution, StopQueryExecution 20 最大 80 GetQueryExecution, GetQueryResults 100 最大 200 https://docs.aws.amazon.com/athena/latest/ug/service-limits.html
  • 68. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. リソース制限(データベース/テーブル関連) AWS Glue の 1 アカウントあたりのデータベース/テーブル関連の制限は 以下の通り • データベース数: 10,000 • データベースあたりテーブル数: 200,000 • テーブルあたりパーティション数: 10,000,000 • テーブル数: 1,000,000 • パーティション数: 20,000,000 • 関数の数: 100 https://docs.aws.amazon.com/ja_jp/general/latest/gr/glue.html#limits_glue
  • 69. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. 料金 • クエリ単位の従量課金で、基本は S3 のデータスキャン 1TB につき 5 USD • 最低スキャン量は 10MB で、それ以下のものは 10MB に切り上げ • スキャン量の MB 未満の端数は切り上げて計算 • スキャンの計算は、S3 上のデータサイズに基づいて行われるため、圧縮するだ けで課金額を削減可能 • DDL および実行に失敗したクエリは、課金の対象外 • 別リージョンの Amazon S3 バケットからデータを読み込む場合は、別途 S3 のデータ転送料金が課金される • 裏側で実行される Amazon S3 API リクエストについては、S3 側で別途課金 • AWS Glue Data Catalog の利用についても、別途課金 • VPC エンドポイント利用時、インターフェイス VPC エンドポイント料金が 適用、課金される https://aws.amazon.com/jp/athena/pricing/
  • 70. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. リージョン Amazon Athena は、東京リージョンを含む以下のリージョンで利用可能 アメリカ大陸 • 北バージニア • オハイオ • オレゴン • 北カリフォルニア • モントリオール • サンパウロ • GovCloud (米国西部) • GovCloud (米国東部) 欧州/中東/アフリカ • フランクフルト • アイルランド • ロンドン • パリ • ストックホルム • バーレーン アジアパシフィック • シンガポール • 東京 • シドニー • ソウル • ムンバイ • 香港 • 北京 • 寧夏
  • 71. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. まとめ
  • 72. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. まとめ • Amazon Athena は、Amazon S3 上のデータに対して、標準 SQL による インタラクティブクエリを実行して、データ分析を行うことができる サービス • データの持ち方やクエリの記述を工夫することで、より低いコストで、 より高速にクエリを実行することが可能 • 性能改善・運用改善につながる様々な機能追加を行なっている • 安全にデータ分析を実施可能な機能が揃っている
  • 73. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. Q&A お答えできなかったご質問については AWS Japan Blog 「https://aws.amazon.com/jp/blogs/news/」にて 資料公開と併せて、後日掲載させていただきます。
  • 74. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. AWS の日本語資料の場所「AWS 資料」で検索 https://amzn.to/JPArchive
  • 75. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. で[検索]AWS イベント 毎週 ”W-A 個別技術相談会” を実施中 • AWS のソリューションアーキテクト (SA) に 対策などを相談することも可能 • 申込みはイベント告知サイトから (https://aws.amazon.com/jp/about-aws/events/) AWS Well-Architected 個別技術相談会
  • 76. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark. ご視聴ありがとうございました AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive