Création d’un entrepôt de données et d’un lac de données dans AWS

Entrepôt de données. Lac de données. Maison au bord du lac. Si aucun de ces mots ne vous parle au moins un peu, alors votre travail n’est clairement pas lié aux données.

Cependant, ce serait une prémisse assez irréaliste car aujourd’hui, tout est lié aux données, semble-t-il. Ou comment les chefs d’entreprise aiment le décrire :

  • Entreprise centrée sur les données et axée sur les données.
  • Des données n’importe où, n’importe quand, n’importe comment.

L’atout le plus important

Il semble que les données soient devenues l’atout le plus précieux d’un nombre croissant d’entreprises. Je me souviens que les grandes entreprises ont toujours généré beaucoup de données, pensez à des téraoctets de nouvelles données chaque mois. C’était il y a encore 10-15 ans. Mais maintenant, vous pouvez facilement générer cette quantité de données en quelques jours. On pourrait se demander si c’est vraiment nécessaire, même s’il s’agit d’un contenu que tout le monde utilisera. Et oui, ce n’est définitivement pas 😃.

Tout le contenu ne sera pas d’aucune utilité, et certaines parties ne seront même pas une seule fois. J’ai souvent été témoin en première ligne de la façon dont les entreprises ont généré une énorme quantité de données pour devenir inutiles après un chargement réussi.

Mais ce n’est plus d’actualité. Le stockage des données – désormais dans le cloud – est bon marché, les sources de données augmentent de façon exponentielle et aujourd’hui, personne ne peut prédire ce dont il aura besoin un an plus tard une fois que de nouveaux services seront intégrés au système. À ce stade, même les anciennes données peuvent devenir précieuses.

Par conséquent, la stratégie consiste à stocker autant de données que possible. Mais aussi sous une forme aussi efficace que possible. Ainsi, les données peuvent non seulement être enregistrées efficacement, mais également interrogées, réutilisées ou transformées et distribuées davantage.

Examinons trois méthodes natives pour y parvenir dans AWS :

  • Base de données Athena – moyen bon marché et efficace, bien que simple, de créer un lac de données dans le cloud.
  • Base de données Redshift – une version cloud sérieuse d’un entrepôt de données qui a le potentiel de remplacer la majorité des solutions sur site actuelles, incapables de rattraper la croissance exponentielle des données.
  • Databricks – une combinaison d’un lac de données et d’un entrepôt de données en une seule solution, avec quelques bonus en plus de tout cela.

Lac de données par AWS Athena

Source : aws.amazon.com

Le lac de données est un endroit où vous pouvez stocker rapidement les données entrantes sous une forme non structurée, semi-structurée ou structurée. En même temps, vous ne vous attendez pas à ce que ces données soient modifiées une fois qu’elles sont stockées. Au lieu de cela, vous voulez qu’ils soient aussi atomiques et immuables que possible. Seul cela garantira le plus grand potentiel de réutilisation dans les étapes ultérieures. Si vous deviez perdre cette propriété atomique des données juste après le premier chargement dans un lac de données, il n’y a aucun moyen de récupérer ces informations perdues.

AWS Athena est une base de données avec stockage directement sur des compartiments S3 et sans clusters de serveurs exécutés en arrière-plan. Cela signifie qu’il s’agit d’un service de lac de données vraiment bon marché. Les formats de fichiers structurés tels que les fichiers parquet ou CSV conservent l’organisation des données. Le compartiment S3 contient les fichiers et Athena s’y réfère chaque fois que les processus sélectionnent les données de la base de données.

Athena ne prend pas en charge diverses fonctionnalités autrement considérées comme standard, telles que les instructions de mise à jour. C’est pourquoi vous devez considérer Athena comme une option très simple. D’autre part, cela vous aide à empêcher la modification de votre lac de données atomiques simplement parce que vous ne pouvez pas 😐.

Il prend en charge l’indexation et le partitionnement, ce qui le rend utilisable pour une exécution efficace des instructions de sélection et la création de blocs de données logiquement séparés (par exemple, séparés par des colonnes de date ou de clé). Il peut également évoluer horizontalement très facilement, car cela est aussi complexe que l’ajout de nouveaux compartiments à l’infrastructure.

Avantages et inconvénients

