Contao-Camp 2024
Ergebnis 1 bis 12 von 12

Thema: Workaround Import von 5 Millionen Datensätzen

  1. #1
    Contao-Fan Avatar von dirksche
    Registriert seit
    05.08.2009.
    Ort
    Grosslittgen
    Beiträge
    641

    Standard Workaround Import von 5 Millionen Datensätzen

    Hallo liebe Contao Community,

    ich muss derzeit 5 Millionen! Mitglider / Datensätze in die Contao Datenbank importieren. Hat jemand von euch einen Tipp wie ich diese Menge an Daten am besten importieren kann?

    LG,
    Dirk

  2. #2
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Nicht das ich wirklich helfen könnte, aber für die Beantwortung Deiner Frage dürfte es wohl interessant sein in welcher Form die Daten vorliegen oder meinst Du einen Abbruch beim importieren wegen zur großer Datenmenge/Timeout?
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  3. #3
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    Würde ich (falls Du einen Mac hast) mit Sequel Pro machen.

  4. #4
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das sollte auch mit MySQLDumper http://www.mysqldumper.de/ gehen.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  5. #5
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Das sollte auch mit MySQLDumper http://www.mysqldumper.de/ gehen.
    War bis vor kurzem auch mein Favorit. Wird jedoch leider nicht mehr weiterentwickelt. Macht unter PHP 5.6. ab und an Zicken und läuft definitiv nicht mehr unter PHP7

  6. #6
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Je nach Format. SQL Dump oder CSV waeren am schnellsten, geht einfach ueber Console.

    Hast Du das "richtige" Contao Format schon, oder ist das ein anderes Schema ?
    Wie sieht es mit den Passwoertern aus ? Muessen Die neu erstellt werden oder uebernommen ? <- das ist naemlich sehr kompliziert
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  7. #7
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von stefan-at-work Beitrag anzeigen
    War bis vor kurzem auch mein Favorit. Wird jedoch leider nicht mehr weiterentwickelt. Macht unter PHP 5.6. ab und an Zicken und läuft definitiv nicht mehr unter PHP7
    Ja, wird aber hier https://github.com/DSB/MySQLDumper wohl weiterentwickelt und PHP7-tauglich gemacht.

    Zum Einspielen könnte das auch mit HeidiSQL gehen.

    @lindesbes hast du ein paar Code-Schnippsel wie das über Console aussehen könnte?
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  8. #8
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    einen Dump via console in eine MySQL zu bekommen ? ganz einfach :

    Code:
    mysql -u $USER -p -h $HOST < dump.sql
    Aber da ich das Rohformat der urspruenglichen Daten nicht kenne, geht das so eben nicht.
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  9. #9
    Contao-Fan Avatar von dirksche
    Registriert seit
    05.08.2009.
    Ort
    Grosslittgen
    Beiträge
    641

    Standard

    Also derzeit habe ich eine CSV Datei mit 5 Millionen Nutzernamen.
    Diese Namen sollen alle ein Passwort erhalten, wobei hier für jeden Benutzer das gleiche Passwort verwendet werden soll.
    Zudem muss noch die ID der Mitgliedergruppe und den True Wert für das Login für jeden Nutzer importiert werden.
    Ich habe mir mal die Contao Erweiterung "import_from_csv" angesehen und mir hierzu eine passende CSV für den Import angelegt.
    Die Import Datei habe ich auf maximal 500000 Einträge gesplittet, doch selbst so dauert der Import Lokal auf meinem Rechner ewig und er bricht auch immer vorzeitig ab :-(

  10. #10
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.935

    Standard

    Bei diesen Voraussetzungen würde ich es so machen, wie von lindesbs in #8 beschrieben.

    Die dump.sql würde ich dazu offline aus der CSV erstellen. Mit einem kleinen Skript (PHP oder Perl oder was auch immer) in etwa so:

    In die dump.sql diese Zeile schreiben (weitere oder weniger Felder nach Bedarf):
    Code:
    INSERT INTO  `tl_member` (`firstname`, `lastname`, `email`, `login`, `username`, `password`,`groups`) VALUES
    Dann je Zeile der CSV die VALUES generieren und an die dump.sql anhängen. Beispiel

    Code:
    # input.csv
    Max;Mustermann;max@example.com
    
    # an dump.sql anhängen
    ('Max','Mustermann','max@example.com','max@example.com','$2y$10$PESomk2UHc.iFwguvRAegeZLbHZUqQszQwqRBrzi93XBXzGApmh3.','a:1:{i:0;s:1:"4";}'),
    wobei

    • max@example.com ein Mal die E-Mail-Adresse und ein Mal der Benutzername ist
    • $2y$10$PESomk2UHc.iFwgubTZegeZLbHZUqQszQwqRBrzi93X BXzGApmh3. der Passwort-Hash ist, der laut Deinen Anforderungen für alle gleich ist, da alle das gleiche (initiale?) Passwort haben sollen. Könnte man aber auch leer lassen und allen Usern mitteilen, daß sie ihr Passwort via "Passwort vergessen" abholen sollen
    • a:1:{i:0;s:1:"4";} der serialisierte Array der Gruppen ist (PHP serialize()). Im Beispiel der Array, der nur den Eintrag 4 enthält (Gruppe mit der ID 4)


    Beide Werte könnte man in einer lokalen Testinstallation erstellen lassen, auslesen und dann hart kodiert im Skript hinterlegen.

    Am Ende (der dump.sql) muss dann noch das letzte Komma der erzeugten Datenzeilen weg und ein abschließendes ';' rein.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  11. #11
    Contao-Nutzer
    Registriert seit
    24.06.2012.
    Beiträge
    205

    Standard

    Hallo,
    um direkt in der DB zu arbeiten empfehle ich http://squirrel-sql.sourceforge.net/
    Optimal um direkt mit SQL zu arbeiten. Hatte auch bei sehr großen Datenmengen damit noch nie Probleme.
    Gruß Thomas
    __________________________________________________ ________________________________
    ich habe keine Zeit, darüber nachzudenken, warum ich keine Zeit habe.

  12. #12
    Contao-Fan Avatar von dirksche
    Registriert seit
    05.08.2009.
    Ort
    Grosslittgen
    Beiträge
    641

    Standard

    Ich bin erst jetzt dazu gekommen, die Datensätze zu importieren.
    Ich habe dem SQL Dump nach der Methode von fiedsch erstellt und anschließend mit dem mysqldumper importiert. Ging relativ fix und ohne Probleme.
    Danke nochmal :-)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •