Importer énorme base de données

BiBiO

Elite
Yop tt le monde,

Je fais appel à votre aide ! Je dois importer, localement, un fichier .sql de 5Go contenant une seule table et des millions d'INSERT -_-.
Je ne trouve aucun moyen d'uploader cette base de donnée...
Quel programme utiliseriez-vous pour importer une BDD comme celle ci?
Je pourrais spliter le fichier en plusieurs fichiers... Mais je ne vois pas bcp de solutions..
Pour l'instant je travaille avec wamp mais j'ai déjà essayé postgres, qui n'a pas fait long feu...
J'ai fait des recherches et j'ai essayé BigDump mais il y avait une erreur (can't seek quelque chose).



Merci d'avance !
 

DeScH

AstaLaVista
C'est une base mysql? Tu peux toujours diviser le fichier en plusieurs partie. Tu l'importes de quelle manière? phpMyAdmin? Tu as quoi comme erreur? Quel upload_max_filesize, memory_limit et
post_max_size as-tu dans php.ini?
 
1er
OP
BiBiO

BiBiO

Elite
C'est une base mysql? Tu peux toujours diviser le fichier en plusieurs partie. Tu l'importes de quelle manière? phpMyAdmin? Tu as quoi comme erreur? Quel upload_max_filesize, memory_limit et
post_max_size as-tu dans php.ini?
Les valeurs n'ont pas été changées, et sont donc celles par défaut.
upload_max_filesize = 2M
post_max_size = 8M


J'essaie de les importer via phpmyadmin mais la taille max est de 2Mo. Donc j'ai essaye BigDump mais seulement avec le fichier de 5go. J'essaierai demain de spliter ts les fichiers et de les uploader séparement avec BigDump.

En fait c'est une BDD postgres. Voici le début du fichier (après ca, ce ne sont ques des millions d'INSERT)
SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

SET search_path = public, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = false;

CREATE TABLE gps_points (
validate boolean,
"timestamp" timestamp without time zone NOT NULL,
longitude double precision NOT NULL,
is_east boolean,
latitude double precision NOT NULL,
is_north boolean,
height double precision,
speed double precision,
heading_direction double precision,
user_id bigint NOT NULL,
number_of_satellites integer,
id bigint DEFAULT nextval(('gps_points_seq'::text)::regclass) NOT NULL
);


ALTER TABLE public.gps_points OWNER TO postgres;
EDIT : J'ai splitté le fichier de 5Go en fichiers de 40Mo et je vais tenter de tout rentrer ds postgres. Je vous tiens au courant :)
 
1er
OP
BiBiO

BiBiO

Elite
Ca fonctionne sur postgres mais j'ai 130 fichiers que je dois entrer manuellement....
Faudrait que je trouve un script qui fait ca automatiquement. Ca prend environ 30sec par fichier...
 

Tifox

ou pas
il n'y a pas moyen d'effectuer ça en ligne de commande, si c'est en local (mes connaissance en ligne de commande sont un peu loin ...)




Sinon un petit programme php qui te ferait ça ligne par ligne ?

Genre ça ouvre le fichier, lit un insert, l'exécute, le vérifie et si ok, supprime la ligne et ferme le fichier. Puis ça recommence jusqu'a la fin ou plantage et si plantage, tu relances (le fichier sera ou tu te sera arrête.
(Penser a augmenter le max_exe_time de php)
 
Haut