Daten im Stapel übernehmen ohne Duplikate

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Daten im Stapel übernehmen ohne Duplikate

Re: Daten im Stapel übernehmen ohne Duplikate

von tunix_xl » Do, 05.06.2008 01:06

Am Ende eine Mischung:
Datendownload wie gehabt mittels calc.
Datenbank mysql mit Shellskripten bearbeiten.
Mit phpmyadmin als Frontend auswerten.
Läuft stabil und trotz Umwegen (Calc) schneller und letztlich komfortabler.

Nochmal mein Dankeschön ans Forum und speziell an komma4 für sein schubsen in die "richtige" Richtung :D

Re: Daten im Stapel übernehmen ohne Duplikate

von tunix_xl » Di, 27.05.2008 14:50

Hi,
eben erhielt ich die Info, daß man mit dem Befehl LOAD DATA INFILE (mysql) grundsätzlich nicht auf externe DatenIFiles zugreifen kann. Mysql importiert Files nur, wenn sie im Verzeichnis des Clients (mit LOCAL) oder im Verzeichnis des Servers (ohne LOCAL) liegen.

Kann mir dies bitte jemand bestätigen?

lg
t

Re: Daten im Stapel übernehmen ohne Duplikate

von tunix_xl » Di, 27.05.2008 11:50

@ komma4

Danke für den Link. Durch diese Gebrauchsanweisung wurschtel ich mich schon seit Tagen durch (auch wenn sie häufig mehr zur Verwirrung denn zur Erleuchtung beiträgt...)

Wenn ich das LOCAL weglasse wird die Datei lediglich im Verzeichnis des Servers auf der Festplatte gesucht:
mysql.png
mysql.png (9.2 KiB) 2429 mal betrachtet

Re: Daten im Stapel übernehmen ohne Duplikate

von komma4 » Di, 27.05.2008 08:13

... ich bin nicht sicher, ob die Angabe LOCAL richtig ist.....

http://dev.mysql.com/doc/refman/5.0/en/load-data.html

Re: Daten im Stapel übernehmen ohne Duplikate

von tunix_xl » Mo, 26.05.2008 22:50

hi,
hab jetzt mal als Versuch was hochgeladen, und versucht, dieses mit

Code: Alles auswählen

LOAD DATA LOCAL INFILE 'http://freenet-homepage.de/tunix_xl/artikel/quotes.csv' INTO TABLE col2tab.yahoo FIELDS TERMINATED BY ',' ENCLOSED BY '"';
in die DB zu kriegen.
krieg ich diese Meldung:
fehler.png
fehler.png (8.82 KiB) 2416 mal betrachtet
Im Browser aufgerufen tut der Link.

Was kann ich noch versuchen?

lg
t

Re: Daten im Stapel übernehmen ohne Duplikate

von tunix_xl » So, 25.05.2008 17:45

nein - leider nicht

kann das was mit der Einstellung "localhost" zu tun haben?

so sieht die Adresszeile von phpadmin im Browser aus:

http://localhost/phpmyadmin/index.php?d ... -8&target=,,,

(hab sie hier nach 'target' abgeschnitten)

gruß
t

Re: Daten im Stapel übernehmen ohne Duplikate

von komma4 » So, 25.05.2008 15:02

tunix_xl hat geschrieben:die Fehlermeldung:
#2 - File 'http:/www.hierstehtdieganzeurl' not found (Errcode: 2)
wie es dei Meldung sagt: "/www.irgendwas" nicht gefunden

Du hast ein slash zuviel: http://

War es das?

Re: Daten im Stapel übernehmen ohne Duplikate

von tunix_xl » So, 25.05.2008 10:32

komma4 hat geschrieben:Mit MySQL bist Du doch gut versorgt.

Durch LOAD DATA INFILE bekommst Du jedes 200-Satz-Paket direkt in eine Tabelle (die Anweisung hat einen REPLACE-Schalter!)
moins,

... an der letzten Hürde gescheitert?

Die oben beschriebene DB tut jetzt (fast) alles was sie soll. Nur bei der Datenübernahme aus dem web komm ich nicht weiter.

Code: Alles auswählen

LOAD DATA LOCAL INFILE 'http:///www.hierstehtdieganzeurl' INTO TABLE col2tab.rein FIELDS TERMINATED BY ',' ENCLOSED BY '"';
gibt die Fehlermeldung:
#2 - File 'http:/www.hierstehtdieganzeurl' not found (Errcode: 2)

perror sagt:
OS error code 2: No such file or directory

In oo-calc klappt es mit dieser url.

Was mach ich bei der Übergabe der URL als String falsch?

lg
t

Re: Daten im Stapel übernehmen ohne Duplikate

von tunix_xl » Di, 20.05.2008 00:22

@komma 4

vielen dank für die Anregungen.
Die Berechnungen und das Übertragen könnte doch auch mit SQL erledigt werden? Willst Du die Makros für Base neu schreiben?
Ja - sollte gehn. Und wenn ich mir die Makros ersparen kann, fein. Dazu muß ich aber wohl richtig einsteigen und mir erstmal die sql-Syntax antun (gegenwärtig kämpf ich da auf dem Niveau: "nehm ich jetzt die einfachen Hochkommas oder doch lieber doppelte Anführungszeichen oder lass ich beides weg...").

