Avons-nous besoin d’un lac de donnĂ©es ? Que faire de l'entrepĂŽt de donnĂ©es ?

Cet article est une traduction de mon article sur le support - Premiers pas avec Data Lake, qui s'est avéré trÚs populaire, probablement en raison de sa simplicité. Par conséquent, j'ai décidé de l'écrire en russe et d'en ajouter un peu pour faire comprendre à une personne ordinaire qui n'est pas un spécialiste des données ce qu'est un entrepÎt de données (DW), et ce qu'est un lac de données (Data Lake), et comment ils s'entendre.

Pourquoi ai-je voulu Ă©crire sur le lac de donnĂ©es ? Je travaille avec les donnĂ©es et l'analyse depuis plus de 10 ans, et maintenant je travaille dĂ©finitivement avec le Big Data chez Amazon Alexa AI Ă  Cambridge, qui se trouve Ă  Boston, mĂȘme si je vis Ă  Victoria sur l'Ăźle de Vancouver et que je visite souvent Boston et Seattle. , et À Vancouver, et parfois mĂȘme Ă  Moscou, je prends la parole lors de confĂ©rences. J'Ă©cris aussi de temps en temps, mais j'Ă©cris principalement en anglais, et j'ai dĂ©jĂ  Ă©crit quelques livres, j'ai Ă©galement besoin de partager les tendances analytiques d'AmĂ©rique du Nord, et j'Ă©cris parfois dans tĂ©lĂ©gramme.

J'ai toujours travaillĂ© avec des entrepĂŽts de donnĂ©es et depuis 2015, j'ai commencĂ© Ă  travailler en Ă©troite collaboration avec Amazon Web Services et je suis gĂ©nĂ©ralement passĂ© Ă  l'analyse cloud (AWS, Azure, GCP). J'ai observĂ© l'Ă©volution des solutions d'analyse depuis 2007 et j'ai mĂȘme travaillĂ© pour le fournisseur d'entrepĂŽts de donnĂ©es Teradata et l'ai implĂ©mentĂ© chez Sberbank, et c'est Ă  ce moment-lĂ  qu'est apparu le Big Data avec Hadoop. Tout le monde a commencĂ© Ă  dire que l'Ăšre du stockage Ă©tait rĂ©volue et que maintenant tout Ă©tait sur Hadoop, puis ils ont recommencĂ© Ă  parler de Data Lake, que maintenant la fin de l'entrepĂŽt de donnĂ©es Ă©tait dĂ©finitivement arrivĂ©e. Mais heureusement (peut-ĂȘtre malheureusement pour certains qui ont gagnĂ© beaucoup d’argent en crĂ©ant Hadoop), l’entrepĂŽt de donnĂ©es n’a pas disparu.

Dans cet article, nous verrons ce qu'est un lac de donnĂ©es. Cet article est destinĂ© aux personnes qui ont peu ou pas d’expĂ©rience avec les entrepĂŽts de donnĂ©es.

Avons-nous besoin d’un lac de donnĂ©es ? Que faire de l'entrepĂŽt de donnĂ©es ?

Sur la photo, le lac de Bled, c'est l'un de mes lacs prĂ©fĂ©rĂ©s, mĂȘme si je n'y suis allĂ© qu'une seule fois, je m'en suis souvenu toute ma vie. Mais nous parlerons d'un autre type de lac : un lac de donnĂ©es. Peut-ĂȘtre que beaucoup d'entre vous ont dĂ©jĂ  entendu parler de ce terme plus d'une fois, mais une dĂ©finition supplĂ©mentaire ne fera de mal Ă  personne.

Tout d’abord, voici les dĂ©finitions les plus populaires d’un Data Lake :

"un stockage de fichiers de tous les types de données brutes disponibles pour analyse par n'importe qui dans l'organisation" - Martin Fowler.

« Si vous pensez qu'un datamart est une bouteille d'eau - purifiĂ©e, conditionnĂ©e et conditionnĂ©e pour une consommation pratique, alors un lac de donnĂ©es est un immense rĂ©servoir d'eau sous sa forme naturelle. Utilisateurs, je peux collecter de l'eau pour moi-mĂȘme, plonger profondĂ©ment, explorer »- James Dixon.

Nous savons désormais avec certitude qu'un lac de données concerne l'analyse, il nous permet de stocker de grandes quantités de données dans leur forme originale et nous disposons de l'accÚs nécessaire et pratique aux données.

J'aime souvent simplifier les choses. Si je peux expliquer un terme complexe en termes simples, c'est que j'ai compris son fonctionnement et son utilitĂ©. Une fois, je fouinais dans iPhone dans la galerie photo, et lĂ  j'ai rĂ©alisĂ© qu'il s'agissait d'un vĂ©ritable lac de donnĂ©es, j'ai mĂȘme créé une diapositive pour des confĂ©rences :

Avons-nous besoin d’un lac de donnĂ©es ? Que faire de l'entrepĂŽt de donnĂ©es ?

C'est trĂšs simple. On prend une photo avec son tĂ©lĂ©phone, elle est enregistrĂ©e sur le tĂ©lĂ©phone et peut ĂȘtre sauvegardĂ©e sur iCloud (un service de stockage de fichiers dans le nuage). Le tĂ©lĂ©phone enregistre Ă©galement les mĂ©tadonnĂ©es de la photo : son contenu, sa gĂ©olocalisation et la date et l'heure. On peut ainsi utiliser une interface conviviale. iPhonePour retrouver nos photos, on consulte mĂȘme les statistiques. Par exemple, si je recherche des photos avec le mot « feu Â», je trouve trois photos de feux de camp. Pour moi, c'est comme un outil de veille stratĂ©gique : rapide et efficace.

Et bien sûr, il ne faut pas oublier la sécurité (autorisation et authentification), sinon nos données peuvent facilement tomber dans le domaine public. Il y a beaucoup de nouvelles concernant les grandes entreprises et les startups dont les données sont devenues accessibles au public en raison de la négligence des développeurs et du non-respect de rÚgles simples.

MĂȘme une image aussi simple nous aide Ă  imaginer ce qu'est un lac de donnĂ©es, ses diffĂ©rences par rapport Ă  un entrepĂŽt de donnĂ©es traditionnel et ses principaux Ă©lĂ©ments :

  1. Chargement des données (Ingestion) est un élément clé du lac de données. Les données peuvent entrer dans l'entrepÎt de données de deux maniÚres : par lots (chargement à intervalles) et par streaming (flux de données).
  2. Stockage de fichiers (Stockage) est le composant principal du Data Lake. Nous avions besoin que le stockage soit facilement Ă©volutif, extrĂȘmement fiable et peu coĂ»teux. Par exemple, dans AWS, il s'agit de S3.
  3. Catalogue et recherche (Catalogue et recherche) - pour éviter le Data Swamp (c'est-à-dire lorsque nous vidons toutes les données dans une seule pile, et qu'il est alors impossible de travailler avec), nous devons créer une couche de métadonnées pour classer les données. afin que les utilisateurs puissent facilement trouver les données dont ils ont besoin pour l'analyse. De plus, vous pouvez utiliser des solutions de recherche supplémentaires telles que ElasticSearch. La recherche aide l'utilisateur à trouver les données requises via une interface conviviale.
  4. Traitement (Processus) - cette étape est responsable du traitement et de la transformation des données. Nous pouvons transformer les données, modifier leur structure, les nettoyer et bien plus encore.
  5. sécurité (Sécurité) - Il est important de consacrer du temps à la conception sécuritaire de la solution. Par exemple, le cryptage des données pendant le stockage, le traitement et le chargement. Il est important d'utiliser des méthodes d'authentification et d'autorisation. Enfin, un outil d'audit est nécessaire.

D’un point de vue pratique, on peut caractĂ©riser un lac de donnĂ©es par trois attributs :

  1. Collectez et stockez n'importe quoi — le lac de donnĂ©es contient toutes les donnĂ©es, Ă  la fois les donnĂ©es brutes non traitĂ©es pour n'importe quelle pĂ©riode de temps et les donnĂ©es traitĂ©es/nettoyĂ©es.
  2. Analyse approfondie — un lac de donnĂ©es permet aux utilisateurs d'explorer et d'analyser des donnĂ©es.
  3. AccĂšs flexible — Le lac de donnĂ©es offre un accĂšs flexible Ă  diffĂ©rentes donnĂ©es et diffĂ©rents scĂ©narios.

