Next Generation Redshift
# Next Generation Redshift
https://d1.awsstatic.com/webinars/jp/pdf/services/20200218_AWS_BlackBelt_NextGenRedshift.pdf
https://tech-athagi.hatenablog.jp/entry/2020/05/13/003422
の内容のRedshift の情報からどのように機能が強化されていくかの話です。
## 進化の歴史
2012年
- 基本のアーキテクチャ
- シェアードナッシング + MPP(Massively Parallel Processing)アーキテクチャ
- 各ノードがリソースを共有しない
- データを複数のコンピュートノードに分散させ、各ノードで並列処理することで分析クエリに対する処理スループットを向上させるアプローチ
- データはユーザー管理のS3からロード&あんロード
- 自動バックアップ&リストアはRedshiftが管理するS3領域
- データレイクという考え方
- 考えかた
- 構造・半構造・非構造すべてのデータをスケールする形で一箇所に集めて保存するもの
- 的せるにアクセスコントロールを定義してセキュアに扱える
- 組織内のデータアクセスを可能とするもの
- 新しいデータ分析を素早く簡単に実行することができるもの
- AWSのデータレイクはS3
- そこでRedshiftからRedshift Spectrum でデータレイクに拡張
- Redshift からS3へのクエリ実行エンジン
- 頻繁にアクセスされるキョッキンデータをRedshift データウェアハウスに起き、過去データはS3に奥
- 料金を抑えるためのtips
- 圧縮効率が高いこととデータの利用効率が高いカラムナフォーマットを利用
- 100MB - 1GB 程度に分割
- パーティショニングする
- 効果的なクエリの記述
- より大規模になるとピークタイムにパフォーマンス低下が見られるようになる
- シェアードナッシング型とシェアードストレージ型で長所と短所がことなる
- RA3インスタンス
- アーキテクチャ
- リーダーノード
- コンピュートノード
- マネージドストレージ
- 特長
- 使い分け
- より汎用的に利用できるRedshift Spectrum
- 独自フォーマットを利用し、よりパフォーマンスを出すためのRA3
- AQUA(Advanced Query Accelerator) for Amazon Redshift
- RA3の拡張
- コンピュートノードとマネージドストレージの間にAQUAという分散型ハードウエアアクセラレーション処理レイヤーを挟む(10倍高速に)
- プッシュダウン&スケールアウト計算レイヤー
- AQUA はフィルタ&集計済み結果をRA3に返す
- コンピュートノードからAQUAノードに処理をプッシュダウンすることでネットワーク転送データを最小化
## その他の(気になった)新機能
- 新しいデータがたGeomerty
- 空間データの分析
- データレイクエスクポート
- Parquet でデータを共有(オープンな列指向フォーマット)
- フェデレーテッドクエリ
- RDS/Aurora PostgreSQLに対して直接クエリ可能に
## 雑感
Redshift のアーキテクチャ&機能強化の変遷をたどる内容であった。
現在AWSとしてはRA3を推奨していて、パフォーマンス低下が見られるレベルではAQUA という拡張を利用するのが良いという印象。
ただ、簡単に利用する分にはRedshift Spectrum の方が、S3に直接アクセスしてもらえればいいと思うのでユースケース次第でどのインスタンスを選ぶかの選択が変わってくると思う。
近年データ分析が価値を持つようになってきて活発に機能追加がされているAWSサービスのうちの一つだという印象を持った。