38
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Michalis Petropoulos (ミカリス ピタポリス) Senior Software Development Manager Amazon Redshift July 5, 2017 Introduction to Amazon Redshift Spectrum

Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Michalis Petropoulos (ミカリス ピタポリス) Senior Software Development Manager

Amazon Redshift

July 5, 2017

Introduction to

Amazon Redshift Spectrum

Page 2: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

What is Big Data?

取り扱うデータセットが非常に膨大かつ多様なフォーマットに

なっているのであれば、「Innovating」 を始めることが必要

どのように

「収集」「蓄積」「処理・加工」「分析」「共有」

を行うのか?

Page 3: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Generate

Collect & Store

Analyze

Collaborate & Act

AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成されているケースもあります

ビッグデータの取り扱いにおける課題

Page 4: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Generate

Collect & Store

Analyze

Collaborate & Act

AWSご利用企業では 1日あたり1ペタバイト以上のデータが生成されているケースもあります

Amazon S3にあらゆるデータを収集&蓄積

Amazon S3に ペタバイト、

エクサバイト級の データを蓄積

Page 5: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Generate

Collect & Store

Analyze

Collaborate & Act

ここの制約が 大きいと

分析できない データが増加 していく

収集&蓄積後、どのようにそのデータを分析するのか?

AWSご利用企業では 1日あたり1ペタバイト以上のデータが生成されているケースもあります

Amazon S3に ペタバイト、

エクサバイト級の データを蓄積

Page 6: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

1990 2000 2010 2020

Generated DataAvailable for Analysis

Sources: Gartner: User Survey Analysis: Key Trends Shaping the Future of Data Center Infrastructure Through 2011 IDC: Worldwide Business Analytics Software 2012–2016 Forecast and 2011 Vendor Shares

Data Volume

Year

現在の課題“ダークデータ”問題 – 生成された多くのデータが分析されない

データ量

生成されたデータ

分析可能なデータ

Page 7: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

あえて “OR” で比較すると

Amazon EMR

S3へのダイレクトアクセス

数千ノードへのスケールアウト

オープンなデータフォーマット

ポピュラーなフレームワーク

思い付きとコードで何でも可能

Amazon Redshift

ローカルディスクに対する超高速な パフォーマンス

洗練されたクエリー最適化機能

ジョインしやすいデータフォーマット

標準SQLによるクエリー

データウェアハウス用途に最適化

Page 8: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

だけど、自分で選びたくない。

自分が選ばなきゃいけないなんておかしい。

全部できるものが欲しい!

Page 9: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

私が欲しいのは、

洗練されたクエリー最適化機能 and スケールアウトな処理

超高速なパフォーマンス and オープンフォーマットのサポート

ローカルディスクに対するスループット and S3のスケール

Page 10: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

全部欲しい!

ひとつのデータ処理エンジンから、

すべてのデータ処理エンジンから自分のデータへ アクセスしたい

今も未来も

Page 11: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Amazon Redshift Spectrum

Page 12: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Amazon Redshift Spectrum 大規模スケールアウトの処理層を使い、S3上のデータに対してSQLを実行

スケールアウトで

エクサバイト級に対応

伸縮自在 & 高可用性 オンデマンド

クエリ毎の費用

大規模な同時検索の並列実行

複数クラスターから

同じデータへアクセス

ETL処理は不要

データを移動させずにクエリ

フルマネージド

標準SQLをサポート

S3 SQL

Page 13: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

クエリーを投入 SELECT COUNT(*) FROM S3.EXT_TABLE GROUP BY…

Life of a query

Amazon Redshift

JDBC/ODBC

...

1 2 3 4 N

Amazon S3 Exabyte-scale object storage

Data Catalog Apache Hive Metastore

1

Page 14: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

クエリーはリーダーノード上でオプティマイズされ、コンパイル。どのデータをローカルストレージから得て、どれをSpectrum層にリクエストするかを決定

Life of a query

Amazon Redshift

JDBC/ODBC

...

1 2 3 4 N

Amazon S3 Exabyte-scale object storage

Data Catalog Apache Hive Metastore

2

Page 15: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

クエリープランを 全コンピュートノードに送信

Life of a query

Amazon Redshift

JDBC/ODBC

...

1 2 3 4 N

Amazon S3 Exabyte-scale object storage

Data Catalog Apache Hive Metastore

3

Page 16: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

コンピュートノードはData Catalogからパーティション 情報を取得 (Dynamically prune partitions)

Life of a query

Amazon Redshift

JDBC/ODBC

...

1 2 3 4 N

Amazon S3 Exabyte-scale object storage

Data Catalog Apache Hive Metastore

4

Page 17: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

各コンピュートノードは、Amazon Redshift Spectrum層に対して複数のリクエストを送信

Life of a query

Amazon Redshift

JDBC/ODBC

...

1 2 3 4 N

Amazon S3 Exabyte-scale object storage

Data Catalog Apache Hive Metastore

5

Page 18: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Amazon Redshift Spectrum層のノードがS3のデータをスキャン

Life of a query

Amazon Redshift

JDBC/ODBC

...

1 2 3 4 N

Amazon S3 Exabyte-scale object storage

Data Catalog Apache Hive Metastore

6

Page 19: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

7

Amazon Redshift Spectrum層でデータの射影、フィルタ、ジョイン、 アグリゲーションを実行

Life of a query

Amazon Redshift

JDBC/ODBC

...

1 2 3 4 N

Amazon S3 Exabyte-scale object storage

Data Catalog Apache Hive Metastore

Page 20: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Redshiftクラスター内で、ローカルディスク上とのジョインや最終的なアグリゲーションが実行される

Life of a query

Amazon Redshift

JDBC/ODBC

...

1 2 3 4 N

Amazon S3 Exabyte-scale object storage

Data Catalog Apache Hive Metastore

8

Page 21: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

結果がクライアントに戻される

Life of a query

Amazon Redshift

JDBC/ODBC

...

1 2 3 4 N

Amazon S3 Exabyte-scale object storage

Data Catalog Apache Hive Metastore

9

Page 22: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

S3上のエクサバイト級のデータに対して 分析クエリーを投入

Page 23: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

分析クエリーを作ってみよう - #1

著者は彼女の人気シリーズで8冊目の書籍をリリースしています。 シアトル地域のために何冊注文すればよいでしょうか? 最初の数日間での販売実績は?

彼女の以前の書籍についてみてみましょう。

1 Table

2 Filters

SELECT P.ASIN, P.TITLE FROM products P WHERE P.TITLE LIKE ‘%POTTER%’ AND P.AUTHOR = ‘J. K. Rowling’

Page 24: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

分析クエリーを作ってみよう - #2

著者は彼女の人気シリーズで8冊目の本をリリースしています。 シアトル地域のために何個注文すればよいでしょうか? 最初の数日間での販売実績は?

このシリーズでこれまでに書かれた書籍の売上を計算し、上位20の値を取得します

2 Tables (1 S3, 1 local)

2 Filters

1 Join

2 Group By columns

1 Order By

1 Limit

1 Aggregation

SELECT P.ASIN, P.TITLE, SUM(D.QUANTITY * D.OUR_PRICE) AS SALES_sum FROM s3.d_customer_order_item_details D, products P WHERE D.ASIN = P.ASIN AND P.TITLE LIKE '%Potter%' AND P.AUTHOR = 'J. K. Rowling' GROUP BY P.ASIN, P.TITLE ORDER BY SALES_sum DESC LIMIT 20;

Page 25: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

分析クエリーを作ってみよう - #3

著者は彼女の人気シリーズで8冊目の本をリリースしています。 シアトル地域のために何個注文すればよいでしょうか? 最初の数日間での販売実績は?

このシリーズでこれまでに書かれた書籍の売上を計算し、初版の販売実績に関して、最初の3日間における上位20の値を取得します

3 Tables (1 S3, 2 local)

5 Filters

2 Joins

3 Group By columns

1 Order By

1 Limit

1 Aggregation

1 Function

2 Casts

SELECT P.ASIN, P.TITLE, P.RELEASE_DATE, SUM(D.QUANTITY * D.OUR_PRICE) AS SALES_sum FROM s3.d_customer_order_item_details D, asin_attributes A, products P WHERE D.ASIN = P.ASIN AND P.ASIN = A.ASIN AND A.EDITION LIKE '%FIRST%' AND P.TITLE LIKE '%Potter%' AND P.AUTHOR = 'J. K. Rowling' AND D.ORDER_DAY :: DATE >= P.RELEASE_DATE AND D.ORDER_DAY :: DATE < dateadd(day, 3, P.RELEASE_DATE) GROUP BY P.ASIN, P.TITLE, P.RELEASE_DATE ORDER BY SALES_sum DESC LIMIT 20;

Page 26: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

分析クエリーを作ってみよう - #4

著者は彼女の人気シリーズで8冊目の本をリリースしています。 シアトル地域のために何個注文すればよいでしょうか? 最初の数日間での販売実績は?

このシリーズでこれまでに書かれた書籍の売上を計算し、米国ワシントン州シアトル市における初版の販売実績に関して、最初の3日間における上位20の値を取得します

4 Tables (1 S3, 3 local)

8 Filters

3 Joins

4 Group By columns

1 Order By

1 Limit

1 Aggregation

1 Function

2 Casts

SELECT P.ASIN, P.TITLE, R.POSTAL_CODE, P.RELEASE_DATE, SUM(D.QUANTITY * D.OUR_PRICE) AS SALES_sum FROM s3.d_customer_order_item_details D, asin_attributes A, products P, regions R WHERE D.ASIN = P.ASIN AND P.ASIN = A.ASIN AND D.REGION_ID = R.REGION_ID AND A.EDITION LIKE '%FIRST%' AND P.TITLE LIKE '%Potter%' AND P.AUTHOR = 'J. K. Rowling' AND R.COUNTRY_CODE = ‘US’ AND R.CITY = ‘Seattle’ AND R.STATE = ‘WA’ AND D.ORDER_DAY :: DATE >= P.RELEASE_DATE AND D.ORDER_DAY :: DATE < dateadd(day, 3, P.RELEASE_DATE) GROUP BY P.ASIN, P.TITLE, R.POSTAL_CODE, P.RELEASE_DATE ORDER BY SALES_sum DESC LIMIT 20;

Page 27: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

S3上のエクサバイト級のデータに対して分析クエリーを投入

日次カスタマーアイテムオーダー詳細レコード: 約140TB/日(過去20年間分)

S3上の15,000のパーティション・1億9,000万ファイル(1パーティション:1日あたりの米国およびその他の地域)

処理されるデータの10億倍規模の削減が必要

1000ノードのHiveクラスタを使用してこのクエリを実行すると、5年以上かかる*

• Compression………………………………5X • Columnar file format…………………..10X • Scanning with 2500 nodes………..2500X • Static partition elimination……………..2X • Dynamic partition elimination........350X • Redshift’s query optimizer……………40X

------------------------------------------------------------- Total reduction……………………...3.5B X

* 20ノードのHiveクラスタ/1.4TBを使用して試算

(リニアにスケールと想定) * クエリは20ノード×dc1.8xlargeのAmazon

Redshiftクラスタを使用 * 実際の販売データではなく、Amazon Retailで使

用されるデータフォーマットに基づいてこのデモ用に生成

Page 28: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Amazon Redshift Spectrum:高速な処理

Amazon Redshiftのコストベースオプティマイザを活用

述部をプッシュダウンし、アグリゲーションやジョインを削減

Dynamic partition elimination により処理対象データを削減

S3データへのクエリ実行を自動的にパラレル化

Amazon Redshiftクラスター内での効率的なジョイン処理

Page 29: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Amazon Redshift Spectrum:高い費用対効果

Amazon Redshiftクラスターの料金 + S3データの1TBスキャンあたり$5

各クエリは、1000台ものSpectrum層コンピュートノードのパワーを活用

課金対象となるスキャンデータ容量の削減、

およびクエリーパフォーマンスの向上が可能

パーティション

カラムナフォーマット

データの圧縮

Page 30: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Amazon Redshift Spectrum:セキュア

End-to-end

data encryption

Alerts &

notifications

Virtual private cloud

Audit logging

Certifications &

compliance

SSEとAWS KMSを利用し、 S3上のデータを暗号化 KMS、AWS CloudHSM または オンプレミスのHSMを使用し、Amazon Redshift上のデータをすべて暗号化 ECDHEを使用した完全な先行暗号化でSSLを実行 Amazon Redshift リーダーノード、コンピュートノード、および スペクトラムノードはVPC内に配置、State保存は無し イベント特有の通知を電子メール、テキストメッセージ、またはAmazon SNSにて連携

