Amazon Redshift, LA solution pour les entrepôts de données ?

Amazon lance le projet Amazon Redshift en Octobre 2012. Son nom fait référence à Oracle une multinationale américaine qui vends des systèmes de base de données. La couleur principale d’Oracle étant le rouge et shift signifiant « changement », le message envoyé par Amazon est assez clair.

En quelques années, ce projet est devenu le fer de lance de la solution cloud chez Amazon et son écosystème AWS. Redshift propose actuellement des performances imbattables avec des innovations constantes.

Dans cet article, vous découvrez les points forts ainsi que les puissantes fonctionnalités d’Amazon Redshift pour le stockage et l’analyse de données. 

Amazon Redshift : qu'est-ce que c'est ?

AWS Redshift est un service d’entrepôt de données (data warehouse) basé sur le cloud à l’échelle du pétaoctet, il évolue dans l’écosystème des solutions de données proposées par Amazon. Basé sur PostgreSQL, la plateforme s’intègre à la plupart des applications tierces via ses drivers ODBC et JDBC.

Redshift propose des performances incroyablement rapides via deux éléments clés de son architecture :

  1. Le stockage des données en colonnes
  2. Le traitement des données de façon massivement parallèle (MPP)

Lors de son lancement en 2012, Amazon a racheté une société spécialisée dans les entrepôts de données : ParAccel. Cette société utilisait le traitement parallèle des données, Amazon a donc intégré ces services dans Redshift. Très rapidement, Redshift est devenue la référence dans l’analyse du Big Data grâce à sa capacité d’effectuer des requêtes SQL sur de grandes bases de données contenant un mélange de données structurées et non structurées.

Redshift versus la concurrence

Redshift survole la concurrence. A titre d’exemple, ses revenus enregistrés atteignent 44 milliards de dollars, soit le double du chiffre d’affaires combiné de ses deux principaux concurrents : Google Cloud et Microsoft Azure.

Lorsque les entreprises doivent répondre au défi de la mise en place d’entrepôts de données, elles se heurtent à deux gros problèmes :

  1. Les entrepôts de données sont chers et nécessitent des mois de mise en place avant de fonctionner. Ce qui implique un fort engagement budgétaire et stratégique des dirigeants.
  2. La taille et le volume des données ne cessent de croître au fil des années. Cela pose un nouveau dilemme à l’entreprise : investir dans du nouveau matériel ou bien tolérer des performances plus lentes

