DEA / ドメイン2 データストア管理

重要な内容

Amazon Redshift

は、大量の構造化・半を で高速に集計するです。列指向の格納と、複数のノードで分担して処理する (超並列処理) で、数十億行の集計を短時間で返します。DEA-C01 では、プロビジョンドクラスターと Redshift Serverless の選び方、・・圧縮によるテーブル設計、 とによるワークロード管理、 と ANALYZE による保守が問われます。

Point
  • MPP = Massively Parallel Processing (超並列処理) です。データをノードとスライスに分けて置き、各スライスが同時に処理します。
  • WLM = Workload Management (ワークロード管理) です。クエリをキューに分け、メモリと同時実行数を配分します。
  • RMS = Redshift Managed Storage (マネージドストレージ) です。RA3・RG ノードと Serverless が使うストレージで、コンピューティングと別に伸縮・課金されます。

概要

は、 クライアントや ツールからの問い合わせをリーダーノードが受け、実行計画を作ってコンピューティングノードに配ります。

概要の図 SQL クライアント / BI ツールRedshift Data API リーダーノード解析・実行計画・結果の集約 コンピューティングノード1スライス × N コンピューティングノード2スライス × N マネージドストレージローカル SSD + S3
提供形態容量の単位課金向くワークロード
プロビジョンドクラスター (RA3・RG)ノードの種類と数ノード時間 (一時停止中はストレージのみ)、リザーブドノードで割引負荷が予測でき、常に動く定型の処理
Redshift Serverless (1 RPU = メモリ 16 GB)使った RPU 時間 (秒単位) + ストレージ負荷が不定期・急増する、容量管理をしたくない

試験では、「容量管理をしたくない」「負荷が読めない」なら Serverless、「常時高負荷で予測できる」ならプロビジョンド (リザーブドノード) を選びます。


主要技術

①ノードタイプと Redshift Serverless ⚠️ 頻出

プロビジョンドクラスターでは、RG または RA3 ノードが推奨です。どちらもマネージドストレージを使い、コンピューティングとストレージを別々に伸ばせます。RG は Graviton ベースのノードで、への問い合わせを自分のクラスターのコンピューティングで処理するエンジンを持ちます (RA3 は を使います)。ローカル だけで保管する DC2 は、圧縮後 1 TB 未満の小さなデータ向けです。

Serverless は、名前空間 (データベース、ユーザー、権限などの保管側) とワークグループ (コンピューティング側) で構成します。

設定内容
ベース容量クエリに使う基本の 。既定は128 RPU で、4 RPU から設定できる (最大は512、一部のでは1024)
最大容量自動で伸びる RPU の上限。コストの上限として使う
使用量の上限 (RPU 時間)日・週・月の使用量の上限。超えたらアラートやユーザークエリの停止を選べる
価格性能の目標 (AI 駆動のスケーリングと最適化)「コスト重視」から「性能重視」までの目標を選ぶと、ワークロードを学習して RPU を自動で調整する。新しいワークグループは「バランス」が既定

ベース容量を大きくすると、複雑なクエリや列の多いテーブル、結合の多いクエリが速くなりますが、費用も増えます。


②分散スタイル ⚠️ 頻出

テーブルの行をどのノード (スライス) に置くかを決めます。結合や集計のときにノード間でデータを移す (再分散する) 量を減らすのが目的です。

置き方向くテーブル
AUTO (推奨の既定) がテーブルの大きさと使われ方を見て選び、変える迷ったらこれ
KEY指定した列の値が同じ行を同じスライスに置く大きなファクトテーブルと、よく結合する大きなディメンション。結合キーを分散キーにする
ALL全ノードに全行のコピーを置く小さく更新の少ないディメンションテーブル
EVEN行を順番に均等に置く結合に使わず、KEY の候補もないテーブル

分散キーに値の偏った列 (ほとんどの行が同じ値) を選ぶと、一部のスライスに行が集中し ()、そのスライスの処理が全体を遅らせます。カーディナリティが高く、均等に分かれる結合キーを選びます。


③ソートキーと圧縮エンコーディング

は、ディスク上の行の並び順です。 はブロックごとに列の最小値と最大値 (ゾーンマップ) を持つため、ソート順に沿った範囲の絞り込みでは、関係のないブロックを読み飛ばせます。

種類内容向くケース
AUTORedshift が使われ方から選ぶ (自動テーブル最適化)迷ったらこれ
複合ソートキー (COMPOUND)列を指定した順に優先して並べる先頭の列 (日付など) で絞り込むクエリが多い
インターリーブソートキー (INTERLEAVED)複数の列を同じ重みで扱う複数の列のどれでも同じくらい絞り込む。ロードと が重い

時系列のデータは、日付やタイムスタンプを複合ソートキーの先頭にするのが定石です。

圧縮エンコーディングは列ごとに設定し、ディスク I/O を減らします。CREATE TABLE で ENCODE AUTO (既定) にすると、Redshift が適切なエンコーディングを選びます。数値と日付には AZ64、文字列には ZSTD や LZO がよく選ばれます。

自動化の機能内容
自動テーブル最適化 (ATO)とソートキーを、クエリの履歴から自動で選び直す
ENCODE AUTO圧縮エンコーディングを自動で選ぶ
自動 VACUUM DELETE / 自動 ANALYZE負荷の低い時間に背景で実行する

