LibreOffice base kérdés

Halihó!

Vannak adataim különböző forrásokból, és szeretném ezeket egyben kezelni. Arra számítottam, hogy majd a Libreoffice base, ami amúgy is telepítve van, tudja mindazt, ami nekem kell. Sosem használtam korábban, szóval simán lehet, hogy tévedek. Mindenesetre a Google nem segített eleget, és nem tudom hogy azért-e mert nem lehet ilyesmit, vagy csak rosszul kerestem.

Leírom, mire van szükségem:

Vannak csv fájljaim (és html is, de abból tudok egyszerűen csv-t konvertálni Libreoffice Calc-kal). Ezekben mind hasonló adatok vannak, de simán lehet, hogy eltérő sorrendben, formázással. Gondoljatok számlatörténetekre, különböző bankoknál vezetett néhány számla esetén. 3-4 csv már nem fog változni, mert az adott számla már megszűnt, 2-3 viszont még él, ezek időnként frissülhetnek (amikor kézzel új exportot készítek).

Azt megtaláltam, hogy a LO base tudja azt csinálni, hogy megadom, hogy létező adatokkal dolgozzék, text, kiválasztom a könyvtárat, és minden csv egy táblaként megjelenik. Ha új csv-t adok hozzá, a program újraindítása után az is megjelenik, szóval azt feltételezem, hogy a változásokat le tudja majd kezelni. Ez első lépésnek jó lehetne, de nem látom, hogyan tovább.

Úgy gondolom, hogy második lépésként minden táblához egy-egy view-t kellene deklarálnom, ami a különböző pozícióban lévő oszlopokat és a különböző módon formázott adatokat közös módon jelenítené meg. Nem látom, hogyan tudok View-t létrehozni.

Harmadik lépésként létrehoznék saját táblákat, amikbe kézzel vinnék be mindenféle adatot. Ez se megy.

Negyedik lépésként jöhetnének a valódi SQL lekérdezések, amik aztán igény szerint a különböző azonos formátumú view-kból szednék ki az adatokat, illetve a saját táblákat is használhatnák, amihez kell.

Ötödik lépésként megjeleníteném az adatokat.

Azt látom, hogy ha nem úgy hozom létre az adatbázist, hogy létező adatok -> csv, hanem újat hozok létre és kiválasztom, hogy milyen adatbázist használjon, akkor tudok kézzel létrehozni táblát, tudok view-t definiálni, de nem látok módot arra, hogy a csv-ből az adatokat láttassam.

Szóval úgy tűnik, vagy az egyik felét, vagy a másik felét tudom megoldani az igényeimnek, együtt nem megy. Vagy benézek valamit?

Hozzászólások

Sosem használtam, de feltételeztem, hogy ahogy a Libreoffice többi tagja az MS Office különféle elemeinek felel meg, úgy majd a base az MS Accessnek.

Nem mintha Access-hez nagyon értenék, de láttam már embereket Accesst használni, és nagyon úgy tűnt, hogy mindazt, amit itt írtam, azt meg tudná csinálni.

Na ezért gondoltam, hogy ha az Access-nek megy, akkor majd a base-nek is menni fog.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Ez most meglepett, el tudod mondani pár mondatban, hogy miért? Ha egy példát kéne mondani, hogy mire jó a desktop adatbáziskezelő frontend (pl. Access, de gondoltam a Base is ilyen) akkor valami ilyesmit mondtam volna. tl;dr különböző formátumú és forrású input kezelése adatbázisként, és valamilyen output (riport, vizualizáció, app, stb.) előállítása

Alapvetően arra alkalmas a Base, amire szeretné használni, csak épp kevésbé programozói szemlélettel érdemes belevágni, és érdemes elolvasni a kézikönyvet. Az Access és a Base jó abban, hogy beimportáljon v. csatoljon adatforrásokat, a belőlük képzett adattáblákon lekérdezéseket, riportokat futtasson, illetve a létrejött adattáblákból valamilyen szempontok szerinti lekérdezésekkel új táblákat készítsen. Lehet űrlapokat is csinálni benne, amelyek táblákra és lekérdezésekre alapulnak. Ha valaki a meglévő adatforrásait nem akarja megtartani, vagy nem akarja módosítani, akkor jó irány a Base. Ha valaki a meglévő csv-ket akarja egy grafikus felületen kezelni, annak nem biztos, hogy a Base a jó irány - illetve lehet, hogy jó, csak lényegesen kisebb rugalmassággal, mint ha pl. Pythonban kezdene el ilyet összerakni.

Python3 lesz a barátod.

import csv

... és innentől olyan csv-ket nyitsz meg és az adatokat mint indexelt oszlopokat úgy variálod, ahogy akarod.
A végén pedig kiírod egy csv állományba.

Meg ott a pandas, ami pont adatok (elo)feldolgozasara jo. Meg a numpy, ha sok numerikus adaton kell dolgozni. Meg ha mar be lehet tolteni DB-be, akkor a megfelelo lib (psycopg2 mondjuk).

