Qu'est-ce que Redshift ?

Amazon Redshift est un entrepôt de données entièrement géré, à l'échelle du pétaoctet, disponible uniquement dans le cloud par le biais des services AWS. Comme les autres entrepôts de données analytiques, Redshift est un stockage sous forme de colonnes et il est ainsi particulièrement adapté à d'importantes requêtes analytiques portant sur des ensembles de données volumineux.

Redshift est également suffisamment rapide pour exécuter des requêtes interactives portant sur des ensembles de données à large échelle. Avec Redshift, rien de plus simple pour adapter vos clusters dans la console AWS, la ligne de commande ou un API. Redshift peut prendre en charge des clusters ne comportant qu'un seul nœud et des clusters comportant jusqu'à 128 nœuds. Les requêtes effectuées sur Redshift Spectrum se voient attribuer des ressources de calcul de manière dynamique, sans aucune planification préalable et sans aucune limite maximale.

Redshift est un entrepôt de données très apprécié, offrant un excellent compromis entre une configuration/maintenance simple et d'importantes possibilités de personnalisation. Redshift met ainsi à votre disposition une solution de base de données cloud puissante. Comme les sociétés renforcent leurs connaissances pour surveiller et optimiser le cluster Redshift pour leurs charges de travail spécifiques, elles peuvent même atteindre un rendement supérieur.

Raisons d'opter pour Redshift

Le juste équilibre

Redshift établit un juste équilibre entre la puissante personnalisation de bases de données MPP en local et la simplicité des bases de données cloud MPP. Pour les sociétés avides de données, Amazon Redshift est la solution idéale en termes de coûts, de flexibilité, de facilité d'utilisation et de performances.

Évolutif

Redshift est entièrement géré dans le cloud, il vous est ainsi très facile d'adapter dans son intégralité votre instance Redshift dans votre navigateur. Avec la fonctionnalité Redshift Spectrum, vous disposez également d'un accès interactif aux requêtes portant sur les données stockées directement dans S3, sans les importer dans Redshift, par le biais d'un moteur de calcul mis à l'échelle de manière dynamique. Les ressources sont ainsi disponibles sur demande en quelques secondes et cela vous permet une scalabilité virtuellement illimitée.

Des performances personnalisables

Amazon propose de puissantes options afin d'optimiser votre cluster Redshift en fonction de votre utilisation, dont notamment différents types de nœuds, de multiples sortes de compression et de nombreuses façons de partitionner vos tables de données. Utilisées judicieusement, ces personnalisations peuvent permettre à votre cluster d'atteindre des performances fulgurantes.

Pour quels cas d'utilisation Amazon Redshift est-il idéal ?

Sociétés avec des volumes de données importants et croissants

Les sociétés qui ont pour habitude d'interroger des bases de données transactionnelles seront sidérées par les volumes de données que Redshift peut traiter en toute simplicité. Les requêtes réalisées sur des millions (voire des milliards) de colonnes retournent des résultats en quelques millisecondes au lieu de quelques minutes ou quelques heures.

Pour les sociétés qui auparavant disposaient d'un entrepôt de données professionnel existant, Redshift atteint les mêmes performances exceptionnelles sans devoir faire face aux problèmes en termes de DevOps et souvent à un coût bien inférieur. De plus, en raison de son architecture cloud, l'adaptation à des volumes de données croissants s'effectue sans heurt.

Avec l'ajout de Spectrum, Redshift est même devenu encore plus puissant. Redshift peut désormais accéder directement aux données de son lac de données S3. Comme le stockage S3 est peu onéreux et avant tout illimité, vous avez la possibilité de créer une solution d'entrepôt de données à plusieurs strates avec les données que vous interrogez le plus présentées sous forme de tableaux, et les données que vous interrogez le moins qui demeurent en permanence disponibles dans Spectrum.

Sociétés en quête d'un système d'entrepôt de données courant et du dialecte SQL

