Amazon Redshift
Manuel du développeur de base de données

Architecture système de l'entrepôt de données

Cette section présente les éléments de l'architecture système de l'entrepôt de données Amazon Redshift comme illustré dans la figure suivante.

Applications clientes

Amazon Redshift s'intègre à différents outils de chargement de données et outils d'extraction, de transformation et de chargement (ETL), ainsi qu'à divers outils de création de rapports d'aide à la décision, d'exploration de données et d'analyse. Comme Amazon Redshift s'appuie sur PostgreSQL, standard de l'industrie, la plupart des applications clientes SQL existantes fonctionnent avec quelques changements minimes uniquement. Pour plus d'informations sur les différences importantes entre Amazon Redshift SQL et PostgreSQL, consultez Amazon Redshift et PostgreSQL.

Connexions

Amazon Redshift communique avec les applications clientes à l'aide de pilotes JDBC et ODBC standards de l'industrie pour PostgreSQL. Pour plus d'informations, consultez Pilotes JDBC et ODBC pour Amazon Redshift et PostgreSQL.

Clusters

Le composant principal de l'infrastructure d'un entrepôt de données Amazon Redshift est un cluster.

Un cluster est composé d'un ou plusieurs nœuds de calcul. Si un cluster est provisionné avec deux nœuds de calcul ou plus, un nœud principal supplémentaire coordonne les nœuds de calcul et gère la communication externe. Votre application cliente n'interagit directement qu'avec le nœud principal. Les nœuds de calcul sont transparents pour les applications externes.

Nœud principal

Le nœud principal gère les communications avec les programmes clients et toute la communication avec les nœuds de calcul. Il analyse et développe des plans d'exécution pour effectuer des opérations de base de données : en particulier, la série d'étapes nécessaires pour obtenir des résultats pour les requêtes complexes. D'après le plan d'exécution, le nœud principal compile le code, distribue le code compilé aux nœuds de calcul et attribue une partie des données à chaque nœud de calcul.

Le nœud principal distribue les instructions SQL aux nœuds de calcul uniquement quand une requête fait référence aux tables stockées sur les nœuds de calcul. Toutes les autres requêtes s'exécutent exclusivement sur le nœud principal. Amazon Redshift est conçu pour mettre en place certaines fonctions SQL uniquement sur le nœud principal. Une requête qui utilise une de ces fonctions retourne une erreur si elle fait référence aux tables qui résident sur les nœuds de calcul. Pour plus d'informations, consultez Fonctions SQL prises en charge sur le nœud principal.

Nœuds de calcul

Le nœud principal compile le code des éléments du plan d'exécution et affecte le code aux nœuds de calcul. Les nœuds de calcul exécutent le code compilé et renvoient les résultats intermédiaires au nœud principal pour l'agrégation finale.

Chaque nœud de calcul a ses propres UC, mémoire et stockage sur disque attaché dédiés ; ils sont déterminées par le type de nœud. Lorsque votre charge de travail augmente, vous pouvez augmenter la capacité de calcul et la capacité de stockage d'un cluster en augmentant le nombre de nœuds, en mettant à niveau le type de nœud, ou les deux.

Amazon Redshift fournit deux types de nœud ; les nœuds de stockage denses et les nœuds de calcul denses. Chaque nœud offre deux choix de stockage. Vous pouvez démarrer avec un seul nœud de 160 Go et augmenter jusqu'à plusieurs nœuds de 16 To pour prendre en charge un Po de données ou plus.

Pour une explication plus détaillée des nœuds et des clusters d'entrepôt de données, consultez Architecture interne et fonctionnement du système.

Tranches de nœud

Un nœud de calcul est divisé en tranches. Chaque tranche se voit attribuer une partie de la mémoire et de l'espace disque du nœud, où elle traite une partie de la charge de travail affectée au nœud. Le nœud principal gère la distribution des données aux tranches et attribue la charge de travail des requêtes ou autres opérations de base de données aux tranches. Les tranches travaillent alors en parallèle pour terminer l'opération.

Le nombre de tranches par nœud est déterminé par la taille de nœud du cluster. Pour plus d'informations sur le nombre de tranches pour chaque taille de nœud, consultez A propos des clusters et des nœuds dans le manuel Amazon Redshift Cluster Management Guide.

Lorsque vous créez une table, vous pouvez éventuellement spécifier une colonne comme clé de distribution. Lorsque la table est chargée avec les données, les lignes sont distribuées aux tranches des nœuds selon la clé de distribution définie pour une table. Le choix d'une bonne clé de distribution permet à Amazon Redshift d'utiliser le traitement parallèle pour charger les données et exécuter les requêtes efficacement. Pour plus d'informations sur le choix d'une clé de distribution, consultez Choisir le meilleur style de distribution.

Réseau interne

Amazon Redshift tire profit des connexions à bande passante élevée, de la proximité et des protocoles de communication personnalisés pour fournir une communication réseau privée à très à haut débit entre le nœud principal et les nœuds de calcul. Les nœuds de calcul s'exécutent sur un réseau isolé distinct auquel les applications clientes n'accèdent jamais directement.

Bases de données

Un cluster contient une ou plusieurs bases de données. Les données utilisateur sont stockées sur les nœuds de calcul. Votre client SQL communique avec le nœud principal, qui à son tour coordonne l'exécution des requêtes avec les nœuds de calcul.

Amazon Redshift est un système de gestion de base de données relationnelle (SGBDR), compatible de ce fait avec d'autres applications SGBDR. Même s'il fournit les mêmes fonctionnalités qu'un SGBDR classique, y compris les fonctions de traitement transactionnel en ligne (OLTP) comme l'insertion et la suppression de données, Amazon Redshift est optimisé pour l'analyse hautes performances et la création de rapports d'ensembles de données très volumineux.

Amazon Redshift s'appuie sur PostgreSQL 8.0.2. Amazon Redshift et PostgreSQL présentent un certain nombre de différences très importantes dont vous devez être conscient lors de la conception et du développement d'applications d'entrepôts de données. Pour plus d'informations sur les différences entre Amazon Redshift SQL et PostgreSQL, consultez Amazon Redshift et PostgreSQL.