Also erstmal RTFM's - aber ich bleib am Ball ... :)

lg
t

Re: Daten im Stapel übernehmen ohne Duplikate

von komma4 » Mo, 19.05.2008 17:44

Mit MySQL bist Du doch gut versorgt.

Durch LOAD DATA INFILE bekommst Du jedes 200-Satz-Paket direkt in eine Tabelle (die Anweisung hat einen REPLACE-Schalter!)

Die Berechnungen und das Übertragen könnte doch auch mit SQL erledigt werden? Willst Du die Makros für Base neu schreiben?

Re: Daten im Stapel übernehmen ohne Duplikate

von tunix_xl » Fr, 16.05.2008 21:04

Hallo 'Winfried,
Danke fürs feedback vorweg.

Bislang mache ich alles noch mit calc. Da mir aber von verschiedenen Seiten gesagt wird, dass eine Datenbank besser für diese Aufgabe geeignet ist, will ich mich da reinarbeiten und es versuchen ( bin kein Profi).
Die ersten Schritte mach ich gerade mit mysql und phpmyadmin.
Am Ende sollen aber idealerweise die sqlstrings in makros übergeben werden
Soll das Verfalldatum eingegeben oder automatisch berechnet werden?
Verfalldatum ist fix und steht in der Tabelle, aus der die "neuen" in die DB übernommen werden.
Sollen die Datensätze vorhandener ArtikelNummern aktualisiert werden?
Ja. Es gibt Ein- und Verkaufspreise, die täglich aktualisiert werden. Diese Preise können nicht intern berechnet werden - sie werden aus dem Netz geladen.
Aus welcher Tabelle kommen die neuen Daten: Base oder Calc-Tabelle?
Wenn ich das hinbekomme, soll am Ende alles "aus einem Guß" unter Base und mit Makros so weit wie möglich automatisiert laufen. Steh da aber wie gesagt ganz, ganz am Anfang.

Bisher läuft alles noch unter Calc.

Kurze Ablaufbeschreibung:
Täglich:
Makro lädt in Paketen a 200 Sätze die aktuellen Preise und fügt diese Pakete zu einer Tabelle zusammen.
Makro kopiert die Spalten Preise in die Mastertabelle.
Makro berechnet Werte in Mastertabelle neu und filtert nach bestimmten Kriterien.
Makro schreibt die "handvoll" Treffer, die gerade besonders günstig sind in separate Trefferliste.

Monatlich: (mach ich zur Zeit noch "händisch")
Neue Artikel aus dem Netz zusammensuchen und in die Mastertabelle aufnehmen.
Alte mit abgelaufenem Verfalldatum löschen
Das Setzen eines "EINDEUTIG"-Index auf eine Spalte verhindert ein Einfügen von doppelten Werten.
Mit dem: INSERT INTO ... SELECT DISTINCT Befehl bin ich heute schonmal einen Schritt weiter gekommen. Danke

LG
t

Re: Daten im Stapel übernehmen ohne Duplikate

von komma4 » Fr, 16.05.2008 19:41

Du nimmst HSQLDB (interne DB)?
Wie führst Du SQL-Anweisungen aus (Extras>SQL oder Makro)?

Soll das Verfalldatum eingegeben oder automatisch berechnet werden?


Sollen die Datensätze vorhandener ArtikelNummern aktualisiert werden?

Aus welcher Tabelle kommen die neuen Daten: Base oder Calc-Tabelle?

Tipp: Das Setzen eines "EINDEUTIG"-Index auf eine Spalte verhindert ein Einfügen von doppelten Werten.

Daten im Stapel übernehmen ohne Duplikate

von tunix_xl » Do, 15.05.2008 17:54

Tach Forum

Aus einer Datenbank sollen monatlich Sätze, die ein Kriterium erfüllen (Verfalldatum), gelöscht werden.
(wohl das kleinere Problem)

Es sollen neue Sätze, die noch nicht in der DB vorhanden sind, aus einer Tabelle aufgenommen werden (gemeinsames Kriterium z.B. Artikelnr.)
In der Tabelle kommen aber beide Fälle vor: bereits in der Datenbank gelistete Artikel, sowie auch neue.

Erster Ansatz:
Tabelle in die Datenbank importieren, anschließend Duplikate entfernen und dann mit "Datenbank reparieren" die Abhängikeiten neu aufbauen. Nicht sehr elegant und einem Noob-Hirn entsprungen... :shock:

Bestimmt gibts bessere Ansätze (erwarte keine fertige Lösung - für hilfreiche Tips oder "grobe Wegbeschreibung"
wäre ich aber sehr dankbar.)

Zum Umfang:

Datenbank: ca 30 000 - 40 000 Sätze
"Tabelle2" etwa gleich groß
In der DB noch nicht vorhanden: einige duzend bis einige tausend ...

LG
t

Nach oben