Amazon Redshift utilise une architecture courante chez un grand nombre de systèmes EDW (Enterprise Data Warehouse – Entrepôt de données d'entreprise) en local (clusters de nœuds qui contiennent des ressources de stockage et de calcul, avec un nœud principal pour la planification des requêtes), mais optimisée pour le cloud. Cela facilite les migrations à partir d'environnements sur site. Les ingénieurs expérimentés en données connaissent bien cette architecture. Le dialecte SQL de Redshift repose sur PostgreSQL qui est très apprécié et bien connu des analystes du monde entier.

Sociétés souhaitant bénéficier d'un vaste écosystème de services et de partenaires

Redshift appartient à une vaste suite de solutions (en pleine expansion) au sein de l'écosystème AWS, qui propose des outils pour toutes sortes de cas d'utilisation, allant d'outils de développement élémentaires à des services entièrement gérés. Amazon Redshift n'est qu'une des solutions de données cloud proposée par Amazon et peut s'intégrer complètement à d'autres solutions au sein de l'écosystème AWS plus vaste.

Redshift possède notamment un réseau exceptionnel de partenaires, chaque société du réseau étant agréée pour travailler avec Redshift. Les partenaires appartenant au réseau de partenaires Redshift assistent les utilisateurs dans toutes leurs tâches, qu'il s'agisse d'intégration de données ou de business intelligence. Redshift a ainsi la possibilité de fournir un support et des intégrations hors pair pour son produit.

Sociétés travaillant avec des dossiers semi-structurés

Avec Redshift Spectrum, les sociétés peuvent exécuter des requêtes sur des exaoctets de données structurées se trouvant dans Amazon S3 sans aucun mouvement de données. Il utilise les ressources de planification des requêtes de Redshift pour optimiser la requête au-delà du simple accès aux fichiers et prend en charge divers formats de fichiers, notamment les formats CSV, TSV, Parquet, Sequence et RCFile.

Sociétés ayant besoin d'une tarification prévisible

Vous louez principalement vos ressources cloud auprès d'AWS, il est ainsi facile d'estimer les coûts engagés avec Redshift et de tirer profit de votre cluster compte tenu de vos contraintes budgétaires, peu importe qu'il s'agisse de quelques centaines ou de plusieurs milliers d'euros par mois.

Sociétés ayant besoin d'une gestion des charges de travail

Redshift dispose d'options de configuration de la gestion des charges de travail révolutionnaires, censées veiller à ce que les sociétés puissent correctement hiérarchiser les requêtes qu'elles souhaitent retourner en premier. Ainsi, les requêtes urgentes ne se retrouvent pas bloquées derrière des processus lents.

Avant de vous décider

Tarification

AWS propose à la fois une tarification à la demande et réservée. Pour les validations de principe, la tarification à la demande est idéale pour tester différentes configurations de clusters afin d'obtenir les performances optimales. Cependant, il est beaucoup plus économique d'opter pour une tarification réservée si vous avez déjà choisi Amazon Redshift comme votre technologie d'entrepôt de données de prédilection.

Le prix de Redshift dépend de la configuration de votre matériel. Spectrum, qui interroge des données directement sur S3, est payable à l'utilisation. Pour Redshift plus particulièrement, il est important de bien déterminer la taille de votre cluster. Vous bénéficiez alors des performances dont vous avez besoin, mais vous ne payez pas pour une capacité que vous n'utiliserez pas.

Faites un essai gratuit

Pour Redshift, vous disposez d'un essai gratuit qui comprend 750 heures par mois sur DC1.Un nœud de grande taille pour 2 mois, pour un total de 1500 heures. En général, nous recommandons à nos clients de faire un essai sur plusieurs nœuds afin d'avoir une idée réelle des performances dans des conditions de production. Si cela vous intéresse de voir comment Looker et Redshift fonctionnent ensemble, Looker dispose régulièrement de codes d'essai gratuit qui vous permettent d'aller au-delà des 750 heures et de réaliser une validation de principe complète. Veuillez contacter Looker pour de plus amples informations.

Architecture de base de données Redshift

Redshift est une base de données MPP cloud distribuée dotée d'une architecture non partagée. Les nœuds sont composés à la fois de calculs (sous la forme de CPU et de mémoire) et de stockage (sous la forme d'espace disque). Redshift comporte deux types de nœuds : les nœuds principaux et les nœuds de calcul.

Dans Redshift, les nœuds principaux reçoivent des requêtes provenant des applications des clients et ils répartissent ces requêtes entre des nœuds de calcul où sont stockées les données pertinentes. Il est important de souligner que si le nœud principal organise le plan de requête et l'envoie, ce sont les nœuds de calcul qui réalisent principalement le travail effectif sur Redshift.

Dans Redshift,  les nœuds de calcul stockent des portions de données de table et exécutent le code reçu par le nœud principal, puis ils retournent en amont les résultats afin qu'ils soient agrégés par le nœud principal.

Vous avez le choix entre deux catégories de nœuds de calcul. Chaque cluster doit être entièrement composé de l'une ou de l'autre. Voici les types de nœuds existants :

  • Calcul dense (SSD) : avec la plus petite option de calcul dense (DC1.Large), vous disposez de 0,16 To de stockage par nœud. L'option de calcul la plus grande (DC1.8x.Large) propose 2,56 To de stockage par nœud. Chacune des options est optimisée à des fins de hautes performances et est alliée à des opérations E/S plus rapides. Le compromis réside dans le fait que l'espace est limité. Le cluster nécessite ainsi une surveillance et une mise à l'échelle constantes si de grandes quantités de données circulent en permanence dans ce cluster.
  • Stockage dense (HDD) : avec la plus petite option de stockage dense (DS2.XLarge), vous disposez de 2 To de stockage par nœud. L'option de stockage dense la plus importante (DS2.8XLarge) propose 16 To de stockage par nœud. Bien que les opérations E/S soient plus lentes que les alternatives de calcul dense, il existe généralement beaucoup d'espace disque. Ainsi, l'espace disque du cluster peut nécessiter moins de surveillance constante que des nœuds de calcul dense.