Nous pouvons maintenant parler de la diffĂ©rence entre un entrepĂŽt de donnĂ©es et un lac de donnĂ©es. Habituellement, les gens demandent :

  • Qu’en est-il de l’entrepĂŽt de donnĂ©es ?
  • Remplaçons-nous l’entrepĂŽt de donnĂ©es par un lac de donnĂ©es ou l’étendons-nous ?
  • Est-il encore possible de se passer d’un lac de donnĂ©es ?

Bref, il n'y a pas de rĂ©ponse claire. Tout dĂ©pend de la situation spĂ©cifique, des compĂ©tences de l'Ă©quipe et du budget. Par exemple, migration d'un entrepĂŽt de donnĂ©es d'Oracle vers AWS et crĂ©ation d'un lac de donnĂ©es par une filiale d'Amazon - Woot - Notre histoire de lac de donnĂ©es : comment Woot.com a créé un lac de donnĂ©es sans serveur sur AWS.

D'un autre cÎté, l'éditeur Snowflake affirme qu'il n'est plus nécessaire de penser à un lac de données, puisque sa plateforme de données (jusqu'en 2020, c'était un entrepÎt de données) vous permet de combiner à la fois un lac de données et un entrepÎt de données. Je n'ai pas beaucoup travaillé avec Snowflake, et c'est vraiment un produit unique qui peut faire cela. Le prix de l'émission est une autre affaire.

En conclusion, mon opinion personnelle est que nous avons toujours besoin d'un entrepĂŽt de donnĂ©es comme principale source de donnĂ©es pour nos rapports, et que tout ce qui ne convient pas, nous le stockons dans un lac de donnĂ©es. Tout le rĂŽle de l’analyse est de fournir un accĂšs facile aux entreprises pour qu’elles puissent prendre des dĂ©cisions. Quoi qu'on en dise, les utilisateurs professionnels travaillent plus efficacement avec un entrepĂŽt de donnĂ©es qu'avec un lac de donnĂ©es, par exemple chez Amazon - il y a Redshift (entrepĂŽt de donnĂ©es analytiques) et il y a Redshift Spectrum/Athena (interface SQL pour un lac de donnĂ©es dans S3 basĂ©e sur Ruche/Presto). Il en va de mĂȘme pour d’autres entrepĂŽts de donnĂ©es analytiques modernes.

Examinons une architecture typique d'entrepĂŽt de donnĂ©es :

Avons-nous besoin d’un lac de donnĂ©es ? Que faire de l'entrepĂŽt de donnĂ©es ?

C'est une solution classique. Nous avons des systÚmes sources, en utilisant ETL/ELT, nous copions les données dans un entrepÎt de données analytiques et les connectons à une solution de Business Intelligence (mon préféré est Tableau, et le vÎtre ?).

Cette solution présente les inconvénients suivants :

  • Les opĂ©rations ETL/ELT nĂ©cessitent du temps et des ressources.
  • En rĂšgle gĂ©nĂ©rale, la mĂ©moire pour stocker les donnĂ©es dans un entrepĂŽt de donnĂ©es analytiques n'est pas bon marchĂ© (par exemple, Redshift, BigQuery, Teradata), car nous devons acheter un cluster entier.
  • Les utilisateurs professionnels ont accĂšs Ă  des donnĂ©es nettoyĂ©es et souvent agrĂ©gĂ©es et n'ont pas accĂšs aux donnĂ©es brutes.

Bien entendu, tout dĂ©pend de votre cas. Si vous ne rencontrez aucun problĂšme avec votre entrepĂŽt de donnĂ©es, vous n'avez pas du tout besoin d'un lac de donnĂ©es. Mais lorsque des problĂšmes surviennent en raison du manque d’espace, de puissance ou que le prix joue un rĂŽle clĂ©, vous pouvez alors envisager l’option d’un lac de donnĂ©es. C’est pourquoi le lac de donnĂ©es est trĂšs populaire. Voici un exemple d’architecture de lac de donnĂ©es :
Avons-nous besoin d’un lac de donnĂ©es ? Que faire de l'entrepĂŽt de donnĂ©es ?
En utilisant l'approche du lac de données, nous chargeons des données brutes dans notre lac de données (par lots ou en streaming), puis nous traitons les données selon nos besoins. Le lac de données permet aux utilisateurs métiers de créer leurs propres transformations de données (ETL/ELT) ou d'analyser les données dans des solutions de Business Intelligence (si le pilote nécessaire est disponible).

L'objectif de toute solution d'analyse est de servir les utilisateurs professionnels. Nous devons donc toujours travailler selon les exigences de l’entreprise. (Chez Amazon, c'est l'un des principes : travailler à rebours).