Les avantages à considérer :

  • Le fait qu’Athena soit bon marché (composé uniquement de compartiments S3 et de coûts d’utilisation SQL par utilisation) constitue l’avantage le plus significatif. Si vous souhaitez créer un lac de données abordable dans AWS, c’est tout.
  • En tant que service natif, Athena peut facilement s’intégrer à d’autres services AWS utiles comme Amazon QuickSight pour la visualisation des données ou AWS Glue Data Catalog pour créer des métadonnées structurées persistantes.
  • Idéal pour exécuter des requêtes ad hoc sur une grande quantité de données structurées ou non structurées sans maintenir toute une infrastructure autour d’elle.

Les inconvénients à prendre en compte :

  • Athena n’est pas particulièrement efficace pour renvoyer rapidement des requêtes de sélection complexes, en particulier si les requêtes ne suivent pas les hypothèses du modèle de données sur la façon dont vous avez conçu pour demander les données du lac de données.
  • Cela le rend également moins flexible en ce qui concerne les futurs changements potentiels du modèle de données.
  • Athena ne prend pas en charge de fonctionnalités avancées supplémentaires prêtes à l’emploi, et si vous souhaitez que quelque chose de spécifique fasse partie du service, vous devez l’implémenter en plus.
  • Si vous vous attendez à ce que les données du lac de données soient utilisées dans une couche de présentation plus avancée, le seul choix est souvent de la combiner avec un autre service de base de données plus adapté à cette fin, comme AWS Aurora ou AWS Dynamo DB.

Objectif et cas d’utilisation réel

Choisissez Athena si l’objectif est la création d’un lac de données simple sans aucune fonctionnalité avancée de type entrepôt de données. Ainsi, par exemple, si vous ne vous attendez pas à ce que des requêtes analytiques sérieuses et performantes s’exécutent régulièrement sur le lac de données. Au lieu de cela, avoir un pool de données immuables avec une extension de stockage de données facile est la priorité.

Vous n’avez plus besoin de trop vous soucier du manque d’espace. Même le coût du stockage de compartiment S3 peut être encore réduit en mettant en œuvre une politique de cycle de vie des données. Cela signifie essentiellement déplacer les données entre différents types de compartiments S3, davantage ciblés à des fins d’archivage avec des temps de retour d’ingestion plus lents mais des coûts inférieurs.

Une grande fonctionnalité d’Athena est qu’il crée automatiquement un fichier composé de données faisant partie d’un résultat de votre requête SQL. Vous pouvez ensuite prendre ce fichier et l’utiliser à n’importe quelle fin. C’est donc une bonne option si vous avez de nombreux services lambda qui traitent les données en plusieurs étapes. Chaque résultat lambda sera automatiquement le résultat dans un format de fichier structuré en tant qu’entrée prête pour le traitement ultérieur.

Athena est une bonne option dans les situations où une grande quantité de données brutes arrive sur votre infrastructure cloud, et vous n’avez pas besoin de les traiter au moment du chargement. Cela signifie que tout ce dont vous avez besoin est un stockage rapide dans le cloud dans une structure facile à comprendre.

Un autre cas d’utilisation serait de créer un espace dédié à des fins d’archivage de données pour un autre service. Dans un tel cas, Athena DB deviendrait un lieu de sauvegarde bon marché pour toutes les données dont vous n’avez pas besoin pour le moment, mais cela pourrait changer à l’avenir. À ce stade, vous allez simplement ingérer les données et les envoyer plus loin.

Entrepôt de données par AWS Redshift

Source : aws.amazon.com

Un entrepôt de données est un endroit où les données sont stockées de manière très structurée. Facile à charger et à extraire. L’intention est d’exécuter un grand nombre de requêtes très complexes, en joignant de nombreuses tables via des jointures complexes. Diverses fonctions analytiques sont en place pour calculer diverses statistiques sur les données existantes. L’objectif ultime est d’extraire des prédictions et des faits futurs à exploiter dans l’entreprise à l’avenir, en utilisant les données existantes.

Redshift est un système d’entrepôt de données à part entière. Avec des serveurs de cluster à régler et à mettre à l’échelle – horizontalement et verticalement et un système de stockage de base de données optimisé pour les retours rapides de requêtes complexes. Bien qu’aujourd’hui, vous puissiez également exécuter Redshift en mode sans serveur. Il n’y a pas de fichiers sur S3 ou quelque chose de similaire. Il s’agit d’un serveur de cluster de base de données standard avec son propre format de stockage.

Il dispose d’outils de surveillance des performances prêts à l’emploi, ainsi que de métriques de tableau de bord personnalisables que vous pouvez utiliser et regarder pour affiner les performances de votre cas d’utilisation. L’administration est également accessible via des tableaux de bord séparés. Il faut un certain effort pour comprendre toutes les fonctionnalités et tous les paramètres possibles et leur impact sur le cluster. Mais encore, il n’est nulle part aussi complexe que l’administration des serveurs Oracle l’était dans le cas des solutions sur site.

Même s’il existe diverses limites AWS dans Redshift qui définissent certaines limites quant à son utilisation au jour le jour (par exemple, des limites strictes sur le nombre d’utilisateurs ou de sessions actifs simultanés dans un cluster de base de données), le fait que les opérations soient exécuté très rapidement aide à contourner ces limites dans une certaine mesure.

Avantages et inconvénients

Les avantages à considérer :

  • Service d’entrepôt de données cloud AWS natif facile à intégrer à d’autres services.
  • Un emplacement central pour le stockage, la surveillance et l’ingestion de divers types de sources de données provenant de systèmes sources très différents.
  • Si vous avez toujours voulu avoir un entrepôt de données sans serveur sans l’infrastructure pour le maintenir, vous le pouvez maintenant.
  • Optimisé pour des analyses et des rapports hautes performances. Contrairement à une solution de lac de données, il existe un solide modèle de données relationnelles pour stocker toutes les données entrantes.
  • Le moteur de base de données Redshift provient de PostgreSQL, ce qui garantit une compatibilité élevée avec d’autres systèmes de base de données.
  • Instructions COPY et UNLOAD très utiles pour charger et décharger les données depuis et vers les compartiments S3.

Les inconvénients à prendre en compte :

  • Redshift ne prend pas en charge un grand nombre de sessions actives simultanées. Les sessions seront mises en attente et traitées séquentiellement. Bien que cela ne soit pas un problème dans la plupart des cas, car les opérations sont très rapides, c’est un facteur limitant dans les systèmes avec de nombreux utilisateurs actifs.
  • Même si Redshift prend en charge de nombreuses fonctionnalités précédemment connues des systèmes Oracle matures, il n’est toujours pas au même niveau. Certaines des fonctionnalités attendues pourraient ne pas être là (comme les déclencheurs DB). Ou Redshift les prend en charge sous une forme assez limitée (comme les vues matérialisées).
  • Chaque fois que vous avez besoin d’une tâche de traitement de données personnalisée plus avancée, vous devez la créer à partir de zéro. La plupart du temps, utilisez le langage de code Python ou Javascript. Ce n’est pas aussi naturel que PL/SQL dans le cas du système Oracle, où même la fonction et les procédures utilisent un langage très similaire aux requêtes SQL.

Objectif et cas d’utilisation réel

Redshift peut être votre magasin central pour toutes les différentes sources de données qui vivaient auparavant en dehors du cloud. Il s’agit d’un remplacement valide pour les précédentes solutions d’entrepôt de données Oracle. Comme il s’agit également d’une base de données relationnelle, la migration depuis Oracle est même une opération assez simple.

Si vous avez des solutions d’entrepôt de données existantes dans de nombreux endroits qui ne sont pas vraiment unifiées en termes d’approche, de structure ou d’un ensemble prédéfini de processus communs à exécuter au-dessus des données, Redshift est un excellent choix.

Cela vous donnera simplement l’occasion de fusionner tous les différents systèmes d’entrepôt de données de différents endroits et pays sous un même toit. Vous pouvez toujours les séparer par pays afin que les données restent sécurisées et accessibles uniquement à ceux qui en ont besoin. Mais en même temps, cela vous permettra de construire une solution d’entrepôt unifiée couvrant toutes les données de l’entreprise.

Un autre cas pourrait être si l’objectif est de créer une plate-forme d’entrepôt de données avec le support étendu des self-services. Vous pouvez le comprendre comme un ensemble de traitements que les utilisateurs individuels du système peuvent créer. Mais en même temps, ils ne font jamais partie de la solution de plate-forme commune. Cela signifie que ces services resteront accessibles uniquement au créateur ou au groupe de personnes défini par le créé. Ils n’affecteront en aucune façon le reste des utilisateurs.

Consultez notre comparatif entre Datalake et Datawarehouse.

Lakehouse par Databricks sur AWS

Source : databricks.com

Lakehouse est un terme qui est vraiment lié au service Databricks. Même s’il ne s’agit pas d’un service AWS natif, il vit et fonctionne très bien dans l’écosystème AWS et offre diverses options pour se connecter et s’intégrer à d’autres services AWS.

Les Databricks visent à connecter entre eux des domaines (auparavant) très distincts :

  • Une solution pour le stockage de lac de données de données non structurées, semi-structurées et structurées.
  • Une solution d’entrepôt de données pour les données de requête structurées et rapidement accessibles (également appelée Delta Lake).
  • Une solution prenant en charge l’analyse et l’apprentissage automatique sur le lac de données.
  • Gouvernance des données pour tous les domaines ci-dessus avec une administration centralisée et des outils prêts à l’emploi pour soutenir la productivité de différents types de développeurs et d’utilisateurs.

Il s’agit d’une plate-forme commune que les ingénieurs de données, les développeurs SQL et les spécialistes des données d’apprentissage automatique peuvent utiliser simultanément. Chacun des groupes dispose également d’un ensemble d’outils qu’ils peuvent utiliser pour accomplir leurs tâches.

Databricks vise donc une solution polyvalente, essayant de combiner les avantages du lac de données et de l’entrepôt de données en une seule solution. En plus de cela, il fournit les outils pour tester et exécuter des modèles d’apprentissage automatique directement sur des magasins de données déjà construits.

Avantages et inconvénients

Les avantages à considérer :

  • Databricks est une plateforme de données hautement évolutive. Il évolue en fonction de la taille de la charge de travail, et il le fait même automatiquement.
  • Il s’agit d’un environnement collaboratif pour les scientifiques des données, les ingénieurs des données et les analystes commerciaux. Avoir la possibilité de faire tout cela dans le même espace et ensemble est un grand avantage. Non seulement d’un point de vue organisationnel, mais cela permet également d’économiser un autre coût autrement nécessaire pour des environnements séparés.
  • AWS Databricks s’intègre de manière transparente aux autres services AWS, tels qu’Amazon S3, Amazon Redshift et Amazon EMR. Cela permet aux utilisateurs de transférer facilement des données entre les services et de profiter de la gamme complète de services cloud AWS.

Les inconvénients à prendre en compte :

  • Les Databricks peuvent être complexes à configurer et à gérer, en particulier pour les utilisateurs qui débutent dans le traitement du Big Data. Cela nécessite un niveau d’expertise technique important pour tirer le meilleur parti de la plate-forme.
  • Bien que Databricks soit rentable en termes de modèle de tarification par répartition, il peut toujours être coûteux pour les projets de traitement de données à grande échelle. Le coût d’utilisation de la plate-forme peut rapidement s’accumuler, surtout si les utilisateurs doivent augmenter leurs ressources.
  • Databricks fournit une gamme d’outils et de modèles prédéfinis, mais cela peut également être une limitation pour les utilisateurs qui ont besoin de plus d’options de personnalisation. La plate-forme peut ne pas convenir aux utilisateurs qui ont besoin de plus de flexibilité et de contrôle sur leurs workflows de traitement de données volumineuses.

Objectif et cas d’utilisation réel

AWS Databricks est le mieux adapté aux grandes entreprises avec une très grande quantité de données. Ici, il peut couvrir l’exigence de charger et de contextualiser diverses sources de données à partir de différents systèmes externes.

Souvent, l’exigence est de fournir des données en temps réel. Cela signifie qu’à partir du moment où les données apparaissent dans le système source, les processus doivent récupérer immédiatement et traiter et stocker les données dans Databricks instantanément ou avec un délai minimal. Si le retard est supérieur à une minute, il s’agit d’un traitement en temps quasi réel. Dans tous les cas, les deux scénarios sont souvent réalisables avec la plateforme Databricks. Cela est principalement dû au grand nombre d’adaptateurs et d’interfaces en temps réel se connectant à divers autres services natifs AWS.

Databricks s’intègre également facilement aux systèmes ETL d’Informatica. Chaque fois que le système d’organisation utilise déjà largement l’écosystème Informatica, Databricks ressemble à un bon ajout compatible à la plate-forme.

Derniers mots

Alors que le volume de données continue de croître de façon exponentielle, il est bon de savoir qu’il existe des solutions qui peuvent y faire face efficacement. Ce qui était autrefois un cauchemar à administrer et à entretenir nécessite désormais très peu de travail administratif. L’équipe peut se concentrer sur la création de valeur à partir des données.

En fonction de vos besoins, il vous suffit de choisir le service qui peut y répondre. Alors qu’AWS Databricks est quelque chose que vous devrez probablement respecter une fois la décision prise, les autres alternatives sont beaucoup plus flexibles, même si elles sont moins performantes, en particulier leurs modes sans serveur. Il est assez facile de migrer vers une autre solution ultérieurement.