intégration d'un très grand fichier dans Postgres
Posté : dim. 25 févr. 2018 18:58
Bonjour.
A la suite de la sortie de la deuxième version du fichier Pwned Passwords
https://www.troyhunt.com/ive-just-launc ... version-2/
Je me suis dis que j'allais me faire le service de vérification de mot de passe moi même sans passer le service https://haveibeenpwned.com
Ceci me permettrait donc faire des requête offline.
J'ai donc récupéré le fichier contenant le hash(sha1) d'une liste de mot de passe avec le nombre d'occurrence d'utilisation : https://haveibeenpwned.com/Passwords
Ce fichier fait 31,6Go décompressé.
Je l'ai intégré dans une base Postgres à l'aide de la commande copy (https://www.postgresql.org/docs/9.2/sta ... -copy.html)
Le caractère séparateur étant ':'
L'insertion semble avoir bien fonctionné, mais je n'en suis même pas sur vue la volumétrie.
J'en arrive à un blocage. les requêtes sont interminables.
Je suis débutant en optimisation de base de données et j'aurais besoin d'un coup de main sur le type de donnée à choisir pour la table, et surtout sur l'index à appliquer ou sur la façon de faire la requête.
la table à la structure suivante :
CREATE TABLE public.password
(
id text,
"number" bigint
)
WITH (
OIDS=FALSE
);
Je vous remercie par avance, en espérant que cette question vous intéressera.
Seb
A la suite de la sortie de la deuxième version du fichier Pwned Passwords
https://www.troyhunt.com/ive-just-launc ... version-2/
Je me suis dis que j'allais me faire le service de vérification de mot de passe moi même sans passer le service https://haveibeenpwned.com
Ceci me permettrait donc faire des requête offline.
J'ai donc récupéré le fichier contenant le hash(sha1) d'une liste de mot de passe avec le nombre d'occurrence d'utilisation : https://haveibeenpwned.com/Passwords
Ce fichier fait 31,6Go décompressé.
Je l'ai intégré dans une base Postgres à l'aide de la commande copy (https://www.postgresql.org/docs/9.2/sta ... -copy.html)
Le caractère séparateur étant ':'
L'insertion semble avoir bien fonctionné, mais je n'en suis même pas sur vue la volumétrie.
J'en arrive à un blocage. les requêtes sont interminables.
Je suis débutant en optimisation de base de données et j'aurais besoin d'un coup de main sur le type de donnée à choisir pour la table, et surtout sur l'index à appliquer ou sur la façon de faire la requête.
la table à la structure suivante :
CREATE TABLE public.password
(
id text,
"number" bigint
)
WITH (
OIDS=FALSE
);
Je vous remercie par avance, en espérant que cette question vous intéressera.
Seb