|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Bonjour!!
J'aimerai savoir si quelqu'un a deja eu ce probleme (et si oui comment le resoudre...?)... Voila je dois importer à travers une interface php un fichier .txt qui fait au minimum plus de 200Mo et qui contient pres de 2 millions de lignes à inserer dans la table... Mon script php fonctionne car je les tester avec des extraits de lignes de ce fichier .txt il me les insere comme il faut pas de probleme... Mais lorsque je veux importer mon fichier .txt en entier, il n'en veut pas - enfin il ne me met pas de message d'erreur mais il importe rien non plus Et lorsque j'insere mon fichier directement sur ma bdd via phpmysadmin, il me met : Citation:
Mais rien de plus lorsque je refais la meme manip il me remet le meme message d'erreur... Je vous met mon code php d'import des fichiers .txt ainsi que mon fichier .sql où il y a mes creations de tables de la bdd... import.php Code :
Code :
Laeti |
|||||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 6 ![]() |
Salut,
utilise bigdump tu peut le prendre ici ==>http://www.ozerov.de/pphlogger/dlcou...de/bigdump.zip c'est un script tout pret @@++ Hay |
|
|
00
|
|
|
#3 | |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Bonjour!!
J'ai testé le script qu'il y a sur le lien, et apres avoir fait les modifications necessaire concernant la bdd, je lance le script, et il me met comme erreur : Citation:
Donc je suis à nouveau bloqué, je ne sais pas comment faire pour modifier ces limites et donc importer mon (tres gros) fichier .txt Merci de votre aide Laeti |
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 6 ![]() |
Salut,
si tu a un acces ssh je te conseille de l'utiliser avec la commande elle te permetra d'importer ton backup dans ta base de donné Code :
mysql -h host -u user -ppass base_de_donnees < fichier_dump
modifie son extension en .sql et ensuite tu peut le remetre a son emplacement et utiliser big dump Bonne Chance @@++ Hay |
|
|
00
|
|
|
#5 | |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Bonjour!
J'ai essayé en faisant les modifs mais ca fonctionne toujour pas, il me met maintenant comme erreur : Citation:
|
|
|
|
00
|
|
|
#6 | |
|
Membre éclairé
![]() Inscription : février 2005 Messages : 349 ![]() |
salut
désolé de te contredire Hay26 mais ceci Citation:
Pour votre problème laetiheu, je vous conseille de splitter le fichier par 100000 lignes. . sous linux je précise cela va générer 20 fichiers bien distinct plus facile à l'importation. puis ensuite de tester la commande load data. Pourriez-vous donner un exemple de ligne contenu dans le fichier. |
|
|
|
00
|
|
|
#7 | |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Bonjour!!
Merci pour vos reponses... Je ne suis malheureusement pas sous linux mais sous XP avec un seur WAMP5 (test en local pour le moment puis sur serveur par la suite)... Je ne pourrai donc pas executer la commande sous linux pour splitter mon fichier... De plus, ce genre de fichier arrivera tous les mois, il doit etre inserer dans la base de donnée de maniere 'automatique' sans que l'utilisateur final n'aille dans mysql via phpmyadmin, donc à travers une interface php... Voici un exemple de ligne de mon fichier, toutes les lignes ont la meme structure (128 caracteres) : Citation:
Merci d'avance, bonne journée Laeti |
|
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
J'ai eu ce genre de problème mais avec des fichiers qui se calcule en giga :/ .
Si tu es sous mysql 4 tu peux prendre directement les fichiers de la base de données et le placer sur le serveur. C'est dans le répertoire data de mysql, tu copie colles et hop !... Tu peux te faire un petit vb qui copie d'un répertoire à un autre assez facilement si tu es sous windows dans le cas ou les deux serveurs communique au moin en reseau. Maintenant, je ne sais pas si tu maitrises la génération du fichier sql. Si c'est le cas tu peux générer le fichier de telle sorte que tu peux faire des enregistrements de plusieurs lignes dans une seul commande. Code :
INSERT INTO matable (teschamps) VALUES (tesvaleurs ligne 1) (tesvaleurs ligne 3) (tesvaleurs ligne 3) Si tu ne maitrise pas la génération de requête il y a des grandes chance que ça soit 1 enregistrement = 1 requête insert. Bref dans les deux cas, il faut que tu split tes requêtes insert pour qu'il se retrouve dans un table php. En gros Code :
Autre conseille c'est de mettre d'abord toutes les opérations de création de table en premier.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
||
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Merci de ta réponse...
Depuis mon dernier post j'ai fais un peu d'evolution dans le projet : j'ai réussi à faire le découpage de mon gros fichier .txt en plusieurs petit qui font 2Mo chacun (donc importable dans ma table mysql)... Maintenant j'ai le probleme suivant : est-il possible d'envoyer un dossier zip, qu'il y ait ensuite un traitement derriere afin que je puisse inserer dans ma table mes données de tous les fichiers...ou au moins de pouvoir reunir tous les fichiers en une fois et de faire une boucle quelque prt pour que chaque fichiers soient pris en compte du premier au dernier... mais je ne vois pas trop comment faire... Parce que le truc c'est qu'au final ce n'est pas moi qui utilisera mon projet mais un utilisateur lambda qui n'y connait rien et faut que je lui simplifie au maximum la tache... Laeti PS : Je suis sous un serveur WAMP5 en local pour le moment... |
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
PHP gère les fichiers compressé, le zip. Donc tu peux lire dans un zip et faire l'opération pour chaque fichier.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Ok je vais essayer de trouver ca et de tester...
Merci encore! laeti |
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Bon me revoila... Je viens de tester un peu tout ce que j'ai pu trouver concernant les zip en php mais ca marche pas...
Donc est ce que quelqu'un aurait une idée sur comment résoudre mon probleme de fichier (soit avec le gros fichier .txt de plus de 200Mo et de pres de 2 millions de lignes) ou avec pleins de petits fichiers de 2Mo à importer dans table mysql... Merci laeti |
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Tu peux lire dans chaque fichier. Quand il est traité tu le supprime du répertoire et tu passes à la suite. L'ordre d'execution n'a pas trop d'importance car apparement tu utilises le moteur MyISAM.
Si tu traites le nom du fichier par ordre alphanumérique tu seras là ou ça s'est arrêté. Si la fonction zip n'a pas fonctionné c'est peut être que l'extension n'est pas installé.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#14 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
bonjour à tous!
Citation:
Citation:
Citation:
petite question : une fois que j'aurai mes fichiers dans un répertoire connu sur le serveur, c'est possible de faire une boucle afin qu'il lise chaque fichier et me fasse le traitement voulu d'import dans ma bdd? et du coup est ce qu'il faut modifier (donc augmenter) les temps d'upload dans le php.ini si il y a beaucoup de fichiers .txt de 2Mo chacun à importer (ou alors pour chaque fichier ca sera 30s - par defaut )? Merci pour vos réponses laeti |
|||
|
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Tu peux faire en sorte que le fichier puisse être quelque part en FTP. Depuis php tu importes chaque fichier. Et oui, tu peux boucler sur chaque fichier présent dans le répertoire et faire le même traitement pour chacun. Le faite que tu utilises le moteur MyISAM facilite cette opération.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#16 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Bon mon projet avance un peu j'arrive maintenant à dezipper un fichier dans un répertoire de mon serveur.... Me reste plus qu'à boucler sur ce répertoire pour chaque fichier et faire mon insertion dans ma base de donnée pour chaque fichier...
|
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Ben le plus dure est passé alors
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#18 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Oui j'espere...enfin bon on verra bien si je repost ici c'est que je suis à nouveu bloqué
merci encore pour l'aide! laeti |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com