Importer 2 milliards de données dans Elasticsearch


#1

Bonjour à tous,

On m'a invité à poser ma question directement sur le forum officiel, c'est pourquoi je suis ici :slight_smile:

J'écris aujourd'hui car je dois, pour un projet de cours de bigdata, réussir à importer 2 milliards de données dans une base de données aux choix et réussir à faire des opérations dessus. Ces données sont des mots de passe qui proviennent d'une base de données distribuée gratuitement sur le net.

Voici l'intitulé du cours :

Sur la base du fichier fourni contenant les mots de passe :

1. Vous utilisez la technologie qui vous semble la plus appropriée.
2. Votre application doit:
2.1 Donner le nombre de mot de passe total
2.2 Rechercher un mot de passe et l'afficher
2.3 Le CRUD est possible sur la liste des mots de passe
2.4 Calculer le nombre de mots de passe commençant par un caractère choisi, les afficher.
2.5 Donner le nombre de mots de passe avec 1 jusqu'à n caractères.
2.6 Rechercher une chaîne de caractère dans les mots de passe et les afficher.

C'est pourquoi, j'ai choisi d'utiliser Elasticsearch pour ma part. J'ai donc installé en local Elasticsearch & Kibana seulement via Docker et j'ai écrit un script qui récupère les mots de passe par tranche de 80'000 entrées et qui fait un bulk vers l'index qui stock tous ces mots de passe. Tout fonctionnait jusqu'à ce que l'index atteigne 100'000'000 d'entrées/documents. Le container a crash et je ne peux plus rien importer.

Ma question est donc la suivante, pensez-vous qu'il faut impérativement un cluster pour importer autant de données ? (2 milliards) Si oui, merci de me fournir des informations techniques svp

Je ne compte pas dépenser d'argent dans ce projet de cours sachant que cette base va rester "en ligne" maximum 2 semaines avant d'être supprimée. J'ai essayé de regarder du côté de GCP qui propose 300$ de crédit gratuit : https://console.cloud.google.com/marketplace/details/bitnami-launchpad/elk?filter=category:big-data&pli=1

Dans l'attente de votre aide, je vous souhaite une bonne année 2019 :slight_smile:

Merci
Kenshim


(David Pilato) #2

Hello. Merci d'avoir suivi l'invitation :slight_smile:

Ces données sont des mots de passe qui proviennent d'une base de données distribuée gratuitement sur le net.

Ca ressemble à https://haveibeenpwned.com/

C'est très bien. 80000 est peut-être un peu élevé néanmoins... A voir si en diminuant, ça peut aider.

Peux-tu partager les logs d'elasticsearch ? Quelle mémoire as-tu de dispo et quelle mémoire as-tu mis pour la HEAP ?

Je ne compte pas dépenser d'argent dans ce projet de cours sachant que cette base va rester "en ligne" maximum 2 semaines avant d'être supprimée.

Tu as aussi https://www.elastic.co/fr/cloud/elasticsearch-service/signup qui te donne pendant 2 semaines sans aucune CB un cluster elasticsearch pour jouer avec... C'est la solution officielle. Et tu peux choisir Google Cloud Platform. Conseillé notamment si ta source de données est sur GCP également :slight_smile:


(system) closed #3

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.