L’offre cloud de Redshift aide les entreprises à surmonter ces problèmes. La création d’un cluster ne prend seulement que quelques minutes et l’intégration des données est effectué via une simple commande COPY depuis Amazon S3 (Simple Storage Service ou DynamoDB. De plus, Redshift offre la possibilité d’augmenter ou de réduire de manière dynamique son infrastructure en fonction de ses besoins.

Les clusters de serveurs étant entièrement gérés par AWS, les soucis de tâches d’administration et de maintenance s’envolent. La sauvegarde continue et la restauration sont également comprises dans l’offre supprimant ainsi tous les risques de perte de données.

Redshift se montre vite comme une réponse rentable, fiable, évolutive et rapide, les entreprises se tournent naturellement vers ce DWaaS (Data Warehousing as a Service – Entrepôt de données à la demande, en mode cloud). 

Les caractéristiques d’Amazon Redshift

Stockage des données en Colonne

Une base de données classique se présente comme un tableau avec des lignes contenant les différentes informations. De cette manière, les tables sont normalisées et des index sont créés pour accélérer les résultats. Cependant les index utilisent aussi la bande passante ralentissant ainsi la base de données. Cette architecture est principalement utilisée dans les applications CRM et ERP.

Comment sont stockées les données dans une BDD classiqueRow Id 001: 201,John,M,35,500000

1 : Marc,DUPONT,55,1001€

2 : Didier, JEAN, 66, 1002€

3 : Monique, CHEMIN, 70, 1003€

Pour les opérations OLAP Big DATA, cette approche impose des contraintes. Il est difficile de savoir quelles sont les colonnes les plus interrogées car l’objectif de l’analyse est d’effectuer des opérations de découpage sans arrêt afin de trouver des informations intéressantes. D’où la nécessité d’un stockage basé sur des colonnes.

Une base de données basée sur les colonnes stockerait les données du tableau précédent comme ceci :

Cela regroupe des types de données similaires permettant une meilleure compression, réduisant à la fois les besoins de stockage (deux fois moins de place) mais aussi les activités d’E/S. Étant donné que moins de mémoire est utilisée pour charger les données compressées, il y a de la mémoire disponible pour l’analyse, améliorant ainsi les performances des requêtes.

Par exemple, si vous souhaitez savoir s’il existe une corrélation entre le salaire et l’âge des employés, la plateforme peut alors parcourir des millions d’enregistrements de manière très rapide alors que ce processus serait beaucoup plus lent avec une base de données classique orientée sur les lignes.

Massively Parallel Processing – MPP

Ce terme défini l’utilisation d’un grand nombre de processeurs informatiques (ou d’ordinateurs séparés) pour effectuer simultanément un ensemble de calculs coordonnés en parallèle.

Grâce à cela, le traitement de l’ensemble des données est très rapide. Les données sont divisées en plusieurs parties pour être ensuite traitées en parallèle afin de renvoyer les résultats le plus rapidement possible.

Le principal composant d’un entrepôt de données est le Cluster. Il repose sur un ou plusieurs nœuds de calcul avec des rôles différents :

  1. Les nœuds principaux : Ils reçoivent les requêtes des utilisateurs puis ils répartissent les différentes tâches dans les nœuds de calcul qui possèdent les données les plus pertinentes. Ils restituent et compilent les résultats reçus par les nœuds de calcul pour le transmettre aux applications clientes.
  2. Les nœuds de calcul : Ils stockent des données et effectuent les calculs reçus par les nœuds principaux puis retournent des résultats.

Ce type d’architecture est appelé « shared-nothing » car aucune connaissance n’est partagée entre les systèmes et les nœuds qui sont complètement indépendants les uns des autres. Chaque nœud contient uniquement les données dont il est responsable, dans sa propre mémoire. Ce qui rend le système MPP beaucoup plus facile à maintenir et à déployer.

Du côté des applications clients, Redshift s’intègre parfaitement aux différents outils : chargement de données, outils d’extraction, de transformation et de chargement, exploration et analyse des données.

Mise en cache et code compilé

Après la soumission d’une première requête, le code est compilé, puis distribué à tout le cluster. Lorsque le nœud principal distribue les données entre les nœuds de calcul, il ajoute le code compilé, supprimant ainsi toute surcharge supplémentaire de calcul.

Ce code compilé est également mis en cache et partagé entre les sessions sur un cluster, permettant de retrouver le résultat d’une requête très rapidement.

Concurrency scaling

Depuis peu Amazon Redshift a lancé une nouvelle fonctionnalité « Concurrency scaling » qui peut se traduire par la mise en échelle de la concurrence. Elle a pour but de répondre à cette problématique : l’utilisation inégale des clusters dans le temps.

De nombreuses organisations se retrouvent à exécuter de lourdes charges de travail pendant certaines périodes puis tomber dans un « creux » ou les clusters ne sont pas utilisés.

Afin de remédier à cela et réduire les coûts pendant les périodes de faible utilisation. Redshift vous propose de faire évoluer vos clusters soit vers le haut, soit vers le bas et ça selon vos besoins. « Elastic rezize » vous permets d’ajouter ou de supprimer des nœuds dans un cluster en quelques clics.

Sécurité des données et des écosystèmes

Redshift propose toutes les fonctionnalités de sécurité offertes par les services du cloud AWS. Vous pouvez contrôler les privilèges d’accès via un compte AWS et l’attribution des ressources spécifiques Redshift via des comptes de gestion des identités et des accès (IAM).

La gestion des clusters est effectuée via la création d’un groupe spécifique de sécurité et un environnement VPC. Il est également possible de crypter les données lors de la création d’un cluster. Cependant, il s’agit d’une propriété immuable, ce qui empêche un cluster crypté de redevenir un cluster non-crypté. Pour les données de transit, le cryptage SSL est pris en charge.

Regardez notre webinar sur la sécurité, conformité et le partage des données cloud avec AWS

Intégration du machine learning

En utilisant Redshift, les utilisateurs peuvent tirer profit de tout l’écosystème proposé par le cloud AWS. Par exemple, Amazon Redshift s’intègre parfaitement à AWS Machine Learning (ML). Redshift permet d’effectuer des opérations ETL à une vitesse incroyable, cependant les utilisateurs, pour exploiter les données, doivent écrire leurs propres algorithmes pour réaliser des analyses.

Amazon Machine Learning peut analyser les données via des algorithmes internes afin d’en ressortir des prédictions applicables. La combinaison des deux outils augmente le potentiel de ce DWaaS.

En savoir plus sur le machine learning

Talend vous accompagne dans l’intégration des données avec AWS Redshift

Grâce à notre solution Talend Cloud Integration Platform, nous automatisons pour vous les processus de préparation des données tout en simplifiant l’ETL. Vous optimiserez les dépenses et cela accélèrera l’accès aux résultats de vos différentes requêtes.

Nous proposons plus de 900 connecteurs différents afin de déplacer rapidement et facilement l’ensemble de vos données entre toutes vos applications et sources y compris Redshift.

Téléchargez un essai gratuit de Talend Cloud Integration Platform et découvrez comment Redshift et d’autres outils de gestion peuvent transformer votre approche des données et ajouter une puissante couche d’intelligence à votre business.

Prêt à faire vos premiers pas avec Talend ?