Redshift概要

# 背景・目的
- Redshiftを触る機会があったので、基本的な機能や特徴を整理する。

# 内容
## 特徴
- 毎年、導入事例やフィードバックに基づいて数百個の機能と製品の改善項目を[リリース](https://aws.amazon.com/redshift/whats-new/?amazon-redshift-whats-new.sort-by=item.additionalFields.postDateTime&amazon-redshift-whats-new.sort-order=desc&awsm.page-amazon-redshift-whats-new=1)

- 誰でも簡単に分析できる
    - 管理を気にせずに、数秒以内にデータからインサイトを得る。

- すべてのデータを分析する
    - 複雑なデータに対して、リアルタイムの予測分析を実行する事が可能。

- 規模に応じたパフォーマンス
    - クエリのレスポンスを向上させる自動最適化により、他のクラウドDWHサービスの最大3倍優れたコストパフォーマンスを実現が可能。

- 最高の安全性とコンプライアンス
    - 最も厳しい要件を満たすことができる包括的なセキュリティ機能が備わっている。


## 機能
上記の、特徴を実現するための機能を整理する。

|特徴 |機能 |説明|
|:--|:--|:--|
|誰でも簡単に分析できる| [Servereless](https://qiita.com/zumax/items/84aea52ed4cf611cefe8)|2022/2現在プレビュー。数秒以内に簡単に分析を実行して拡張可能。|
||[クエリエディタv2](https://qiita.com/zumastee/items/5ebad38a6669f499b9b6#6-%E3%83%81%E3%83%BC%E3%83%A0%E3%81%A8%E3%81%97%E3%81%A6%E3%81%AE%E5%85%B1%E5%90%8C%E4%BD%9C%E6%A5%AD%E3%81%A8%E5%85%B1%E6%9C%89)|Webベースのアナリストワークベンチ。SQLクエリ、分析、視覚化、注釈を作成して共有が安全に可能。|
||自動テーブルデザイン|ワークロードをモニタリングして、高度なアルゴリズムを仕様して、データの物理レイアウトを改善し、クエリの速度を最適化する方法を見つける。<BR>最適な並べ替えキーと分散キーを選択して、クラスタのワークロードのパフォーマンスを最適化する。<BR>追加機能の**自動バキューム削除**、**自動テーブルソート**、**自動分析**によりクラスタを手動でメンテナンス、調整する必要がない。| 
||独自のツールを使用したクエリ|以下の手段でアクセス可能<BR>・コンソールアクセス<BR>・SQLクライアントツール<BR>・ライブラリ<BR>・QuickSight<BR>・Tableau<BR>・PowerBI<BR>・QueryBook<BR>・Jupyter Notebook| 
||Redshiftと対話するためのシンプルなAPI|クラウドネイティブでコンテナ化されたサーバレスWebアプリケーションとイベント駆動型アプリケーションでデータにかんたんにアクセス可能。<BR>Redshift Data APIにより、ドライバの構成、DB接続を管理する必要がない。APIが提供するAPIエンドポイントを呼び出しSQLコマンドを実行することが可能。なお、Data APIは非同期である。| 
||耐障害性|クラスタの状態あh常時モニタリングされている。障害があるドライブから自動的にデータが再度レプリケートされ、必要に応じてノードの交換が行われる。クラスターはデータの損失やアプリケーションの変更なしに代替のAZに再配置が可能。| 
|すべてのデータを分析する|フェデレートクエリ|１つ以上のRDSと、Auroraに対してライブデータのクエリを実行可能。データを移動が不要。| 
||[データレイクにクエリを実行し、データレイクとの間でデータをエクスポート](https://qiita.com/zumastee/items/84534883f8ba8ffd0a41)|オープンフォーマットでデータのクエリとデータレイクへのデータの書き込みを簡単に行える。以下のフォーマットに対してクエリを実行できる。<BR>・Parquet<BR>・ORC<BR>・JSON<BR>・Avro<BR>・CSV<BR>SQLを使用してファイルを形式としてParquetを指定することで、Redshiftにより自動的にデータのフォーマットとデータのS3への移動が行われる。これによりアクセス頻度の高いデータをRedshiftに保存しながら、最大エクスバイト規模のデータをS3で維持できる。<BR>Redshiftからデータレイクにエクスポートすることで、Athena、EMR、SageMakerのサービスでデータを更に分析可能。| 
||AWSサービス統合|AWSサービス、DB、機械学習サービスとのネイティブ統合により完全な分析ワークフローを簡単に処理できる。<BR>例）<BR>・Lake Formationにより、安全なデータレイクを数日で簡単にセットアップできる。<BR>・GlueによりRedshiftにデータをETLが可能。<BR>・FirehoseによりRedshiftにストリーミングをキャプチャ、変換、ロードできほぼリアルタイムに分析が可能。<BR>・EMRにより、Hadoop/Sparkを使用してデータを処理し、出力をRedshiftにロードしてBIや分析を行える。<BR>・QuickSightによりセッション単位でレポートやダッシュボードの作成、可視化が可能。<BR>・SageMakerでMLのワークロードが実行可能<BR>・SCTとDMSを使用して移行を加速可能<BR>・KMS、CWと統合することでセキュリティ、モニタリング、コンプライアンスを実現。<BR>・Lambda UDFにより、AWSパートナーサービスと統合したり、DDB、SageMakerなど他の一般的なAWSサービスの利用が可能。|
||パートナーコンソールの統合|データのオンボーディングを加速し、記帳なビジネスインサイトを数分で作成可能。<BR>これらのソリューションにより以下のアプリケーションからRedshiftにデータを取り込み、分析しインサイトを得ることが可能。<BR>・Salesforce<BR>・GA<BR>・Facebook Ads<BR>・Slack<BR>・Jira<BR>・Splunk<BR>・Marketo|
||[データ共有](https://qiita.com/zumax/items/555efda12bd1c3a65343)|データを共有しマルチクラスターでのデプロイを拡張できる。データのコピーや移動することなく、全体で瞬時に詳細かつ高速なデータアクセスが可能。<BR>同一、異なるアカウント、リージョン間で安全に共有可能|
|| AWS Data Exchange for Amazon Redshift | ETLデータを抽出、変換、ロードせずに、独自のRedshiftクラスタからRedshiftデータセットをクエリ可能。|
||Redshift機械学習|SQLを使用して、SageMakerモデルを簡単に作成、トレーニング、デプロイできるようにする。|
||高度な分析のネイティブサポート|・空間データ処理<BR>HyperLogLogスケッチ<BR>DateとTimeデータ型<BR>半構造化データ処理<BR>サードパt−費性ツールとの統合|
|規模に応じたパフォーマンス|RA3インスタンス|他のすべてのクラウドDWHサービスの最大3倍優れたコストパーフォマンスを実現|
||AQUA| Advanced Query Accelerator 。特定のタイプのクエリを自動的にブーストすることで、最大10倍高速に実行可能な分散型のHWアクセラレーションキャッシュ。<BR>高速SDD、FPGA、AWS Nitroを使用して大規模なデータセットをスキャン、フィルタリング、集約するクエリを高速化する|
|| 効率的なストレージと高パフォーマンスのクエリ処理 | GB〜PB規模のデータセットに対して、高速にクエリを実行できる。<BR>カラムナーストレージ、データ圧縮、ゾーンのマッピングによりクエリ実行に必要なI/Oの量が削減される。エンコーディングには、LZO、Zstandardなどのエンコード以外にも数値、日付/時刻型向けの専用の圧縮エンコーディングAZ64も提供している。|
||無制限の並列処理|数千の同時実行クエリがあったとしても一貫して高速のパフォーマンスが提供される。数秒で一時的な容量を追加される。|
||マテリアライズドビュー|、ダッシュボード作成、ビジネスインテリジェンス (BI) ツールからのクエリ、抽出、変換、およびロード (ELT) データ処理ジョブなど、反復的または予測可能な分析ワークロードで今までよりも大幅に速いクエリパフォーマンスを達成|
||機械学習でスループットとパフォーマンスを最大化|変化するワークロードや同時実行ユーザのアクティビティであっても高いスループットとパフォーマンスを実現する。<BR>・ショートクエリアクセラレーション（SQA）では、ダッシュボードなど、アプリケーションから高速キューに短いクエリを送信し、大規模なクエリの後ろで長い間待機するのではなく、即座に処理される。<BR>WLMでは、機械学習を使用してメモリと同時実行を動的に管理することで、クエリのスループットを最大限に高める。| 
||結果のキャッシュ|繰り返し実行されるクエリに対して1秒未満の応答時間を実現している。同じクエリを繰り返し実行するダッシュボード、可視化ツール、BIツールでは、パフォーマンスが大幅に向上する。|
||ペタバイト規模のデータウェアハウス|コンソールや、APIコールによりDWHのノード数、ノードタイプを簡単に変換可能。スケールアップ、スケールダウンが可能。<BR>マネージドストレージにより容量gあ自動的に追加され、最大8PBの圧縮データのワークロードをサポートする。<BR>Spectrum機能を使用して、データのロードや返還をおこなうことなく、S3にあるPB規模のデータに対してクエリを実行できる。|
|| 柔軟な料金オプション |最もコスト効率に優れたDWH。<BR>1Hあたり0.25USDから開始でき、1年間、1TBあたり1000USDまでスケールアウトできる。|
||予測不可能なワークロードに対しても予測可能なコスト|各クラスタで1日あたり最大1Hの無制限実行スケーリングクレジットが得られる。97%のお客様の同時実行性に関するニーズを十分に満たす。|
||ワークロードにとって最良の価値を得られるノードタイプを選択|3つのインスタンスタイプの中から選び最適化できる。<BR>・RA3ノード。コンピューティングとは別にストレージをスケールできる。個別のストレージレイヤにデータを保存する高パフォーマンスのDWHを実現できる。<BR>・Dense Compute(DC)ノード。高速CPU、大容量RAM、SSDをしよ空いて高パフォーマンスのDWHを作成可能。データが500GBを超える場合に最適な選択肢。<BR>・Dense Storage(DS2)ノード。3年間のRIを購入すると、HDDを使用して大規模なDWHを低コストで作成可能。DS2クラスタからRA3クラスタに移行して、DS2と同じコストで最大2倍のパフォーマンスとストレージの増加を実現している。|
|最高の安全性とコンプライアンス|エンドツーエンドの暗号化|移動中のデータの保護にSSL，保管中のデータの保護にはHWアクセラレーション対応のAES−２５６暗号化が使用される。デフォルトでRedshiftでキー管理する|
||ネットワーク分離|DWHクラスタへのアクセスを制御するためのFWを設定できる。<BR>VPC内で実行もできる。<BR>既存のインフラに接続する場合は、IPsec VPNを使用。|
||監査とコンプライアンス|CTと統合されているためAPIコールを監査できる。<BR>SQL操作はすべてログに記録される。ログにアクセスするには、システムテーブルに対するSQLクエリを実行するか、S3上の安全な場所にログを保存する。<BR>Redshiftは、SOC1、SOC2、SOC3、PCI DSS Level1の要件に準拠している。|
||トークナイゼーション|Lambda UDFを使用すると、Redshift　SQLから呼び出し可能。他のサービス、サードパーティ製品との密接な統合を実現可能。UDFを記述しProtegrityなどのベンダーと統合することで、外部トークン化、データマスキング、データの識別、匿名化を有効化できる。|
||きめ細かいアクセスコントロール|行と列レベルのきめ細かいセキュリティコントロールに寄ってアクセス権を与えられたデータのみに表示される。Lake Formationと統合されているので、Lake Formationの列レベルのアクセスコントロールはRedshift内のクエリにも適用される。|

# 考察
- 今後、上記の機能を一つ一つ試していく。

# 参考
https://aws.amazon.com/jp/redshift/features/