AWS_ノードとは&Redshiftの基本構成 #332日目
よく理解できていなかった単語について調べました。
今回は「ノード」と「distkey」でした。
ノードはコンピュータ関連の基礎的なワードで、distkeyはAmazon Redshiftにおけるデータベースのオプションです。
それぞれ整理してみます。
ノードとは
ノードは「結び目・中心点」などの意味を持つ単語で、コンピュータネットワークにおいては「ネットワークに繋がっている1つ1つの機器」を指します。
コンピュータをはじめ私たちが使っているPCやスマホもノードですし、ネットワークの交通整理をするルーターやハブ、もちろんサーバーもノードです。
一方、ノードとノードをつなげているもの(ケーブルなど)のことは、「リンク」もしくは「エッジ」と呼ぶことがあります。
Redshiftの基本構成
Amazon Redshiftの基本構成ではこのノードという言葉が出てきます。
Redshiftは「PostgreSQL」がベースとなって開発されているデータウェアハウスで、クラスターという単位で管理されます。以下が基本構造の全体図です。
クラスターには1つ以上のリーダーノード・コンピューティングノードが含まれています(シングルノードの場合はリーダーとコンピューティングの両機能を併せ持った1台構成になる)。
Leader Node (リーダーノード):
クライアントアプリケーションとのインターフェースです。SQL解析、コンピューティングノードへのタスク割り振り、テーブル情報や統計情報の保持を行います。
Compute Node (コンピューティングノード):
リーダーノードがSQLを解析して生成したタスクを受け取って実際の処理を行います。各コンピューティングノードは専用のメモリ、CPU、ストレージを持っており、コンピューティングノードの台数やスペックによってクラスターのスペックが決まります。台数としては最大100台並べられます。
Node Slice (ノードスライス):
これがRedshiftの肝です。1vCPU*につき1つのノードスライスが割り当てられます。実際のデータはこのノードスライスに分散して格納され、リーダーノードはスライスに対してデータの配置を管理し、SQLの実行などもスライスに対して行います。また、各スライスは独立しているため、並列に処理させることが可能です。
*物理コア(CPU)を仮想的に複数のコア(vCPU)に分割した単位
distkey (分散キー):
本日のきっかけとなったワードです。distkeyとはノードスライスにデータを振り分けるときの基準となるカラムのことを指します。分散キーはテーブルに対して1つしか設定できません。
Amazon S3:
Redshiftクラスタに保存されているデータのバックアップ先として用いられています。起動中のクラスタと同じ容量まで無料で利用でき、デフォルトで1日に1度自動でスナップショットが保存されるようにスケジュールされています。
以上、本日のまとめでした。
ここまでお読みいただきありがとうございました!
参考
https://www.cloud-koubou.jp/news-blog/1127/