6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

この記事は、次のリンク先で公開されている AWS Black Belt の内容を中心に Amazon Redshift についてまとめ、Redshift を知らない人でも概要を理解できることを目指して書きました。

YouTube - Amazon Redshift Overview【AWS Black Belt】

なお、記事の内容は2024年11月時点において、上記リンク先動画の内容、Skill Builder の講座の内容などを踏まえて筆者がまとめたものとなります。
記事の内容に誤りが含まれている可能性があることについて、予め断りを入れさせてください。

データウェアハウスサービス、その役割とは

データウェアハウス(DWH)の主な目的は、トランザクションシステム、運用データベースなどのさまざまなソースからのデータを一元化されたリポジトリに統合することです。これにより、組織は分析を目的とした、信頼できる唯一の情報源を持つことができます。

しかし、データウェアハウスを活用した大規模データ分析には課題があります。

課題のうちのひとつは、例えば次のようなものです。
従来のデータ分析アーキテクチャでは、データウェアハウスにデータを保存するまでに以下の流れを辿ります。

データソース → ETL → データウェアハウス

ETL…データの抽出、変換、ロードを意味します。データウェアハウスはリレーショナルデータを扱うことから、適切なスキーマにデータを整形してロードする必要があるためです。

上記から、データソースにある非リレーショナルデータは一度変換処理を挟まないとデータウェアハウスに取り込めず、ETLパイプラインの構築/管理に多大な工数がかかっていました。
これが従来の課題のひとつです。

そこで、AWSは新たなデータ分析アーキテクチャを提唱しています。
それが "Modern data architecture" です。

image.png
参照元:YouTube - Amazon Redshift Overview【AWS Black Belt】 ※開始5分後あたり

ここで Redshift は Analytics (分析)の役割を果たし、他の柱と相互に関係しあうことで、組織のデータアクセスを簡単にし、データの高度なガバナンスや自由なデータ活用を可能にします
(あくまで Redshift について紹介するための前座のため、この記事では Modern data architecture についてこれ以上深掘りしません。)

次の図は、 Redshift が Analytics (分析)の役割を果たすにあたって、具体的にどのようなことを行うことができるのか、を図示したものになります。

image.png
参照元:Skill Builder - Fundamentals of Analytics on AWS - Part 2 ※「データウェアハウスとは」という章

これから紹介する Redshift の詳細について理解を深めるには、上の図が参考になると思います。
特に「すべてのデータを分析する」という部分に差し掛かったら、適宜この図に戻って読み進めていただけると良いと考えます。

Amazon Redshift とは

(前置きが少し長くなりました。ここからが本論です。)

Redshift には3つの大きな特徴があります。

  1. 誰でも簡単に分析できる
  2. すべてのデータを分析する
  3. コストパフォーマンスの高さ

→多用なユースケースに適用可能なデータウェアハウスの選択肢です。

起動方法は Provisioned と Serverless から選べます。
Provisioned の場合
クラスター(ノードのグループ)は、

  • リーダノード(クエリを受信しコンパイルする。一部クエリを除き、コンピュートノードにクエリ実行を依頼する。)

  • コンピュートノード(クエリを実行して結果をリーダノードに返却する。複数ノードが並列に稼働する。)

で構成され、高速な並列処理(MPP…後述します)を実現しています。

※クラスター(ノード)のタイプは2種類あります。
DC2:コンピュートノードにてユーザデータを保存。比較的安価に利用可能。
RA3:ストレージ機能(Amazon Redshift マネージドS3バケットが使われる)をコンピュートノードから分離したことにより、ストレージ機能とコンピュート機能を個別にスケールすることが可能。

Serverless の場合
インフラストラクチャ(クラスター, ノード)の管理が不要です。

1. 誰でも簡単に分析できる

「分析」の前段階として、そもそもクラスターを簡単に起動できます。

Provisioned の場合

  • クラスターのノード数、ノードタイプを設定するだけ(後から変更可能)
  • クラスターの詳細設定(ネットワークやバックアップなど)が可能

Serverless の場合

  • 名前空間(ストレージ)とワークグループ(コンピュート)を設定
  • クラスター, ノードの設定は不要

