Ankündigung

Einklappen
Keine Ankündigung bisher.

Bulkdatenimport - Wie ?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bulkdatenimport - Wie ?

    Hallo !

    Ich habe ein kleines Problem, bei deren Umsetzungskonzept ich einen leichten Anstoß brauche. Wir haben einen Kundenloginbereich auf unserer Homepage. Da wir unsere Seite hosten lassen und wir unseren Datenbankserver nicht aus dem Internet verfügbar machen wollten, haben wir uns damals dazu entschlossen, die für das Kundenlogin wichtigen Daten alle paar Stunden von unserer Heimdatenbank auf eine MySQL Datenbank zu kopieren, die zum Hosting Paket dazu gehört. Dazu hab ich damals ein .NET Programm geschrieben, dass die Betriebsdatenbank und die Homepagedatenbank öffnet und die Daten einfach mit Selects/Inserts rüberkopiert.

    Nun haben wir den Provider gewechselt (Weil billiger -.-). Wir haben auch jetzt ganz normal eine MySQL Datenbank, das Problem ist aber, dass sich der Anbieter mit Händen und Füßen dagegen wehrt, diese von Seiten des Internets zugänglich zu machen (sprich: Verbindung nur über localhost). Dazu kommt noch, dass FTP nur über ein Webinterface zugänglich ist. Beides ist aus Sicherheitsgründen.

    Nun brauch ich irgendein Script, dass ich mit etwa 2.000 Datenbanksätzen füttern kann und dass automatisch abläuft. Leider habe ich keine Ahnung, wie ich das genau realisiere. In Sachen html/php kenne ich beim Upload nur den ftp Weg(welcher wegfällt) und über ein Formular mit Dateiauswahl (was aber nicht automatisch abläuft).

    Es gibt ad hoc keine Einschränkung wie die Daten zum php Skript geliefert werden. Ich kann die Daten in ein Dateiformat wie csv oder xml schreiben oder auch direkt irgendwie an das Skript übergeben.

    Gibt es eine Möglichkeit, das so zu realisieren, dass ich nur das php Skript mit irgendwelchen Parametern aufrufen muss und dann läuft der Upload ganz von alleine ?

  • #2
    phpmyadmin kann datenbanken administrieren und backupen, sowie backups wieder einspielen. phpmyadmin müsstes du nur auf dein System wo der SQL-Server läuft hochladen. Ich vermute allerdings das es phpmyadmin dort schon gibt.

    Alternativ kannst du deinen Hoster auch per Supportanfrage darum bitten dir deine Datenbank als SQL-Files zuzusenden. Diese SQL-Dateien kannst du entweder per PHP oder per phpmyadmin in die neue datenbank zurückschreiben / importieren.

    phpmyadmin gibts hier: phpMyAdmin

    Ein Hinweis: Die Logingeschichte könnte man auch über ein XML oder REST interface auf dem quellserver realisieren. Bedeutet, entweder erlaubst du einer einzigen IP das diese per php script auf der datenbank bestimmte sachen die du in dem script bestimmst vollziehen kann und die zu übergebenen daten als REST ( siehe wiki ) oder XML zurückliefert. Wirklich komplex sowas zu realisieren wäre es nicht. ( SimpleXML bestandteil von php5 ) Aber ihr würdet definitiv unnötigen Traffik zwischen SQL 1 und SQL 2 sparen. Eine Alternative dazu wäre sicherlich auch ein VPN Tunnel für die SQL-Verbindungen. In Sachen Sicherheit geht da sehr viel. Aber soviel dazu, das ist nichts php-relevantes.
    [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

    Kommentar


    • #3
      Wieso schreibst Du nicht einfach eine Art API-Skript für den Server, das Du per POST mit den Daten fütterst? Die Daten kannst Du ja als json, oder eben xml in .net formatieren und als POST-Body mit schicken. Wo ist das Problem?

      Kommentar


      • #4
        dass FTP nur über ein Webinterface zugänglich
        OmG, na da hat man ja ordenlich gespart.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          a)
          csv-datei per Formular hochladen und Zeile für Zeile abarbeiten
          b)
          CSV-Datei von einem lokalen PC per PHPmyadmin importieren

          besser aber
          c)
          Einen gescheiten Hoster suchen der das anbietet, was man braucht.
          [PHP]if ($var != 0) {
          $var = 0;
          }[/PHP]

          Kommentar


          • #6
            Zitat von Wolla Beitrag anzeigen
            c)
            Einen gescheiten Hoster suchen der das anbietet, was man braucht.
            So ist es. Am Hosting sollte man nicht sparen!

            Kommentar


            • #7
              Hallo

              Danke für die Antworten !


              Das Problem mit phpMyAdmin und dem Formular ist, dass ich das nicht automatisieren kann. Die Daten für das Kundenlogin sind 'relativ' aktuell, das heißt sie werden alle zwei Stunden neu übertragen. Und ich möchte das natürlich nicht persönlich machen. Vorallem deswegen, weil die Daten rund um die Uhr übertragen werden und auch Programmierer irgendwann einmal schlafen müssen.

              Automatisiert hieß bisher immer folgendes:
              Auf einer Rechenmaschine hier wird alle zwei Stunden ein Programm ausgeführt. Dieses Programm ruft die Daten aus unserer Betriebsdatenbank ab und speichert sie in 3 csv Dateien. Dann werden die csv Dateien per ftp hochgeladen. Zum Schluss ruft das Programm einfach ein php Script auf dem Server auf, welches die csv Dateien parsed und in die Datenbank einließt.

              Tja, nun gibt es kein ftp mehr und ich weiß nicht, wie ich die Daten vom PC zum php Script kriege.

              Ich hatte auch schon dran gedacht, die Daten per POST mitzuschicken, aber ich war mir nicht sicher, welche Datenmenge man da mitschicken kann.

              Weiß da zufällig jemand mehr ?
              Ich glaube nicht, dass ich den Inhalt einer ganzen csv Datei (ca. 7 Spalten, 200 Zeilen) in eins übertragen kann oder ?

              Kommentar


              • #8
                Zitat von RedWraith Beitrag anzeigen
                Ich hatte auch schon dran gedacht, die Daten per POST mitzuschicken, aber ich war mir nicht sicher, welche Datenmenge man da mitschicken kann.
                Genug.

                Ich glaube nicht, dass ich den Inhalt einer ganzen csv Datei (ca. 7 Spalten, 200 Zeilen) in eins übertragen kann oder ?
                Das ist geradezu „lächerlich wenig“ für einen Datei-Upload per POST.
                [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                Kommentar


                • #9
                  Ich hatte erst ein paar Probleme mit dem Content-Type, aber es funktioniert.
                  Ich kann die Daten wirklich allesamt per POST übertragen.

                  Ich danke euch für eure Hilfe.

                  Kommentar

                  Lädt...
                  X