Augmenter le cluster Redshift implique soit d'étendre les types de nœuds individuels (mise à l'échelle verticale du cluster) soit d'ajouter plus de nœuds au cluster en lui-même (mise à l'échelle horizontale du cluster).

Si vous avez besoin de plus amples informations, Amazon donne une excellente vue d'ensemble de l'architecture Redshift sur cette page.

Types de données

Amazon Redshift stocke ses données sous forme de colonnes. Il peut intégrer des données tabulaires issues de fichiers texte (délimités), de JSON ou de Avro ou peut intégrer les données directement depuis d'autres services AWS comme EMR et DynamoDB. Amazon Redshift interroge des données relationnelles en se basant sur SQL et en mettant toutes les données brutes reçues sous la forme de tables relationnelles en colonne dont les particularités sont dissociées de l'utilisateur. (Pour ceux qui connaissent Parquet, son format est théoriquement le même).

Amazon Redshift exécute avec brio les données lissées, dénormalisées et les plans normalisés (à condition que la distribution et que les clés de tri soient bien définies pour obtenir une jointure efficace). En raison de la compression efficace de Redshift, la redondance et le manque de données posent tous deux moins de problèmes dans Amazon Redshift que dans d'autres bases de données. Les données semi-structurées et non-structurées ne peuvent pas être importées dans une table Redshift, mais stockées dans des fichiers S3. Vous pouvez y accéder directement à l'aide de Redshift Spectrum en faisant appel à Hive Metastore.

AWS Redshift utilise un dialecte semblable à celui de PostgreSQL et reprend certaines capacités analytiques. À cet effet, il est relativement simple de surmonter et de s'adapter à ces quelques différences mineures.

Taille maximale de données recommandée

Le cluster le plus important d'Amazon Redshift peut stocker 2 pétaoctets de données sous la forme de tables, ce qui représente une quantité considérable de données. De toute évidence, vous risquez d'être confronté(e) à des limitations de requêtes simultanées avant de manquer d'espace.

Avec Spectrum, la limite de requête de Redshift est en principe supprimée. En effet, Spectrum peut interroger des compartiments dans S3, dont la taille est fondamentalement illimitée. De plus, comme Spectrum recherche de manière dynamique des ressources de calcul, au besoin par requête, les limitations de simultanéité ne posent pas de problème pour les requêtes exécutées par Spectrum.

Mise en œuvre et utilisation d'AWS Redshift 

Mettre en œuvre Amazon Redshift : quelques points à garder en tête

AWS Redshift est une solution entièrement gérée. Grâce à la console AWS, vous pouvez ainsi facilement créer un cluster avec les spécifications exactes que vous avez à l'esprit. Amazon gère pour vous toutes les considérations matérielles.

Cependant, Redshift vous propose de nombreuses options afin d'optimiser votre plan et vos tables. Il faut avoir une bonne compréhension des bonnes pratiques (que AWS présente de façon utile).

Chargement des données : le faire soi-même

Les données sont le plus souvent chargées dans AWS Redshift par le biais de la commande COPIE qui exploite l'architecture MPP d'Amazon Redshift pour lire et écrire des fichiers en parallèle. En utilisant Amazon Redshift associé à Spectrum, vous pouvez également accéder directement aux données dans S3 sans devoir les importer. Vous disposerez de cinq méthodes différentes pour accéder aux données situées dans Redshift :

Réfléchissez à la conception de vos tables

Si vous téléchargez vous-même vos données, il est important de réfléchir à la conception de vos tables avant de commencer. Vous devez en effet choisir certains paramètres lors de la création des tables, ce qui aura plus tard un impact considérable sur les performances. Nous vous recommandons d'utiliser le didacticiel d'Amazon Conception de la table de réglage pour comprendre comment parfaitement concevoir des tables qui seront chargées dans votre instance Redshift pour des performances optimales.

Chargement des données : utiliser un partenaire d'intégration de données

Il existe de nombreux services tiers d'ETL et d'intégration de données approuvés par AWS afin de faciliter le processus de chargement des données dans Redshift pour les sociétés. En fonction de vos besoins précis, nous avons tendance à recommander des partenaires tels que StitchFivetranMatillionTalend et Alooma.