En travaillant Ă  la fois avec un entrepĂŽt de donnĂ©es et un lac de donnĂ©es, nous pouvons comparer les deux solutions :

Avons-nous besoin d’un lac de donnĂ©es ? Que faire de l'entrepĂŽt de donnĂ©es ?

La principale conclusion que l’on peut tirer est que l’entrepĂŽt de donnĂ©es ne concurrence pas le lac de donnĂ©es, mais le complĂšte. Mais c'est Ă  vous de dĂ©cider ce qui convient Ă  votre cas. C’est toujours intĂ©ressant de l’essayer soi-mĂȘme et d’en tirer les bonnes conclusions.

Je voudrais Ă©galement vous raconter un des cas oĂč j'ai commencĂ© Ă  utiliser l'approche du lac de donnĂ©es. Tout est assez trivial, j'ai essayĂ© d'utiliser un outil ELT (nous avions Matillion ETL) et Amazon Redshift, ma solution a fonctionnĂ©, mais ne rĂ©pondait pas aux exigences.

J'avais besoin de prendre des journaux Web, de les transformer et de les agrĂ©ger pour fournir des donnĂ©es pour 2 cas :

  1. L'équipe marketing souhaitait analyser l'activité des robots pour le référencement
  2. Le service informatique souhaitait examiner les mesures de performances des sites Web

Des journaux trĂšs simples, trĂšs simples. Voici un exemple :

https 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 
192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57 
"GET https://www.example.com:443/ HTTP/1.1" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 
arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067
"Root=1-58337281-1d84f3d73c47ec4e58577259" "www.example.com" "arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012"
1 2018-07-02T22:22:48.364000Z "authenticate,forward" "-" "-"

Un fichier pesait 1 à 4 mégaoctets.

Mais il y avait une difficultĂ©. Nous avions 7 domaines dans le monde et 7000 50 4 fichiers ont Ă©tĂ© créés en une journĂ©e. Ce n'est pas beaucoup plus de volume, seulement XNUMX gigaoctets. Mais la taille de notre cluster Redshift Ă©tait Ă©galement petite (XNUMX nƓuds). Le chargement d'un fichier de maniĂšre traditionnelle a pris environ une minute. Autrement dit, le problĂšme n’a pas Ă©tĂ© rĂ©solu de front. Et ce fut le cas lorsque j’ai dĂ©cidĂ© d’utiliser l’approche du lac de donnĂ©es. La solution ressemblait Ă  ceci :

Avons-nous besoin d’un lac de donnĂ©es ? Que faire de l'entrepĂŽt de donnĂ©es ?

C'est assez simple (je tiens à préciser que l'avantage de travailler dans le cloud est la simplicité). J'ai utilisé:

  • AWS Elastic Map Reduction (Hadoop) pour la puissance de calcul
  • AWS S3 comme stockage de fichiers avec la possibilitĂ© de chiffrer les donnĂ©es et de limiter l'accĂšs
  • Spark comme puissance de calcul InMemory et PySpark pour la logique et la transformation des donnĂ©es
  • Parquet grĂące Ă  Spark
  • AWS Glue Crawler en tant que collecteur de mĂ©tadonnĂ©es sur les nouvelles donnĂ©es et partitions
  • Redshift Spectrum en tant qu'interface SQL vers le lac de donnĂ©es pour les utilisateurs Redshift existants

Le plus petit cluster EMR+Spark a traitĂ© l'intĂ©gralitĂ© de la pile de fichiers en 30 minutes. Il existe d'autres cas pour AWS, notamment beaucoup liĂ©s Ă  Alexa, oĂč il y a beaucoup de donnĂ©es.

Tout récemment, j'ai appris que l'un des inconvénients d'un lac de données est le RGPD. Le problÚme est que lorsque le client demande de le supprimer et que les données se trouvent dans l'un des fichiers, nous ne pouvons pas utiliser le langage de manipulation de données et l'opération DELETE comme dans une base de données.

J'espÚre que cet article a clarifié la différence entre un entrepÎt de données et un lac de données. Si cela vous intéresse, je peux traduire davantage de mes articles ou d'articles de professionnels que je lis. Et aussi parler des solutions avec lesquelles je travaille et de leur architecture.

Source: habr.com

Achetez un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Achetez un hĂ©bergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster