Marvel: Infinity War ou Comment collecter des données pour votre projet en quelques minutes



J'ai deux domaines d'intérêt. Le premier: la société des analystes de données paresseux anonymes, le second: la société des geeks anonymes. Et si tout va bien avec le second, alors avec le premier tout est plus compliqué. Lorsque vous dites aux gens quelles tâches les analystes de données résolvent, que représentent-ils? Par expérience, elle a introduit la définition dans Google et la toute première:
Un analyste de données est un spécialiste polyvalent qui possède des connaissances en mathématiques, statistiques, informatique, informatique, commerce et économie. L'analyste Big Data étudie de grandes quantités de données contenant des informations disparates, par exemple: résultats de recherche, tendances du marché, préférences des clients, etc. La recherche et l'analyse de ces informations peuvent conduire à de nouvelles découvertes scientifiques, augmenter l'efficacité de l'entreprise, de nouvelles opportunités de génération de revenus et un meilleur service client. etc. La principale compétence des scientifiques des données est de voir les connexions logiques dans le système d'informations collectées et, sur cette base, de développer certaines solutions commerciales, des modèles.

Définition tirée de buduguru.org/profession/39 .

Spécialiste universel, d'accord. A en juger par la description de quelque chose entre le Dr Manhattan et Stephen Hawking.


Cependant, je n'entrerai pas dans la sémantique de cette définition, je veux parler du sujet douloureux des analystes de données (non, pas celui où les propos lancinants sur le manque de données). Et si les données SONT?

Et nous allons ici aux problèmes suivants:

  • Quels outils puis-je utiliser pour étudier ces données?
  • Comment convertir ces tableaux de données?
  • Comment les conserver? Dois-je les stocker?
  • Et s'il y a beaucoup de sources et qu'elles sont toutes hétérogènes?

Ok Nous avons formé un bassin de problèmes, mais que faire ensuite? Dans cet article, je vais parler de l'outil que notre équipe de développement a implémenté, à savoir le système cloud iDVP.Data SaaS .

Qu'est ce que c'est

iDVP.Data SaaS est un outil multifonctionnel pour travailler avec des données dans le cloud, qui vous permet de connecter diverses données, de les convertir et de les envoyer à des systèmes externes, comme des services Web.

Guerre à l'infini


Ici, nous entrecoupons involontairement la deuxième sphère d'intérêts: à titre d'exemple, j'ai décidé de connecter des données Marvel ouvertes à iDVP.Data SaaS . Est-ce que tout le monde a regardé un nouveau film sur la guerre à l'infini? Après avoir regardé le film, je n'ai pas pu m'empêcher de rappeler d'autres conflits à grande échelle dans l'univers Marvel, qui ont subi des changements mondiaux dans la franchise. Il est devenu intéressant pour moi de me rappeler combien de personnages de la bande dessinée ont participé à Infinity War et combien y sont morts? Pour répondre à ces questions, je me suis tourné vers la source la plus fiable - le site officiel de Marvel .



Tout d'abord, allons sur le site Web iDVP.Data SaaS et inscrivez-vous.

Après cela, nous arrivons à la page de travail de l'utilisateur, où il y a des espaces de travail avec des cas de démonstration de test. Ils présentent des flux de données provenant de la connexion d'une source de données à une vitrine de données.



Après avoir examiné les cas de test et ajouté un nouvel espace de travail, passons à la création de notre propre flux de données. Comme sources, j'ai choisi les données suivantes:

  • Service REST qui renvoie des informations sur tous les personnages de l'univers Marvel;
  • Service REST qui renvoie des informations sur tous les événements de l'univers Marvel;
  • fichier au format CSV, qui indique les principaux participants à la guerre civile.

Étape 1. Connectez-vous

Nous connectons les données une par une:



En conséquence, nous obtenons trois sources de données connectées:



  • participants_marvel_raw - service;
  • characters_marvel_raw - service;
  • events_marvel_raw - fichier au format CSV.

Étape 2. Convertir

Après avoir connecté les données, nous créons des ensembles de données (ensembles de données), où nous effectuons les transformations nécessaires (nettoyage des données, calculs ou, par exemple, analyse des données de JSON) à l'aide de scripts SQL.

select k.id, k.name, k.com.name as comics_name, k.ser.name as series_name, k.stor.name as stories_name, k.event.name as events_name from ( select a.id, a.name, flatten(a.comics) as com, flatten(a.series) as ser, flatten(a.stories) as stor, flatten(a.events) as event from ( select c.`data`.id as id, c.`data`.name as name, c.`data`.comics.`items` as comics, c.`data`.series.`items` as series, c.`data`.stories.`items` as stories, c.`data`.events.`items` as events from ( select t.res.`data`.`results` as `data` from ( select convert_from(a.content, 'JSON') res from `characters_marvel_raw` a ) t ) c ) a ) k 

En conséquence, nous obtenons des données analysées:



Et une telle chaîne de flux de données:



Après avoir connecté les données et les avoir converties, la vitesse d'accès aux informations reçues peut toujours être faible (en raison de la longue réponse de la source ou en raison de la grande quantité de données). Ici, le mécanisme de «matérialisation» (stockage) des données dans le SaaS iDVP.Data lui-même est déclenché . L'accès aux données stockées est extrêmement rapide, même lorsque vous travaillez avec de gros volumes d'informations grâce à l'utilisation des technologies BigData. Les données enregistrées peuvent être mises à jour à tout moment (en tout ou en partie), ainsi que d'ajuster le calendrier selon lequel le système les mettra automatiquement à jour.

Ainsi, il est possible d'accumuler des données historiques, même si la source elle-même ne le prend pas en charge. La matérialisation permet également de continuer à travailler avec les données si la source devient inaccessible en enregistrant iDVP.Data SaaS dans le système de fichiers.



Étape 3. Publier

Nous créons une vitrine de données (service Web), qui représente également une requête SQL. Dans la vitrine de données, vous pouvez définir les paramètres d'entrée et de sortie.



Une fois les data marts créés, ils peuvent être publiés dans le domaine public et utilisés dans leurs systèmes externes.




Le service résultant peut être utilisé pour créer des rapports et des applications 3D, comme, par exemple, nous l'avons fait pour visualiser les données des élections 2018 .

Conclusions de PS




Première conclusion

Nous nous sommes souvenus de la ligne de bandes dessinées où la guerre à l'infini est mentionnée, et voici ce que nous avons obtenu:

  • 57 personnages ont participé;
  • 5 non confirmé;
  • 15 sont morts.

Deuxième conclusion

Si vous devez gérer rapidement et facilement les données, vous pouvez utiliser le système SaaS iDVP.Data , qui est actuellement en phase de test bêta. Notre équipe espère que parmi vous qui aurez lu cette histoire jusqu'au bout, il y aura ceux qui seront les premiers testeurs de notre nouvel outil.

Avec lui, vous pouvez indépendamment:

  • se connecter à diverses sources;
  • recevoir uniformément les données de toutes les sources;
  • Effectuer des transformations de données ETL à l'aide de SQL
  • augmenter la vitesse de traitement des données en utilisant les technologies BigData;
  • analyser les données;
  • fournir des données à des systèmes externes;
  • effectuer ces opérations dans une interface pratique et simple.

Merci d'avance pour vos retours!

Un exemple d'utilisation sur les commentaires de poste:

Statistiques sur les commentaires .

Source: https://habr.com/ru/post/fr412579/


All Articles