Voici quelques questions qui vous aideront à choisir un partenaire d'intégration de données :

Quelles sources de données devez-vous reproduire ? Faites une liste des sources de données (par ex. Salesforce, HubSpot, Zendesk, Google Analytics, etc.) que vous souhaitez centraliser dans votre cluster Redshift, puis trouvez un partenaire qui puisse les prendre en charge. Certains fournisseurs possèdent des API qui vous permettent également de réaliser facilement des intégrations personnalisées.

Quel est le prix de ce service ? Si vous devez faire de nombreuses intégrations comportant chacune peu de données, un service calculé en fonction du volume de données pourrait être la meilleure solution. Si vous avez seulement quelques intégrations à effectuer avec de nombreuses données, alors mieux vaut envisager un service facturé par intégration.

Vous souhaitez convertir vos données avant la fin de la requête ? S'il est important pour vous de masquer les données sensibles ou de convertir les données avant leur chargement dans Redshift, veillez à choisir un partenaire d'intégration qui prenne en charge les types de conversions dont vous avez besoin.

Vous avez des exigences spéciales en termes d'hébergement de données ou de certifications (par ex. HIPAA) ? La solution cloud AWS dispose d'un excellent service de sécurité. Néanmoins, certains secteurs et pays imposent que les données des clients résident dans un secteur géographique spécifique ou que les fournisseurs se conforment à des procédures spécifiques.

Outils permettant d'optimiser les performances de Redshift

Redshift propose de nombreux outils et ressources afin d'optimiser les performances de votre cluster Redshift. Comprendre comment ces outils fonctionnent peut vous permettre d'augmenter rapidement ses performances alors que si vous renoncez à les utiliser, vous obtiendrez de moins bonnes performances.

Clés de tri

Chaque table située dans Redshift peut comporter une ou plusieurs clés de tri. Une clé de tri s'apparente à un index : imaginez que vous recherchiez un mot dans un dictionnaire qui ne serait pas organisé par ordre alphabétique. C'est ce qui se passerait avec Redshift si vous n'établissiez pas de clés de tri. Redshift stocke les données dans des blocs de 1 Mo, en sauvegardant les valeurs minimales et maximales pour chaque clé de tri présente dans ce bloc. Le principal avantage des clés de tri est que Redshift peut ignorer les blocs de données qui ne sont pas pertinents lorsqu'une clé de tri est présente et que la requête est limitée par cette colonne, ce qui améliore considérablement les performances lors de l'interrogation d'importants ensembles de données.

Si vous disposez d'une table d'événement de 50 milliards de colonnes répertoriant trois années de données, il se peut que vous deviez exécuter une requête uniquement sur « aujourd'hui » ou sur les « 7 derniers jours ». Si vous avez une clé de tri sur créé_à et que vous incluez un filtre sur ce champ, Redshift sera en mesure d'ignorer 99 % des colonnes (c'est-à-dire des blocs de données) lors de l'exécution de la requête.

Jointures et clés de distribution

Les performances de Redshift en termes de jointures peuvent être considérablement améliorées si les tables sont distribuées de manière efficace dans les nœuds. L'utilisation de clés de distribution pour minimiser les transferts de données lors des jointures améliorerait considérablement les SLA des requêtes (Service Level Agreement – Contrat de niveau de service).

Partitionnement des tables

Pour les vastes ensembles de données immuables qui évoluent au fil du temps (par ex. données de journal, données recueillies pour le Web tracking), séparer les tables par jour, par semaine ou par mois est un excellent moyen d'accélérer le temps de requête lorsque toutes les requêtes ne nécessitent pas un historique complet. Avec Redshift, vous disposez de différentes vues vous permettant de regrouper toutes les tables sous-jacentes afin de pouvoir les interroger efficacement comme s'il ne s'agissait que d'une seule table.

Encodage et compression

La compression permet de considérablement réduire le nombre total de données stockées sur un disque dans Redshift, ce qui diminue ensuite la quantité de données lues pour chaque requête. Si vous le laissez faire, Redshift réussit automatiquement à sélectionner les encodages de compression appropriés. Mais vous pouvez également les définir manuellement.

Commandes Vacuum (aspiration) et Analyser

Afin de récupérer de l'espace des lignes supprimées et de trier correctement les données qui ont été chargées en désordre, vous devrez régulièrement procéder à une opération d'aspiration de vos tables Redsfhit. Il est également essentiel pour une planification optimale des requêtes de tenir les statistiques à jour dans les tables à l'aide de la commande ANALYSER.

Prenez goût à l'analytique

Business intelligence, analyse de big data ou vue client à 360° :
quels que soient vos besoins, Looker peut vous aider. Parlez à nos experts en données.

Demander une démo