BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

riesige csv-Tabelle importieren mit 1 mio zeilen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Benutzeravatar
Res55
Beiträge: 47
Registriert: Sa 15. Apr 2017, 13:52
Wohnort: Morgarten Innerschweiz

riesige csv-Tabelle importieren mit 1 mio zeilen

Beitrag von Res55 » Sa 6. Aug 2022, 16:39

Hallo
eigentlich habe ich gerne mit MS-Access relationale Datenbanken designt und verwendet. Seit ich vor 15 Jahren auf FOSS umgewechselt bin, habe ich kein vergleichbares Werkzeug gefunden.

Jetzt habe ich wieder so ein DB-Problem zu lösen und versuche es nochmal mit BASE.

Jedoch schon der Import einer 500 MB grossen CSV-Datei über Calc scheitert.
Calc hatte schon Probleme sie zu öffnen und hat offenbar die letzten 10% abgeschnitten, weil eine Zeile zu lang gewesen sei. Aber ok, wo gehobelt wird, da fallen Späne. - Besser die 90% verarbeiten als gar nicht.

Aber obwohl ich die Tabelle jetzt in Calc bearbeiten, bereinigen, konnte: überflüssige Spalten gelöscht etc. Lässt sich mit cut-and-paste diese Tabelle nicht in BASE importieren.

Gibt es eine alternative Methode, um csv-tabellen zu importieren?
Mit Kubuntu 20.04 und LibreOffice Version: 6.4.x in der Innerschweiz unterwegs.

Wanderer
Beiträge: 895
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: riesige csv-Tabelle importieren mit 1 mio zeilen

Beitrag von Wanderer » Sa 6. Aug 2022, 23:52

Ich nehme erstmal einfach an, dass Du zuerst in Base eine passende Tabelle definiert hast.
Dann kannst Du auch von Calck in diese Tabelle importieren. Ich rmpfehle aber kleinere Häppchen...

Du kannst die csv-Datei (bzw das Verzeichnis in dem sie liegt einfach als Text-Tabelle verbinden. Einfache Abfragen klappen direkt mit der Text-Tabelle

Im Base-Handbuch findest du auch eine Macro-basierte übernahme von einer externen Tabelle.

Hsqldb erlaubt auch die definitlion von Text+Tabellen, so dass eine Datenübernahme per in Insert into möglich sein sollte...

Ob eine sehr grosse datei allerdings in einer internen (embedded) hsqldb gut aufgehoben ist bleibt fraglich...
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: riesige csv-Tabelle importieren mit 1 mio zeilen

Beitrag von RobertG » So 7. Aug 2022, 08:59

Ich würde bei der Größe nicht mit internen Datenbanken arbeiten. Wenn keine Serverdatenbank gewollt ist (würde ich bevorzugen, entweder MariaDB(MySQL) oder PostgreSQL), dann würde ich eine externe Firebirddatenbank betreiben. Wie aus einer internen Firebirddatenbank eine externe machen lässt habe ich im Handbuch beschrieben.

Den Datenimport würde ich häppchenweise vollziehen: Zuerst einmal die Tabellendefinition, wobei bereits die zu importierenden Daten ein Primärschlüsselfeld haben sollten. Dann in großen Packen jeweils den Inhalt. Wenn beim Import etwas schief geht, dann siehst Du ja anschließend, bis zu welchem Datensatz die Funktion korrekt gelaufen ist.

1 Millionen Zeilen (die Grenze für Calc, soweit ich das weiß, irgendwie mit den Bits entsprechend gerundet - übrigens auch die Grenze für Excel) sind allerdings für die Importfunktion ein ziemlich großer Brocken. Da kannst Du dann die Inhalte rüber schieben und dann erst einmal Kaffee trinken gehen.

Auch der direkte Import von Calc über Makros steht im Handbuch. Da habe ich, wie oft, auch eine entsprechende Beispieldatenbank beigefügt, die vom Code her direkt das macht, was da beschrieben ist. Vielleicht ist bei der Datenmenge aber einfacher, erst einmal eine Datenbankdatei zu machen, die sich direkt mit der CSV-Datei verbindet. Dann funktioniert der Import über Makro einfacher. Auch das im Handbuch. Die Verbindung zu CSV-Dateien geht über

Code: Alles auswählen

Base Datenbank → Verbindung zu einer bestehenden Datenbank herstellen → Text
.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten