データウェアハウスシステムのアーキテクチャ - Amazon Redshift

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

データウェアハウスシステムのアーキテクチャ

このセクションでは、次の図で示すような、Amazon Redshift データウェアハウスアーキテクチャの要素について説明します。

クライアントアプリケーション

Amazon Redshift は、さまざまなデータロードおよび ETL (抽出、変換、およびロード) ツールや、ビジネスインテリジェンス (BI) レポート、データマイニング、分析ツールと統合します。Amazon Redshift は業界標準の PostgreSQL に基づいているため、ほとんどの既存 SQL クライアントアプリケーションは最小限の変更のみで動作します。Amazon Redshift SQL と PostgreSQL の重要な相違点については、「Amazon Redshift および PostgreSQL」を参照してください。

接続

Amazon Redshift は、業界標準の PostgreSQL 用の JDBC および ODBC ドライバーを使用して、クライアントアプリケーションと通信します。詳細については、Amazon Redshift および PostgreSQL JDBC/ODBC を参照してください。

クラスター

Amazon Redshift データウェアハウスの中核となるインフラストラクチャコンポーネントは、クラスターです。

クラスターは、1 つまたは複数のコンピューティングノードで構成されます。クラスターが 2 つ以上のコンピューティングノードでプロビジョニングされている場合、追加のリーダーノードがコンピューティングノードを調整して、外部の通信を処理します。クライアントアプリケーションはリーダーノードだけと直接通信します。コンピューティングノードは外部アプリケーションからは見えません。

リーダーノード

リーダーノードは、クライアントプログラムおよびコンピューティングノードとのすべての通信を管理します。リーダーノードは、データベース操作を遂行するための実行計画、具体的には複雑なクエリの結果を取得するために必要な一連の手順を解析および作成します。リーダーノードは、実行計画に基づいて、コードをコンパイルし、コンパイル済みのコードをコンピューティングノードに配布してから、データの一部分を各コンピューティングノードに割り当てます。

リーダーノードは、コンピューティングノードに格納されているテーブルがクエリで参照されている場合にのみ、コンピューティングノードに SQL ステートメントを配布します。他のすべてのクエリは、リーダーノードのみで実行されます。Amazon Redshift は、特定の SQL 機能をリーダーノードのみに実装するように設計されています。これらの機能を使用するクエリが、コンピューティングノードに存在するテーブルを参照する場合、エラーが返されます。詳細については、リーダーノードでサポートされる SQL 関数 を参照してください。

コンピューティングノード

リーダーノードは、実行計画の個別要素のコードをコンパイルし、コードを個々のコンピューティングノードに割り当てます。コンピューティングノードは、コンパイル済みのコードを実行し、中間結果をリーダーノードに返送します。中間結果は、リーダーノードにおいて最終的に集計されます。

各コンピューティングノードの専用 CPU、メモリ、接続されているディスクストレージは、ノードのタイプによって異なります。ワークロードが増えるに従って、ノードの数を増やすかノードの種類をアップグレードして、または両方を行って、クラスターのコンピューティング能力とストレージ容量を増強できます。

Amazon Redshift には、コンピューティングとストレージのニーズに合わせて複数のノードタイプが用意されています。各ノード タイプの詳細については、以下を参照してください。 Amazon Redshift クラスタAmazon Redshift Cluster Management Guide.

ノードスライス

コンピューティングノードはスライスに分割されています。各スライスは、ノードのメモリとディスク容量の一部を割り当てられて、ノードに割り当てられたワークロードの一部分を処理します。リーダーノードは、スライスへのデータの分散を管理し、クエリまたは他のデータベース操作のワークロードをスライスに分配します。スライスは、並列処理を行って操作を完了します。

ノードあたりのスライスの数は、クラスターのノードサイズによって決まります。各ノードサイズのスライス数の詳細については、 をご覧ください。 クラスタとノードについてAmazon Redshift Cluster Management Guide.

テーブルを作成するときは、必要に応じて 1 つの列を分散キーとして指定できます。テーブルにデータがロードされるときは、テーブルに対して定義されている分散キーに従って行がノードスライスに分配されます。適切な分散キーを選択することにより、Amazon Redshift は並列処理を使用してデータをロードし、クエリを効率よく実行できます。分散キーの選択については、「Choose the best distribution style」を参照してください。

内部ネットワーク

Amazon Redshift は、高帯域幅接続、近接性、およびカスタム通信プロトコルを利用して、リーダーノードとコンピューティングノードの間のプライベートで非常に高速のネットワーク通信を提供します。コンピューティングノードは、クライアントアプリケーションが直接アクセスすることのない別の独立したネットワークで動作します。

データベース

クラスターは、1 つ以上のデータベースで構成されます。ユーザーデータはコンピューティングノードに格納されます。SQL クライアントはリーダーノードと通信し、リーダーノードはコンピューティングノードでのクエリの実行を調整します。

Amazon Redshift はリレーショナルデータベース管理システム (RDBMS) なので、他の RDBMS アプリケーションと互換性があります。Amazon Redshift は、標準的な RDBMS と同じ機能 (データの挿入や削除といったオンライントランザクション処理 (OLTP) 機能など) を提供しますが、非常に大きいデータセットの高パフォーマンスの分析とレポート向けに最適化されています。

Amazon Redshift PostgreSQLに基づいています。 Amazon Redshift PostgreSQL には、データ ウェアハウス アプリケーションの設計と開発の際に考慮すべき、非常に重要な違いがいくつかあります。Amazon Redshift SQL と PostgreSQL の違いについては、「Amazon Redshift および PostgreSQL」を参照してください。