■ はじめに
Amazon Redshift について、徐々にメモっていく
目次
【1】Amazon Redshift 【2】特徴 【3】メリット・デメリット 1)メリット 2)デメリット 【4】他DB・サービスとの違い 【5】Redshift の システム構成 1)Redshiftクラスタ 2)システム構成 【6】関連用語 1)Redshift Spectrum
【1】Amazon Redshift
* フルマネージド型のデータウェアハウス * 名前の由来は、「赤方偏移(せきほうへんい、英: redshift)」かららしい
※ データウェアハウス(DWH:Data WareHouse)
* 基幹系などの複数システムから、必要なデータを収集し、 目的別に再構成した統合データベース * データ分析や意思決定に役立てる目的で編成され作られるため、 BI(ビジネスインテリジェンス)に位置づけられている * 在庫、財務、小売販売システムなど、 さまざまなソースからのデータを集めるように設計
【2】特徴
1)PostgreSQL 8.0.2 に基づいている 2)列指向型(カラムナ)データベース (※ 補足1 を参照) 3)超並列処理(MPP:Massively Parallel Processing) => 複数ノードによる分散実行を行う (「【5】Redshift の システム構成」を参照) cf massively(マッシブリー) = 大規模に、とてつもなく 4)シェアード・ナッシング(Shared Nothing; SN)(※ 補足2 を参照) 5)ゾーンマップ
※ 補足1:列指向型(カラムナ)
* 類似したデータが集まるため、高い圧縮率 * 詳細は、以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2011/02/16/205224
※ 補足2:シェアード・ナッシング
https://www.atmarkit.co.jp/fdb/rensai/10_dwh/02/dwh02_1.html
* DB処理を複数のノードに分散することにより 処理性能を向上させる仕組み => ディスクをノードで共有しない(非共有=シェアード・ナッシング)
補足3:ゾーンマップ
* Redshift では、ブロック単位(1ブロック=1MB)でデータを格納している * ゾーンマップとは、このブロック内で格納されているデータの 最小・最大地をメモリに保存する仕組み => この仕組みにより、検索条件に該当するかを効率的に判断し 読み飛ばしたりして高速化を図っている
【3】メリット・デメリット
1)メリット
DBに対するアクセス競合が発生せず、ノードを増やせば増やすほど リニアに性能が向上する
2)デメリット
あるノードで障害が発生したとき、ほかのノードは障害が 発生したノードのディスク領域にアクセスできないため、 共有ディスク方式(シェアードエヴリシング)と比べると 耐障害性に劣るとされている
【4】他DB・サービスとの違い
* 以下の関連記事を参照のこと。
Amazon Redshift ~ 他DB・サービスとの違い ~
https://dk521123.hatenablog.com/entry/2021/08/29/000000
【5】Redshift の システム構成
1)Redshiftクラスタ
* Redshiftを構成する複数ノードの集まり * Redshiftクラスタには、 「1)リーダーノード」と「2)コンピュートノード」とある
2)システム構成
* 構成は以下で成り立っている。 ~~~~~~~~~~~~~~ 1)リーダーノード(Leader Node) 2)コンピュートノード(Compute Node) 3)マネージドストレージ <= 新しくできた部分 ~~~~~~~~~~~~~~ * システム構成図は、以下の公式サイトを参照。
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_high_level_system_architecture.html
1)リーダーノード(Leader Node)
* SQL処理コードの解析や実行プラン作成 => その後、「2)コンピュートノード」に対して実行を促す => 司令塔的な存在 * 各クラスタに1台のみ存在
2)コンピュートノード(Compute Node)
* 「1)リーダーノード」から指示されたクエリを処理する => ワーカー的な存在 * 『ノードスライス』というRedshiftが分割処理をする最小単位で 処理を行う
3)マネージドストレージ
* Redshift 管理 S3 バケット
【6】関連用語
1)Redshift Spectrum
* S3上のデータを外部テーブルとして定義し、 Redshift内に実データを取り込むことなく クエリ実行可能にする拡張サービス
参考文献
https://www.slideshare.net/AmazonWebServicesJapan/amazon-redshift-20
https://codezine.jp/article/detail/7234
https://developer.medley.jp/entry/2019/07/01/193427
https://dev.classmethod.jp/cloud/aws/cm-advent-calendar-2015-getting-started-again-aws-redshift/
Redshift の システム構成
https://gihyo.jp/dev/serial/01/redshift/0005
関連記事
Amazon Redshift ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/04/07/124519
Amazon Redshift ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/08/31/171754
Amazon Redshift ~ キャスト ~
https://dk521123.hatenablog.com/entry/2021/09/08/202004
Amazon Redshift ~ 文字列結合 ~
https://dk521123.hatenablog.com/entry/2021/09/09/093855
Amazon Redshift ~ 他DB・サービスとの違い ~
https://dk521123.hatenablog.com/entry/2021/08/29/000000
Amazon Redshift ~ DistStyle / DistKey / SortKey ~
https://dk521123.hatenablog.com/entry/2021/09/04/172021
Amazon Redshift ~ VACUUM ~
https://dk521123.hatenablog.com/entry/2021/09/05/214403
Amazon Redshift ~ 自動採番 / IDENTITY ~
https://dk521123.hatenablog.com/entry/2021/08/31/194134
Amazon Redshift ~ COPY コマンド ~
https://dk521123.hatenablog.com/entry/2021/07/21/214248
Amazon Redshift ~ SHOW TABLE コマンド ~
https://dk521123.hatenablog.com/entry/2023/03/07/152123
Amazon Redshift ~ システムビュー ~
https://dk521123.hatenablog.com/entry/2023/03/06/184928
Hiveテーブルデータ を Redshift に移行するには
https://dk521123.hatenablog.com/entry/2021/09/01/200818
Hiveテーブルデータ を Redshift に移行時のCOPYコマンドエラー
https://dk521123.hatenablog.com/entry/2021/09/03/134359
Glue/Python から Redshift に接続することを考える
https://dk521123.hatenablog.com/entry/2020/08/26/193237
Glue/Spark から Redshift にデータ追加することを考える
https://dk521123.hatenablog.com/entry/2020/09/23/111741
Amazon EMR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/20/230519
NoSQL(Not Only SQL) ~概要~
https://dk521123.hatenablog.com/entry/2011/02/16/205224