Amazon Redshift

ペタバイト規模のデータを列指向ストレージと大規模並列処理で高速に分析できるフルマネージドなクラウドデータウェアハウスサービス

概要

Amazon Redshift は、大規模なデータ分析に特化したフルマネージドなクラウドデータウェアハウスです。列指向ストレージ、大規模並列処理 (MPP)、自動圧縮、ゾーンマップなどの技術により、ペタバイト規模のデータに対する複雑な分析クエリを高速に実行できます。Redshift Serverless を使えば、データウェアハウスのプロビジョニングや管理なしに、クエリの実行時間に基づく従量課金でデータ分析を開始できます。Redshift Spectrum を使えば、S3 上のデータを Redshift にロードすることなく直接クエリでき、データレイクとデータウェアハウスを統合した分析基盤を構築できます。AQUA (Advanced Query Accelerator) はストレージレイヤーにコンピューティング能力を追加し、特定のクエリパターンを最大 10 倍高速化します。

列指向ストレージと MPP の仕組み

Redshift はリーダーノードとコンピュートノードで構成される MPP (大規模並列処理) アーキテクチャを採用しています。リーダーノードがクエリの解析と実行計画を作成し、コンピュートノードがデータの保存と並列処理を実行します。列指向ストレージにより、分析クエリで必要な列のみを読み取るため、行指向データベースと比較して I/O を大幅に削減できます。データは自動的に圧縮され、データの特性に応じて最適なアルゴリズムが自動選択されます。Azure Synapse Analytics も同様の MPP アーキテクチャを採用していますが、Redshift が PostgreSQL 互換 SQL を使用するのに対し、Synapse は T-SQL (SQL Server 互換) を使用するため、既存のスキルセットに応じて選択が分かれます。

分散キーとソートキーによるクエリ最適化

Redshift のクエリパフォーマンスはテーブル設計に大きく依存します。分散キー (DISTKEY) は JOIN で頻繁に使用されるカラムに設定し、結合対象のデータが同一ノードに配置されるようにすることで、ノード間のデータ転送 (シャッフル) を最小化します。ソートキー (SORTKEY) を適切に設定すれば、ゾーンマップによるブロックスキップが効果的に機能し、WHERE 句のフィルタリングで読み取るデータ量を大幅に削減できます。RA3 インスタンスはコンピュートとストレージを独立してスケールでき、Redshift Managed Storage により使用頻度の低いデータを S3 に自動オフロードします。データウェアハウスの関連書籍 (Amazon) では、分散キー設計のベストプラクティスが解説されています。

Spectrum と Serverless によるデータレイク統合

Redshift Spectrum を使えば、S3 上の Parquet、ORC、CSV、JSON などのデータを Redshift にロードすることなく直接クエリでき、データレイクとデータウェアハウスを統合した分析基盤を構築できます。Redshift のローカルテーブルと S3 上の外部テーブルを JOIN するクエリも実行可能で、ホットデータは Redshift に、コールドデータは S3 に配置するコスト効率の高い構成が実現します。Redshift Serverless は RPU (Redshift Processing Unit) ベースの従量課金で、クエリを実行していない時間は課金されないため、断続的な分析ワークロードではプロビジョンドクラスターより大幅にコストを抑えられます。Concurrency Scaling を有効にすると、同時実行クエリが増加した際に自動的にクラスターを追加し、待ち時間なく処理を継続します。AQUA (Advanced Query Accelerator) はストレージレイヤーでフィルタリングや集計を実行し、大規模スキャンを最大 10 倍高速化します。

共有するXB!