Autor Thema: CSV Datei mit 36000 Datensätze a 90 Felder importieren  (Gelesen 2088 mal)

Offline Kadlec

  • Senior Mitglied
  • ****
  • Beiträge: 489
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Hallo,

wie im Betreff schon erwähnt möchte ich einen grösseren Datensatz in eine DB importieren. Das habe ich mittels des csv Import scripts aus der Sandbox gemacht.
Der Import dauerte ca. 2 Stunden.
Nun sollen auch noch wöchentlich updates gemacht werden.
Neue Datensätze werden neu angelegt, nicht mehr vorhandene verbleiben in der DB und gewisse Änderungen werden in das schon vorhandene Dok. geschrieben.
Ich habe allerdings die Befürchtung das ein Update dann so Richtung > 4 Stunden geht.
Wie machen dass den die Profis ;D

Gruss
Boris

klaussal

  • Gast
Re: CSV Datei mit 36000 Datensätze a 90 Felder importieren
« Antwort #1 am: 13.02.07 - 13:10:46 »
Zitat
Ich habe allerdings die Befürchtung das ein Update dann so Richtung > 4 Stunden geht.

Ist das nicht vom Datenvolumen abhängig, was da wöchentlich anfällt ?

Offline Kadlec

  • Senior Mitglied
  • ****
  • Beiträge: 489
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: CSV Datei mit 36000 Datensätze a 90 Felder importieren
« Antwort #2 am: 13.02.07 - 15:49:33 »
Die Datei wird bis zu einem Zeitpunkt x noch um ca. 20 000 Datensätze anwachsen, danach sollten sich eigentlich die inaktiv gewordenen (nicht mehr in Datei) mit den neuen die Waage halten aber es gibt ja Änderungen an bestehenden Datensätze.

Auf alle Fälle muss ich ja die komplette Datei einlesen und mit dem Inhalt der Db abgleichen.
Und dieser Abgleich denke ich wird dann in Richtung 4 Stunden gehen.
Oder bin ich da auf dem Holzweg und es geht irgendwie anders, schneller?

Boris

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: CSV Datei mit 36000 Datensätze a 90 Felder importieren
« Antwort #3 am: 13.02.07 - 16:03:48 »
Ich glaub jetzt nicht wirklich, das es so lange dauern muss. Da dürfte beim Import noch einiges an Optimierungsmöglichkeiten vorhanden sein.
Ich fiesel hier mit einem Agent ein Logfile von einem Apache Web Server das knapp 1 Gig groß ist lokal in 30 Minuten durch. Da sind ca 1,2 Mio Zeilen drin und das wird auf mehrere Lists verteilt, aufsummiert, verhackstückt und dann sowohl in Datei Form und teilweise auch als Dokumente wieder ausgegeben.

Du dürftest mindestens zwei Knackpunkte haben. Der eine sind deine Ermittlungen ob ein Dokument bereits vorhanden ist oder nicht. DBSearch ist nicht gut für so was. Und der andere das deine Schreiboperationen auf gar keinen Fall Auswirklungen auf die Ansichtsindices haben dürfen. Außerdem sind Print Anweisungen in Background Agents sowas von tödlich für die Performance, das glaubt man nicht.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Kadlec

  • Senior Mitglied
  • ****
  • Beiträge: 489
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: CSV Datei mit 36000 Datensätze a 90 Felder importieren
« Antwort #4 am: 13.02.07 - 16:13:06 »
Und genau um diese "Optimierungsmöglichkeiten" geht es.
Da bräuchte ich ein paar Schubser in die richtige Richtung.

Das mit der Ermittlung vorhanden/nicht vorhanden ist schon mal mein erstes Problem.
Ein Abgleich Feld für Feld fällt schonmal weg denke ich, also alle Felder in einen String und dann mit der Importierten Zeile vergleichen???


klaussal

  • Gast
Re: CSV Datei mit 36000 Datensätze a 90 Felder importieren
« Antwort #5 am: 13.02.07 - 16:17:30 »
Wenn's da einen eindeutigen Key bei den Docs gibt, getdocumentbykey und dann alle Felder blind rübernageln, ansonsten by notfound Doc neu anlegen.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: CSV Datei mit 36000 Datensätze a 90 Felder importieren
« Antwort #6 am: 13.02.07 - 16:31:17 »

Ein Abgleich Feld für Feld fällt schonmal weg denke ich, also alle Felder in einen String und dann mit der Importierten Zeile vergleichen???

Ja. D.h. oft gibt es doch Felder oder Kombinationen von Feldern, die vom logischen Standpunkt her eindeutig SEIN MÜSSEN.
Für NotesView.GetDocumentByKey() kannst du auch einen Array als Suchwert nehmen.
Oder du schreibst in dem Agenten unmittelbar vor dem Auslesen der Datei alle vorhandene Werte der Datenbank in einen Datentyp List als - sagen wir - LookupProxy.
Du baust den key zusammen und dann mit der Universal ID des Documents in eine LIST. LotusScript kennt da eine schöne isMember Funktion. Schau mal ein bischen die notes-hilfe durch. Es ist keine Raketenwissenschaft.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline datenbanken24

  • Senior Mitglied
  • ****
  • Beiträge: 390
  • Geschlecht: Männlich
  • Stammgast
    • datenbanken24
Re: CSV Datei mit 36000 Datensätze a 90 Felder importieren
« Antwort #7 am: 14.02.07 - 00:48:54 »
Weil Du ja fragtest, "wie das die Profis machen"... ;D
Die nehmen dafür Profi-Tools.
Weil die - obwohl sie etwas kosten - viel billiger sind als wochenlange Eigenentwicklungen.

Ein sehr gutes Import/Export/Abgleich Tool für Deine beschriebene Anforderung wäre z.B.
die "InfoServ Pump" von der InfoServ AG.

http://www.infoserv.de/webcontent_infoserv/website.nsf/urlnames/product_pump?OpenDocument&cat=4

Lernt man in einer Stunde zu bedienen, geht einmalig oder scheduled, viele Connectoren, ist billiger als zwei Tage Entwicklung und vor allem - es funktioniert.

Kann ich aus eigener Benutzung empfehlen.

Gruß,
Uwe

Offline Kadlec

  • Senior Mitglied
  • ****
  • Beiträge: 489
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: CSV Datei mit 36000 Datensätze a 90 Felder importieren
« Antwort #8 am: 17.02.07 - 17:43:34 »
Hallo

Habe am Donnerstag mal die grössere der beiden Dateien ca. 20 000 Datensätze importiert.
Habe meinen Rechenknecht über Nacht laufen lassen das gabze hat aber nur 30 minuten gedauert.
Hat mich selbst ein wenig überascht aber OK.
Meine Befürchtung hat sich also nicht eingestellt.
Boris

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz