Import von c.a. 750 000 Artikeln

Hallo Zusammen,

ich habe eine Preisliste als CSV, die jeden Morgen aktualisiert wird. Es ist nicht möglich aus der Datei zu lesen, wann jeder Artikel aktualisiert wurde. Jeder Artikel hat c.a. 10 String-Felder und ein Bild. 

My Plugin verwendet Shopware API lokal (update() und create() von Artikel) und es läuft von allen Seiten gut, außer dass es in c.a. 3 Stunden nur 17 000 Artikeln zur Datenbank hinzugefügt wurden (auf meinem MacBook Pro im Vagrant-Virtualbox). Für die ganze Preisliste muss das c.a. 150 Stunden dauern, wenn es so geht das ersten Mal. Weitere aktualisierungen müssen viel schneller gehen, weil kein Bild runtergeladen wird, wenn ein Bild schon vorhanden ist. Aber auch wenn das nur 0,1 von 150 Stunden wäre, das wäre schon 15 Stunden, was ja unakzeptabel ist.

Wie könnte ich das ganze Prozess beschleunigen? Nebenläfigkeit verwenden? Wie genau? Alle Bilder vorher runterladen? Was noch?

Vielen Dank für die Hilfe!

Hi,

hast du mal versucht den Import der CSV via Plugin Import/Export Advanced? Das sollte deutlich schneller gehen. Da kannst du ebenfalls Aufgaben per Console oder Cronjob abwickeln.

Sebastian

Danke, SebastianKlöpper, aber es sieht so aus, dass Import/Export Advanced kann uns nicht genug helfen: Ich brauche einige Felder aus CSV zusammenschmelzen und es sieht so aus, dass das unmöglich ist. Genauer, habe ich in CSV Felder „Description 1“, „Description 2“ und „Description 3“ und alle möchte ich in eine Datenbankspalte  zusammenschmelzen, „description“. Ich habe noch nicht gefunden wie man das in Import/Export Plugin implementieren könnte, daher haben wir früher entschieden eigenes Plugin zu entwickeln. Wenn das trotzdem möglich wäre, würde ich gerne wissen wie. Danke im Vorab.

Die 2. Überlegung warum das kaum helfen sollte (meiner Meinung nach) ist, dass, ich denke, dass dieses Plugin dieselbe update/create funtionen von API lokal verwendet: In diesen Funktionen ist schon alles nötige implementiert, auf der Stelle der Software-Entwickler würde ich auch so tun, um keine Fahrräder zu entwickeln. Oder bin auch mit dieser Überlegung falsch?

Danke!

@SebastianKlöpper schrieb:

Das sollte deutlich schneller gehen.

Warum denkst du so? Hast du mit diesem Plugin Erfahrungen mit so großen Datenmengen gehabt? Danke für die Antwort :slight_smile:

Hi,

bei dem Plugin geht nicht alles über die API und ist dadurch an einigen Stellen schneller. Fokus lag da in einigen Bereichen speziell auf Geschwindigkeit.

Daher würde ich den Import mal damit versuchen

Sebastian

ich würde auf jeden fall das import/export advanced nutzen. ich nutze dies immer bei ca. 50.000 artikeln und das geht bei mir sehr schnell.

 

vorher würd eich an deiner stelle die csv z.b. mit dem program „csved“ bearbeiten und die gewünschten spalten wie gewünscht zusammenfügen etc.pp.

wenn ich es richtig verstanden habe, dann wird ja zukünftig nur noch der preis aktualisiert, also wird die csv dann entsprechend kleiner weil viele spalten entfallen und noch schneller verarbeitet.

gruß, bernd

Hi,

Ich brauche einige Felder aus CSV zusammenschmelzen und es sieht so aus, dass das unmöglich ist. Genauer, habe ich in CSV Felder „Description 1“, „Description 2“ und „Description 3“ und alle möchte ich in eine Datenbankspalte  zusammenschmelzen, „description“. 

das müsste doch mit den Konvertierungen einfach möglich sein: http://community.shopware.com/Import/Export-Grundmodul\_detail\_1769.html#Konvertierungen

Da kannst du einfach Smarty-Templates nutzen, um die Importe / Exporte zu modifizieren. Macht es natürlich wieder etwas langsamer - aber sicher einen Versuch wert. 

Daniel

1 „Gefällt mir“

Hallo,

das geht mit unserem Tool ShopLukas - damit kannst Du die Feldspalten so zusammenstellen, wie Du es möchtest und auch einstellen, in welcher Spalte (im Gegensatz zu gestern) eine Änderung enthalten sein muss, damit der Artikel als “neu zu übertragen” erkannt werden kann. Somit wird täglich nur das Delta übertragen - und natürlich wird auch erkannt, wenn in Deiner CSV Datei ein Artikel nicht mehr vorhanden ist - dann wird der wahlweise deaktiviert oder auf Abverkauf gesetzt etc. Das könnte ein klassischer Import wohl eher nicht.

https://www.compusoft-fn.de/fuer-shopware/ab-4x/shoplukas/index.php

Sven Stephan - Compusoft GmbH