| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer | Wie wärs wenn du eine XML aus allen CSV files bei dir lokal generierst und diese dann in die datenbank häppchenweise importierst ? Alternativ kannst du auch direkt SQL-Statements aus den Daten erzeugen und diese dann per SQL-Client ausführen, dabei ist dem SQL-Client egal ob er 2, 5, 10 oder 100 GB SQL-Statements verarbeitet. Dauert halt seine Zeit. Die XML kann per stylesheet so evaluiert werden das sie bei egal welcher Anfrage die nötigen Daten als CSV-Format repräsentiert. ( XSLT + XML )
__________________ |
| | |
| | |
| Erfahrener Benutzer | Wie lang etwas bei dir lokal dauert kann doch absolut egal sein oder ? Und wie groß du die XML Datei werden lässt hängt immernoch von der Methode ab die du verwendest, schlussendlich muss die xml auf dem Zielsystem geöffnet und importiert werden -> Häppchen enstehen also by-File. Alternativ kannst du deine CSVs auch lokal zu einer Datenbank zusammensetzen und einen DB-Dump erstellen ( der dann 5 GB + groß sein wird ), Welchen du dann in verkraftbare Häppchen aufteilst. Die Files in die Datenbank auf dem Zielsystem zu treten sollte ja dann wohl das kleinste Problem sein. Ich hab auch noch nicht ganz verstanden was du beim DB-Import mit einem Cronjob willst, willst du die Imports öfter wie einmal durchführen ? Ein Import-Script das 10 Mio Datensätze in eine Datenbank drücken soll ruft alle 100 Datensätze per redirect sich selbst auf um die nächsten 100 zu importieren. Wie lange das dauert ist bei einzigartigen Import eines Datenbankinhaltes wohl absolut egal. Oder Missversteh ich dich ?
__________________ |
| | |
| | |
| Benutzer Registriert seit: 13.10.2008
Beiträge: 70
![]() | Der Import soll regelmäßig und vollautomatisch laufen, deshalb Cron und weil PHP bzw. das CMS viel Ressourcen benötigt, soll das Skript nicht ununterbrochen laufen. Ich werde wohl die CSVs erstmal in MySQL importieren und dort zusammensetzen und dann häppchenweise ins CMS laden. |
| | |
| | |
| Erfahrener Benutzer | Okay, dann würde ich: - mehrere XMLs erstellen die den zu importierenden Datenbestand beinhalten, aufgeteilt in je 100 Datensätze für alle betroffenen Tables. ( Vielleicht auch nur 50 wenn die Tableanzahl sehr hoch ist ). Also: Je XML 100 Rows / Table. - Jede XML als Job in ein Job-Table für den Cronjob injizieren. - Einen Cronjob entwickeln der permanent das Job-Table nach Jobs scannt. Ist was drin im Table einen Eintrag als "InProgress" marken und die XML abarbeiten. Ist der Import fertig, XML Löschen und Job als "Done" markieren. - Den Cronjob je nach serverlast entweder als Worker-Manager realisieren so das mehrere Instanzen von ihm parallel laufen können. Sobald das Job-Table leer ist ist der Datenbank-Import den du automatisiert fertigstellen willst beendet. Auf der Datenbank-Export-"Kiste" wo du die Daten herholst würde ich statt zu exportieren direkt die Datenbank per Script zu XML-Daten verarbeiten, sie nach jedem generieren der XML direkt per FTP / cURL-POST auf den Zielserver schieben. Ist der Export dort fertig gestellt -> Jobs per Mutliquery-Inserts ins Job-Table drücken. Done.
__________________ |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 12.09.2008
Beiträge: 154
PHP-Kenntnisse: Fortgeschritten ![]() | Ich würde das über ein ,,systemnahes" Programm lösen, php erscheint mir für solche Operationen etwas zu langsam. Schreib dir ein kleines C/C++/JAVA Programm welches den Import vornimmt, dies spart Ressourcen und kann problemlos mit jeder Datenmenge umgehen. Dann feuert das Programm auch genau so schnell wie die DB zuhört... (eigener Server vorausgesetzt, dem Thread eine niedrige Priorität zuweisen und Task-gesteuert morgens um 3 loslassen. Zusätzlich einen eigenen Datenbankbenutzer mit Leistungseinschränkungen verwenden, dann ist das Livesystem auch nicht gefährdet.) (Falls keine Konvertierung nötig ist, kannst Du das auch direkt mit dem MySQL Workbench machen. )
__________________ Ein Klauenhammer ist kein Schraubendreher, auch wenn beide das Problem ,,Schraube-Wand" bidirektional lösen können. |
| | |
| | |
| Erfahrener Benutzer | php ist für diese Zwecke schnell genug, warum erst das gaspedal frisieren wenn du dann eh die bremse drückst ( per mysql user restrictions + low priority ) ?
__________________ |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 12.09.2008
Beiträge: 154
PHP-Kenntnisse: Fortgeschritten ![]() | weil periodische Arbeitsvorgängen die im ,,Hintergrund" ablaufen sollen, im Hintergrund bleiben sollen Warum mit PHP auf die Systemebene losgehen, für die es nicht(wirklich) erfunden wurde.
__________________ Ein Klauenhammer ist kein Schraubendreher, auch wenn beide das Problem ,,Schraube-Wand" bidirektional lösen können. |
| | |
| | |
| Erfahrener Benutzer | C(++) Importer -> unnötige Mehrarbeit One PHP script per host to rule them all, no compile, no threat acrobatics, just run.
__________________ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Mehrere Werte in einem script verarbeiten | ernich | PHP Tipps 2010 | 7 | 09.04.2010 20:24 |
| [Erledigt] [SFTP] Große Datenmengen - Queue? | jGeee | PHP-Fortgeschrittene | 3 | 08.03.2010 10:55 |
| Wie Größe einer IMAP/NNTP Message ohne kompl. Download rausfinden? | cider | PHP-Fortgeschrittene | 6 | 22.02.2010 23:44 |
| Größe in PX nach rechts flexibel | Rubio | PHP Tipps 2010 | 30 | 22.02.2010 23:12 |
| Große Datenmenge (Bilder) verarbeiten | Logan1980 | PHP Tipps 2009 | 7 | 01.01.2010 18:28 |
| [Erledigt] Tabellenlayout: Große Felder auslagern? | boernard | Datenbanken | 7 | 27.07.2009 14:03 |
| [Erledigt] Bild mit wasserzeichen in vari größe | Kay654 | PHP Tipps 2009 | 10 | 14.04.2009 14:25 |
| große Datenmengen und die Same Origin Policy | R4v3r | JavaScript, Ajax und mehr | 4 | 30.03.2009 12:42 |
| mit jQuery grosse Formulare verarbeiten | phpbeginner | HTML, Usability und Barrierefreiheit | 5 | 13.06.2008 22:58 |
| Größe von Memory (Heap) Tabellen | R4v3r | Datenbanken | 1 | 22.08.2007 17:11 |
| DIV dynamischer Größe mit Schatten | TheIfrit | HTML, Usability und Barrierefreiheit | 9 | 15.03.2006 18:21 |
| Größe von Button ändern | HTML, Usability und Barrierefreiheit | 2 | 29.09.2005 15:29 | |
| große datenmengen aus mysql auslesen | bratwurstschorsch | PHP Tipps 2005-2 | 6 | 04.08.2005 16:05 |
| [Erledigt] sehr große Dateien mit PHP verarbeiten | PHP-Fortgeschrittene | 6 | 16.03.2005 22:06 | |
| [Erledigt] Größe des Fenster durch array | PHP Tipps 2004 | 12 | 01.09.2004 12:03 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| csv datei bearbeiten große datenmenge, php große datenmengen, datenformat große datenmengen csv, jquery data tables große anzahl datensätze darstellen, große xml datei, große datenmengen in javascript verarbeiten, mysql workbench csv importieren, php große datenmengen verarbeiten, wie kann man eine große csv-datei öffnen?, große datenmenge exportieren, php mysql 1 gb datei import, csv datei 1 mio daten importieren, öffnen großer datenmengen, csv datei verändern gb, php große dateien laden, php große datenmengen exportieren, grosse datenmengen bearbeiten, große csv dateien bearbeiten, csv drupal importieren und darstellen, große csv öffnen |