④ワークロード管理 (WLM) と同時実行スケーリング ⚠️ 頻出

のロード、ダッシュボードの短いクエリ、アナリストの重いクエリが同時に走ると、互いに待たされます。 で優先度と資源を分けます。

機能内容使いどころ
自動 WLM (推奨)メモリと数を が自動で配分する。キューごとに優先度 (HIGHEST〜LOWEST) を付けられるダッシュボードを優先し、バッチを低くする
手動 WLMキューごとのメモリと同時実行数を自分で決める細かく固定したい特別な場合
ショートクエリアクセラレーション (SQA)短いと予測したクエリを専用の領域で先に実行する長いクエリの後ろで短いクエリが待たされる
クエリルール (QMR)実行時間やスキャン行数などのしきい値で、ログ・別キューへの移動・中止を行う暴走クエリから他の処理を守る
同時実行のクエリが増えたとき、一時的なクラスターを自動で足して読み取りなどを処理する月末や朝のダッシュボードで同時実行が急増する

同時実行スケーリングは、稼働しているクラスターごとに1日あたり1時間分の無料のクレジットがたまり、超えた分は秒単位で課金されます。急増が一時的なら、クラスターを大きくし続けるより安く済みます。

Point
  • SQA = Short Query Acceleration (ショートクエリアクセラレーション) です。
  • QMR = Query Monitoring Rules (クエリモニタリングルール) です。
  • 「同時に実行するクエリが多くて待たされる」→ 同時実行スケーリング、「1本のクエリが遅い」→ テーブル設計 (分散・ソート) やノードの追加、と原因で分けて覚えます。

⑤VACUUM と ANALYZE

は、UPDATE と DELETE で行をすぐには消さず、削除の印を付けるだけです。また、新しくロードした行はソート済みの領域の後ろに追加されます。放っておくと、不要な行のスキャンとソートの崩れでクエリが遅くなります。

コマンド内容
FULL (既定)削除済みの行の領域を回収し、行を並べ直す
VACUUM DELETE ONLY領域の回収だけ行う (ソートしない)
VACUUM SORT ONLY並べ直しだけ行う
VACUUM REINDEXインターリーブのテーブルを並べ直す
ANALYZE列の統計を更新し、オプティマイザーがよい実行計画を作れるようにする

自動 VACUUM DELETE と自動 ANALYZE が背景で動きますが、大量のロードや削除の直後は、手動で VACUUM と ANALYZE を実行すると性能がすぐ戻ります。毎回全件を入れ替えるテーブルは、DELETE ではなく TRUNCATE を使うと VACUUM が要りません。


⑥半構造化データとその他の機能

機能内容
による変換 ()ロードした後に INSERT INTO … SELECT、、 で変換する。手順はストアドプロシージャにまとめる
処理の自動化クエリエディタ v2 のスケジュール ( Scheduler で定期実行)、 や から Data で実行する
SUPER 型 などの半を1列に入れ、PartiQL でネストした値を問い合わせる
集計結果を保存し、自動更新や増分更新で新しく保つ (「・・マテリアライズドビュー」の章)
Data API接続を管理せずに で SQL を非同期に実行する。Lambda や Step Functions から呼び出しやすい
データ共有データをコピーせず、他のクラスター・ワークグループ・アカウントへ読み取りを共有する (「Redshift のアクセス制御とデータ共有」の章)
Redshift MLSQL からのモデルを作り、予測を行う
ユーザー定義関数 (UDF)SQL UDF や Lambda UDF を使う。Python UDF は2026年6月30日でサポートが終わる

Redshift のロードとアンロードは「Redshift へのロードとアンロード」の章、ロックと同時書き込みは「ロックとの制御」の章、ユーザーやロールの権限、、は「Redshift のアクセス制御とデータ共有」の章で扱います。


試験対策

①判断マトリクス

問題文のキーワード選ぶもの
負荷が不定期、容量管理をしたくない Serverless
常時高負荷で予測できる、コストを下げたいプロビジョンド (RA3・RG) + リザーブドノード
Serverless の費用が想定を超えないようにしたい最大容量 () と使用量の上限
大きなテーブル同士の結合が遅い結合キーを両方の (KEY) にする
小さなディメンションとの結合で再分散が起きるディメンションを ALL にする
一部のスライスだけ処理が長い分散キーの偏り () を直す
日付の範囲で絞り込むクエリが遅い日付を複合の先頭にする
朝のの急増で待たされる
短いクエリが長いクエリに待たされるショートクエリアクセラレーション、自動 の優先度
暴走クエリを自動で止めたいクエリルール
大量の DELETE の後に遅くなった と ANALYZE
をそのまま入れて問い合わせたいSUPER 型と PartiQL

②よくある誤答

  • の不足に、ノードを恒常的に増やして対応すること。急増が一時的ならの方が安くなります。
  • に、値の種類が少ない列や偏った列を選ぶこと。で遅くなります。
  • インターリーブを、先頭の列で絞り込むだけのテーブルに使うこと。複合ソートキーで足ります。
  • を、1行ずつ頻繁に更新する業務データベースとして使うこと。 には / / を選びます。
  • 毎回全件入れ替えるテーブルを DELETE で空にすること。TRUNCATE を使えば が要りません。

参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください