| 

.NET C# Java Javascript Exception

2
hallo,

ich speicher große mengen von daten in einer datenbank (simpleDB). dabei möchte ich das existierende einträge upgedated werden. mein python script liesst hierfür alle item namen aus und speichert diese in einem dict. dieses vergleicht beim import von neuen daten ob diese bereits bekannt sind.
das problem hierbei ist je mehr daten in der simpleDB gespeichert sind umso zeit-intensiver ist dieser vorgang!

habt ihr eine idee wie man den vorgang beschleunigen könnte?
News:
31.05.2011
burner007 810 1 2 9
3 Antworten
1
Wo läuft denn deine Anwendung oder der Import? Ich vermute mal nicht, in der Amazon-Cloud.

Wie wäre es, die Import-Anwendung in einer EC2-Instanz laufen zu lassen. Die hat dann eine sehr performante Anbindung an den SimpleDB-Service und sollte deutlich schneller sein als eine Anwendung, die per Internet auf die SimpleDB zugreift.

Gerade bei einem Massenimport könnte sich das lohnen.
31.05.2011
carlptr 777 1 8
1
die anwendung läuft von einem webserver! ich werde mir mal anschaun ob das mit EC2 umsetzbar ist. danke für den tipp!
burner007 01.06.2011
1
Wenn es die Anwendungslogik zulässt:
Puste alle neuen Datensätze in die DB und schmeiß später, über Nacht z.B., in einem Batch alle doppelten Einträge raus.

Es kommt halt immer darauf an, wozu und wann du die Daten in der DB benötigst.
05.06.2011
Andreas Richter 1,7k 1 2 8
0
Ich würde die Duplikatsprüfung in die DB verlagern, in dem du zuerst mit den Schlüsselattributen nach einem bestehenden Datensatz suchst. Findest du ihn, wird dieser aktualisiert, ansonsten ein neuer Eintrag angelegt.

Damit hast du zwar pro Datensatz eine Abfrage, diese sollten aber recht schnell sein.

Weiterhin liefert SimpleDB pro Query maximal 2500 Elemente. Wenn du also mehr Elemente speicherst erhältst du ohnehin nicht mehr alle mit einer Query.
31.05.2011
carlptr 777 1 8
1
die idee hatte ich auch schon aber dabei gewinne ich nicht sehr viel zeit da es sich teilweise um ein paar hundertausend datensätze handelt
burner007 31.05.2011

Stelle deine Performance-Frage jetzt!