すべてのAPIコールはAWS CloudTrailにて記録 すべてのSQLステートメントはAmazon Redshiftに記録

PCI/DSS FedRAMP

SOC1/2/3 HIPAA/BAA

Page 31: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Amazon Redshift Spectrum:標準SQL

Redshift Spectrumは既存のSQLやBIアプリケーションとシームレスに連携

複雑なジョイン、ネストクエリー、ウィンドウ関数をサポート

任意のキーでS3上のパーティションをサポート

Date, Time and any other custom keys

e.g., Year, Month, Day, Hour

Page 32: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

外部スキーマの定義とテーブルの作成

Amazon Athenaデータカタログまたは独自のApache Hive Metastoreを使用して、Amazon Redshiftで外部スキーマを定義

CREATE EXTERNAL SCHEMA <schema_name>

右記にて外部データへクエリー <schema_name>.<table_name>

Athena、Hive MetastoreクライアントまたはAmazon Redshift CREATE EXTERNAL TABLE syntaxを使用して外部テーブルを登録

CREATE EXTERNAL TABLE <table_name>

[PARTITIONED BY <column_name, data_type, …>]

STORED AS file_format

LOCATION s3_location

[TABLE PROPERTIES property_name=property_value, …];

Page 33: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Amazon Redshift Spectrum – サポート対象

ファイルフォーマット

• Parquet

• CSV

• Sequence

• RCFile

• Avro (coming soon)

• ORC (coming soon)

• RegEx/Grok (coming soon)

• soon))

圧縮

• Gzip

• Snappy

• Lzo (coming soon)

• Bz2

暗号化

• SSE with AES256

• SSE KMS with default key

カラム

• Numeric: bigint, int, smallint, float, double and decimal

• Char/varchar/string

• Timestamp

• Boolean

• DATE type can be used only as a partitioning key

テーブル

• Non-partitioned table (s3://mybucket/orders/..)

• Partitioned table (s3://mybucket/orders/date=YYYY-MM-DD/..)

Page 34: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Amazon EMRを活用したParquetおよびORCへの変換

You can use Hive CREATE TABLE AS SELECT to convert data CREATE TABLE data_converted

STORED AS PARQUET

AS

SELECT col_1, col2, col3 FROM data_source

Or use Spark - 20 lines of Pyspark code, running on Amazon EMR

• 1TB of text data reduced to 130 GB in Parquet format with snappy compression

• Total cost of EMR job to do this: $5

https://github.com/awslabs/aws-big-data-blog/tree/master/aws-blog-spark-parquet-conversion

Page 35: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

エクサバイト級のデータが無い場合でも、Amazon Redshift Spectrumは便利?

データ容量は増え続けます

平均的にDWHおけるデータ量は5年ごとに10倍に増加

Amazon Redshiftをご利用のお客さまにおいては平均1年ごとに2倍の ペースで増加

Amazon Redshift Spectrumはデータ分析をよりシンプルにします

ETLパイプライン無くデータへアクセス可能

Amazon EMR、Athena、Redshiftを利用しているチーム間で、 同じデータレイク(データ)を活用可能

Amazon Redshift Spectrumにより、可用性および同時検索実行性が向上します

共通のデータに対して、複数のAmazon Redshiftクラスターがアクセス可能

厳しいSLAが求められるジョブをアドホッククエリーから隔離可能

Page 36: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

The Emerging Analytics Architecture

Athena Amazon Athena Interactive Query

AWS Glue ETL & Data Catalog

ストレージ

サーバーレス

コンピュート

データ

処理・加工

Amazon S3 Exabyte-scale Object Storage

Amazon Kinesis Firehose

Real-Time Data Streaming

Amazon EMR Managed Hadoop

Applications

AWS Lambda Trigger-based Code Execution

AWS Glue Data Catalog Hive-compatible Metastore

Amazon Redshift Spectrum Fast @ Exabyte scale

Amazon Redshift Petabyte-scale Data Warehousing

Page 37: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

20を超えるお客さまにAmazon Redshift Spectrumプレビューにご参加いただきフィードバックを頂きました!

Page 38: Introduction to Amazon Redshift Spectrum · Generate Collect & Store Analyze Collaborate & Act AWSご利用企業では 1日あたり1ペタバイト 以上のデータが生成され

Thank you!

Questions?