AWS Redshift Update まとめ re:Invent 2018

re:Invent 2018 のKeynoteもしくはSessionで紹介された
Redshiftのアップデートまとめメモ

![redshift6.png](https://qiita-image-store.s3.amazonaws.com/0/112537/9401881a-551b-66ea-9137-933af6e07508.png)

※Session：What's New with Amazon Redshift ft. McDonald's 

## 性能向上

・クエリスループット性能はこの6カ月で 3.5倍
・実世界のワークロードでその性能改善は体感できる
　- repetitive queries ： 17倍
　- deletes ： 10倍
　- single-row inserts ： 3倍
　- commits　： 2倍

![redshift1.png](https://qiita-image-store.s3.amazonaws.com/0/112537/c67c4075-db15-bd62-3fd8-345217f56e40.png)

![redshift2.png](https://qiita-image-store.s3.amazonaws.com/0/112537/fc985fc7-a221-5638-9c47-9b073bef135f.png)

個人的には、short query accelerationやresult cash機能で、ショートクエリや同一クエリの応答は飛躍的に早くなった体感はありますが、
全てのワークロードでの大幅な体感はそこまで感じない気が。。。
ちゃんとベンチマーク取ってみようかと。

## Concurrency Scaling

バースト的なクエリキューを、一時的にスケールしたRedshiftクラスタでさばいてくれる機能。
Keynoteでも触れられたので、おそらく今回のRedshiftの目玉アップデート。

Werner氏曰く

>性能改善によって87%のユーザは、重大なクエリキューの待ち時間の問題はなくなり、一方で残り13%にその問題が残る。

Redshiftの並列実行数は15以下が推奨となっているので、同じタイミングで大量のクエリが発行されると、キューにたまり、AWS Consoleのクエリ実行状況がレインボー状態になる経験をした方多いと思います。

データサイエンティストが増え、一方でデータ増加によるETL/ELTワークロードも増えると、クエリ同時実行数に関するRedshiftの弱点が顕在化してきますが、その問題にメスを入れた待望の機能だと思います。

RedshiftのSession内での説明では、バックエンドで生成されるクラスタはEndpointは同じとのことなので、クエリを実行するユーザ側は特にConcurrency Scalingを意識する必要はなさそうです（まだPreview前なので詳細は不明ですが）

気になるのはコスト。24時間利用毎に1時間分のConcurrency Scaling用クレジットを無償提供で、一般的なユースケースで97%以上は無料で利用できるとのこと。
よりクエリキュー発生頻度が高い場合や、RI購入の場合の扱いについてどうなるか気になるところ。


![redshift3.png](https://qiita-image-store.s3.amazonaws.com/0/112537/3340dc97-a19c-6b3a-319b-53ba20fd102e.png)

## Elastic Resize

クラスタリサイズの新機能。
Redshiftクラスタサイズを増減させたい場合、従来のClassic Resizeでは、AWS Documentによると「数時間で終わることもあれば、2～3 日かかる可能性もあります。」とあり、その期間Read Onlyのみという先の読めない悪夢があります。
この方式では、既存クラスタと別に新規クラスタをバックエンドで生成し、データ移行完了後にEndpointを切り替える（ユーザ側は変更なし）という処理でしたが、Elastic Resizeは、データのテンポラリストレージにS3を利用し、既存クラスタに対して直接ノード増減を実行するようです。
そしてその実行時間は数分（5分未満）！！！

![redshift4.png](https://qiita-image-store.s3.amazonaws.com/0/112537/ac14ddc9-7fca-573c-e249-e61f31fd7437.png)

一時的なサイズアップや、ノード増減にはElastic Resizeがベストなようですが、インスタンスタイプ変更など、一部はClassic Resizeを採用する必要があるようです。

![redshift8.png](https://qiita-image-store.s3.amazonaws.com/0/112537/2a38da0a-71fd-febe-a25c-1bcd9cde79ae.png)



## Lake Formation

Redshiftの機能ではないのですが、関連する新サービス「Lake Formation」
AWS上でData Lakeを構築する際の統合管理ツール。
Andy氏曰く、数カ月かかるDate Lakeの構成を数日で完了できる　とのこと。

Formationという名前から、Cloud FormationのData Lake特化版的なイメージを推察しましたが、説明を聞く限り、アクセス制御等のセキュリティ関連のポリシーを統合管理でき、様々なデータソースやDB、カタログアクセスを容易にするとか。Previewステータスなので詳細はわかりませんが、アナリティクス系では目玉サービスの一つかと思います。

![redshift7.png](https://qiita-image-store.s3.amazonaws.com/0/112537/4e242eb9-be65-be91-54cc-f4444166415c.png)


![redshift5.png](https://qiita-image-store.s3.amazonaws.com/0/112537/9f77aad8-4f3b-89a7-e807-73340a9ca235.png)


Lake Formationについてはこちらにまとめました
https://qiita.com/suzukihi724/items/42dc8574bc046c705ce7

##Unload to Parquet

Session内でComing Soonとして紹介された、ParquetフォーマットでUnloadできる機能。
カラムナ型フォーマットであるParquetは、Spectrumなどからのアクセスで高いパフォーマンスが期待でき、SparkやGlueを活用してParquet変換をするケースが多いかと思います。
この機能が実装されれば、RedshiftでELT後にParquetでS3に格納するなどのワークフローに応用でき、便利かと。

##Intelligent Administration
日常のワークロードを元に適切な分散キーの指定を提案してくれる
パフォーマンス改善やディスク容量低減が期待できる
Coming Soon

##Intelligent Maintenance
Analyze、Vacuum、WLM Concurrency Settingを自動最適化。
地味ながら非常にうれしい機能だと思います。
Coming Soon

##Stored Procedures
PL/pgSQL形式のストアドプロシージャ対応。
スピーカー曰く、エンタープライズからマイグレーション条件で非常に要望が多かった機能とのこと。
Coming Soon

##Spectrum Request Acceleration
Spectrumの高速化機能?（詳細は不明です）
Coming Soon

##Query Editor
既にGA済機能で、AWS Consoleから直接クエリ実行できるGUI

##Redshift Advisor
既にGA済機能で、パフォーマンス最適化・コスト削減の設定提案をしてくれる機能



##参考
Werner Vogels Keynote（youtube）
https://www.youtube.com/watch?v=femopq3JWJg

Andy Jassy Keynote（youtube）
https://www.youtube.com/watch?v=ZOIkOnW640A

Amazon Redshift and the art of performance optimization in the cloud（blog）
https://www.allthingsdistributed.com/2018/11/amazon-redshift-performance-optimization.html

Performance Matters（blog）
https://aws.amazon.com/jp/blogs/big-data/performance-matters-amazon-redshift-is-now-up-to-3-5x-faster-for-real-world-workloads/

Session：Deep Dive and Best Practices for Amazon Redshift （youtube）
https://www.youtube.com/watch?v=TJDtQom7SAA

Session：What's New with Amazon Redshift ft. McDonald's（youtube）
https://www.youtube.com/watch?v=MS1zleTPmA0