クラスター起動後は Amazon Redshift query editor v2 を使うことで、

  • Web ベースのクエリエディタですぐにクエリ実行が可能
  • テーブル作成、データのロード、クエリ結果のグラフ化を GUI 操作で簡単に実行可能

なため、データの分析が簡単に実施できます。

さらに、ワークロードのパフォーマンスチューニングを自動化(機械学習が用いられる)してくれます。
これによって、効率的なパフォーマンスのもと、分析ワークロードを実行できます。

2. すべてのデータを分析する

先ほど登場した図に記載してある特徴を中心に、Redshift がすべてのデータをどのように分析することができるか、について説明します。

  • Amazon Redshift Spectrum
    データ移動なしでS3(ユーザ管理)のデータへのクエリが可能

  • フェデレーテッドクエリ
    他の Redshift クラスター、RDS/Aurora に対し、データ移動なしでクエリが可能

  • Amazon Redshift Data Sharing
    複数の Redshift クラスター間でデータをセキュアで簡単に共有(Amazon Redshift マネージド S3 バケットを使用)することが可能(クロスアカウント、クロスリージョンに対応)

  • AWS Data Exchange for Amazon Redshift
    AWS Data Exchange でお客様データをサブスクリプション型で購読して、そのデータを ETL なしで(Amazon Redshift Data Sharing の機能を利用することで)容易にインテグレーションすることが可能

  • Amazon Redshift ML
    SQL経由で Amazon SageMaker と連携し、機械学習モデルの作成、トレーニング、デプロイを自動で実行することが可能

  • Amazon Redshift Streaming Ingestion
    KDS と MSK からのストリーミング取り込みが可能(マテリアライズドビュー(後述します)を作成することで、S3 でステージングする必要がないためレイテンシが低い)

  • S3 からの自動COPY
    S3 への新規ファイル格納をトリガーに、ジョブによる COPY コマンド実行が可能

3. コストパフォーマンスの高さ

  • 分析ワークロードに特化した列指向ストレージ

  • 複数のコンピュートノードがデータの一部に対して同じクエリコードを並列分散実行すること(MPP アーキテクチャ)が可能

  • マテリアライズドビューによるクエリ高速化
    複数の既存のテーブルのデータを組み合わせた複製データテーブルを用意することで、頻繁に実行されるクエリパターンのデータ取得を高速化することが可能。AutoMV により自動的に生成・管理する機能がある。

  • 結果セットのキャッシュ機能(リザルトキャッシュ
    繰り返し実行されるクエリ結果をリーダノードのメモリでキャッシュすることで、コンピュートノードの処理なしでクエリ実行が可能

  • クエリスループットを最大化するためのワークロード最適化を自動化
    ショートクエリアクセラレーション(SQA)により、実行時間の短いクエリは専用の高速キューにルーティングされ実行される

  • クエリ特性に合わせたチューニングが可能
    Elastic Resize (伸縮自在なサイズ変更)により、ノード数やノードタイプを変更可能。スケジューリング実行も可能
    同時実行スケーリングにより、ピーク時に1~10個の追加クラスターを自動でスケールアウト。追加クラスターは処理が終わったら自動で停止

そのほか

可用性とセキュリティ

  • クラスター再配置(RA3 のみでサポート)
    クラスターを別の AZ にフェールオーバーが可能

  • Multi-AZ 配置(RA3 のみでサポート)
    1つのエンドポイントを持つ単一のデータウェアハウスとしてアクセス可能なクラスターを、2つの AZ に配置してワークロードを自動分散

  • Amazon Redshift マネージド VPC エンドポイント(Provisioned の場合、RA3 のみでサポート)
    別のVPCから Redshift が配置されたVPCに対する、プライベート接続のためのエンドポイントを設定可能

  • データベースにおけるアクセスコントロール
    列/行レベルのアクセスコントロール、ロール単位のアクセス制御が可能。マスキングポリシーを使って、特定の条件の場合のみ特定のデータをマスクされた状態で表示することが可能

  • 保存時と転送中のデータ暗号化
    AWS Key Management Service (AWS KMS)と統合して、キー管理を強化することも可能

料金体系

共通
RMS (Amazon Redshift マネージド S3 バケット)のストレージ使用量

Provisioned の場合
インスタンス起動時間 + Spectrum 利用料 + 同時実行スケーリング利用料

Serverless の場合
RPU (クエリ処理)実行時間

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?