When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

A base az adatbázis a sor végén, előtte a sok vegyes formátumú adatra kéne egy ETL. Az előfeldolgozás pl. egy apache Drill, de igazából a lehetőségek tárháza igen széles. Kérdés hogy inkább kattintani, parancssori szkriptelni vagy programozni szeretsz/tudsz jobban. Utóbbi esetben tényleg a Python a barátod, a data science irány óta tele van ügyes cuccokkal adatok mindenféle kezelésére.

Tesóm próbálkozott a Base -zel céges mindenféle nyilvántartására. A meglévő calc táblázatokat szerette volna kiváltani valami egyszerűbbre. Most pythonozik, ha jól emlékszem ez alapján halad: https://www.fullstackpython.com/

Hosszas keresgélés után jutott arra a megállapításra, hogy az egyetlen hordozható és értelmes UI megoldás manapság a böngésző alapú. Még akkor is, ha ugyan azon a gépen fut a szerver és a kliens. Természetesen megoldható az import táblázatból is, vagy csv exporttal, vagy direkt ods olvasgatással.

Ami még opció lehetett volna az a Libre Office szkriptelése pythonból.

Többen javasoltátok, hogy python.

Lehet, hogy a base tényleg nem jó minderre, amit akarok. Valóban, hasonló (bár nagyobb kaliberű) dolgokat régebben rendes RDBMS-be ETL-lel betöltve és onnan mindent felépítve oldottam meg (jó régen mondjuk).

Csak arra számítottam, hogy a base minderre alkalmas lesz, nem kell majd mást (RDBMS-t) telepítenem, illetve nem kell megírnom olyan alap dolgokat, mint pl. egy csv fájl táblába töltése.

Kb. arra számítottam, hogy tudok úgy ETL-t definiálni, mint ahogy kb. 15 éve láttam MS SQL szerver esetén, hogy grafikus felületen az ember csak azt mondta, hogy ez az adat innen oda megy, ilyen-olyan transzformációval.

Még ha nem grafikus felület, hanem kézzel rakom össze én az SQL-t, akkor se lett volna szörnyű nagy kihívás, ha egyébként a base képes lenne arra, hogy egyszerre kezeljen csv fájlokat és view-t.

Kicsit csalódtam.

Az RDBMS telepítés, a python betöltés, az SQL nem fog problémát okozni, viszont a reportok, főleg a grafikonok azok újak nekem. Tisztelt egybegyűltek, mit ajánlotok? Teljesen mindegy, hogy webes felületen látom az eredményt vagy vektorgrafika lesz belőle valami vektoros képformátumban, vagy más. Legrosszab esetben betolom a generált adatokat egy LO Calc-ba, és ott tolok egy insert chart parancsot, az tudja azt, ami nekem kell.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

A fent linkelt full stack python oldalnak van data visualisation szekciója.

Amúgy a Base nekem is nagy csalódás volt. Pont azt vártam tőle, mint te, hogy egy egyszerű GUI építhető egyszerű adatok fölé (dabse/clipper modern verziója), de nem jutottam vele semmire. Lehet, hogy tudná mindezt, de annyira kicsi a felhasználói bázis, hogy Pythonban 1000 szer gyorsabban halad az ember. Persze nem lesz ipari minőségű a kód, de megcsinálja amit kell.

 Én Windowon PowerBI-jal szoktam megoldani az ilyen feladaokat. 

Üdv,
Marci

Én is pythont javasolnék. 

Python, pandas, és ha szeretnél valami grafikus felület szerűséget akkor JupyterNotebook. Szerintem adat tisztíátánál (értsd amikor rá kell jönni, hogy már megint ki tett vesszőt az egész számok közé az oszlopban) nagyon hasznos. Ha megvagy, mehet az adat bárhova, SQL adatbázis, új excel fájl, stb. A scriptet meg kiírhatod .py fájlba.

Szerkesztve: 2020. 09. 14., h - 17:57

Ne hallgass az előttem szólókra.:) A Base-sel is meg lehet oldani, amit akarsz.

A Base ha adatbázishoz csatlakozik, akkor sajnos csak read only módban tud működni ellentétben az Accessel.

Tehát a .csv-ket tartalmazó mappa megadása csak akkor járható út, ha az adatokat nem akarod módosítani, csak lekérdezéseket és/vagy jelentéseket akarsz csinálni.

Ami működik, hogy megnyitod a .csv-t Calc-al. Majd az egész táblázatot vágólapra másolod és a vágólapról illeszted be a Base-be. Ezzel könnyedén tudsz táblákat létrehozni. Ilyen módon létrehozott adatbázisban tudsz új táblákat nyitni.

 

De azt is csinálhatod, hogy megnyitod csatolással. Majd a kész táblákat másolod át egy másik adatbázisba. Ez is működik.

https://dominoc925.blogspot.com/2013/05/import-csv-file-into-libreoffice-base.html