Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 24. 3. 2021 16:46:35

imcon
Člen
Místo Brno
Registrace: 16. 5. 2007
Příspěvků: 224

Problémy s otevřením většího CSV souboru - VYŘEŠENO

Dobrý den,
mám dotaz týkající se načítání CSV souborů do Calcu. Tyto soubory používáme denně, bohužel občas musíme zpracovat trochu obsáhlejší soubory a většina Calců co máme (přesněji na většině počítačů, vše s Windows) se nám soubor ani nepovede otevřít. Otevírá se třeba hodinu, a když otevírání chceme přerušit, musíme natvrdo shodit LO (možná by Calc zavřel ale za X hodin, nečekali jsme tak dlouho).
Je fakt, že se ale takový soubor jednomu kolegovi otevřít povedlo i když práce s ním byla skoro nepoužitelná.

V souboru není nic zvláštního, klasický CSV, pár (10 nebo 20) sloupců. Má ale cca 350000 řádků.

Máte s tím někdo zkušenosti či je nějaký tweak jak LO vyladit aby soubor otevřel? Problém asi bude v importeru.

Otázkou je, jestli jsou vůbec na Calcu takové soubory zpracovatelné, jestli to už není pole pro Excel, vím, že už při cca 100000 řádcích bývá LO dost zadýchaný.

Díky za zkušenosti.

Editoval imcon (26. 3. 2021 09:31:34)

Offline

#2 24. 3. 2021 18:49:57

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,435

Re: Problémy s otevřením většího CSV souboru - VYŘEŠENO

Calc umí i mnohem více, zejména když jde o prostý text jako je CSV. Problém je v nastavení velikosti na soubor a také záleží na počtu kroků zpet. Dříve byly tyto volby přístupné z NÁSTROJE > LIBREOFFICE > mám dojem že to bylo ZPŘÍSTUPNĚNÍ, nebo OBECNÉ. Dnes se to musí nastavit v EXPERTNÍM NASTAVENÍ. Díval jsem se, ale nejsem si jistý něco by mohlo být pod hledáním File, kde jsou položky které by mšly jít přestavět. Většina se týká "filtrů", a je tam hodnota 6800, nebo 6200 (kilobitů) jednotlivé aplikace se nastavují samostatně. U kroků zpět si jsem jistý ještě méně.
     Například kroků zpět je tam 100 ale jde o stejný počet jako pro iterace. Zde jsem hledal back a je tam ještě údaj 16 - což by mohl být počet souborů současně udržovaných v paměti. Musíte testovat, nebo najít které hodnoty odpovídají původnímu popisu : a) paměť na soubor, b) počet souborů současně otevřených a c) počet kroků zpět. Hodnoty 6800 kB je docela dost, ale pokud se to dělí jenom třeba na počet kroků zpět tak je to hodně málo. Někde je to určitě popsáno, jinak budete muset testovat.
     Také asi pomůže odstavit vyhlazování písma a odstavení knihovny SKIA, ale zachovat akceleraci.


     Ještě existuje cesta rozdělit zdrojový soubor na díly – například pomocí online nástrojů a otevírat jen menší soubory. Já na  tohle používal Gnumeric. Popisuji níže proč.


     Já má otestováno, že Calc se přizpůsobí například při generování obrovských souborů Kombinace, Variace, Faktoriál a Partitio numerorum. Běžně generuji po milionu buněk ale i více například 100000 řádcích a až 100 sloupců, ukládám do CSV – čas je okolo několika desítek sekund včetně otevření a uložení dílčího souboru. Zde záleží na rychlosti MB, procesoru a velikosti kešovací paměti a také operační paměti. Faktem je že načítání takových souborů také chvíli trvá, ale to jsem neměřil.
      Také jsem pracoval se soubory XML – adresy celé republiky – hodně přes milion řádků a šlo to otevřít jen v rozděleném množství (pomocí Gnumeric). Bylo to kvůli tomu, že Calc uměl pouze málo přes milion řádků, což dnes už neplatí a myslím, že se bez takového opatření obejdu.


      Takže jsem přesvědčen, že nastavit to lze ale neumím upřesnit kde v expertním nastavení se to dá udělat.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 24. 3. 2021 21:12:49

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 368

Re: Problémy s otevřením většího CSV souboru - VYŘEŠENO

Expertní nastavení:

Počet kroků zpět
org.openoffice.Office.Common - Undo - Undo


Pamět pro grafiku - nejsnažší vyhledat heslo cache; myslím že hodnoty z položky GraphicManager právě bylo dříve možné nastavit někde v Nastavení - viz článek https://www.openoffice.cz/navody/zrychl … office-org.

org.openoffice.Office.Common - Cache - Skia
org.openoffice.Office.Common - Cache - GraphicManager


Pokud máte alespoň 16 GB ramky tak se v těch položkách cache nejspíš nemusíte "upejpat", já dal zkusmo 1,6GB (1600000000) z předchozích asi 600MB a nastalo nějaké zlepšení. Poté cca 30 sloupců a milion řádků CSV (velikost 435MB - vygenerovaná náhodná čísla z menu List/ Vložit hodnoty) mi to načetlo asi za půl minuty a šlo s tim docela v pohodě dělat -> plynulé rolování myší se Skia, i bez zadrhávání při větším přesunutí ukazatele v rolovací liště do půlky lišty. Z Ctrl+Alt+Del jsem zjistil že zabráno bylo asi 9,5GB ramky.

Uložit do ODS trvalo asi 4 minuty, načítalo se mi to z ODS asi 2 min.


Mnohem horší to bylo ale na starém laptopu, tam ani nevím co je nastaveno v tom expertním nastavení, ale budou to asi výchozí hodnoty, neb má jen 2gb ram a myslím že jsem krom počtu kroků zpět na něm nic nepřenastavoval. Načítání naběhlo na 5 čárek (z asi 60 ve stavovém řádku Libre) asi za 2,5 minuty - tam jsem usoudil že by to načítalo nejméně půl hodiny, ale možná i hodinu. Pak jsem dal Ctrl+Alt+Del a jen než naběhlo okýnko s procesy tak to trvalo asi minutu. Pak se mi to za asi další minutu podařilo vypnout.


Pro takováhle data skutečně hodně záleží na výkonu počítače. Pokud budete dělat na pracovní stanici, zřejmě nebudete mít zásadnější problém. Ale na nějaký běžný noutbuk to může být až moc velké sousto.


-------------------------
S těmi filtry na soubor jsem nikdy neexperimentoval. Vyhledal jsem tedy file a ty hodnoty 6200 nebo 6800 mi vyjely u nějakých položek kde ale tomu nadřazený "údaj" měl v názvu Detection - tak si říkám, jestli to není nějaká délka jak moc ze začátku souboru se prohledává, aby se vyhodnotila nějaká data - např. druh kódování nebo něco takového.

Offline

#4 25. 3. 2021 23:25:03

imcon
Člen
Místo Brno
Registrace: 16. 5. 2007
Příspěvků: 224

Re: Problémy s otevřením většího CSV souboru - VYŘEŠENO

Díky za komentáře, zkusím zalaborovat jak se k tomu dostanu.
Teď se dívám na ty soubory, tak to CSV má 62 MB, když se na něj dívám v Notepad++ tak cca 340000 řádků, a cca 30 sloupců.
Stanice na které to otevírám je běžně používaná pro databáze, firemní systém, sice pár roku stará ale celkem rychlá na SSD s 24 GB RAM. Vše na ní běží svižně.

Nevím, jestli na otevírání má význak počet kroků zpět, ten soubor se ani nepovede otevřít... Vůbec se neotevře CSV importer a LO zůstane zatuhlej na úvodním banneru, je vidět, že stále vytěžuje procesor.

Offline

#5 26. 3. 2021 08:57:18

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 368

Re: Problémy s otevřením většího CSV souboru - VYŘEŠENO

Počet kroků zpět na otevírání souboru by mít vliv neměl, 62 mb soubor by neměl být problém. Jediné co mě napadá jestli nejde o nějakou starší verzi Libre ve které je ten importér třeba zabugovaný. Já to zkoušel na 7.1.2.1.

Offline

#6 26. 3. 2021 09:26:48

imcon
Člen
Místo Brno
Registrace: 16. 5. 2007
Příspěvků: 224

Re: Problémy s otevřením většího CSV souboru - VYŘEŠENO

Tak jsem zkusil změnšit soubor na cca 18 MB a jen 100000 položek.
No luck, při pokusu o otevření procesor vytížená všechna 4 jádra na 50% po dobu 10 minut, bez výsledku (LO jsem shodil ručně, možná jsem měl počkat déle). Paměti je dost, 12GB volných.

Další zmenšení souboru na 50000 poožek, CSV importer se otevře po 5ti minutách, pak stačí udělat úpravu importní podmínky (změna delimiteru) a nutno na odezvu po kliknutí čekat dalších 5 minut.

Když jsem si s tím hrál, zjistil jsem kde je asi problém: přednastane byl jiný delimiter než je v souboru. Pokud jsem "přednastavil" správný delimiter, otevření importeru téměř okamžité.
Zde bude zakopaný pes - zpracování jednoho dlouhého řádku pro zobrazení importer nezvládá. Jakmile ho dokáže rozsekat, má v náhledu jen pár řádků a to je rychlé.
Pak už otevřít jde.

Testuji na nejnovějších 7.1

Můžete si otestovat na tom menším souboru s 100000 řádky který je ke stažení na tomto odkaze:
http://gofile.me/6x3rV/QSSzvj88U

Editoval imcon (26. 3. 2021 09:30:29)

Offline

#7 26. 3. 2021 12:16:47

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,435

Re: Problémy s otevřením většího CSV souboru - VYŘEŠENO

imcon napsal(a)

.............
Když jsem si s tím hrál, zjistil jsem kde je asi problém: přednastavené byl jiný delimiter než je v souboru. Pokud jsem "přednastavil" správný delimiter, otevření importeru téměř okamžité.
Zde bude zakopaný pes - zpracování jednoho dlouhého řádku pro zobrazení importer nezvládá. Jakmile ho dokáže rozsekat, má v náhledu jen pár řádků a to je rychlé.
Pak už otevřít jde.......

Konec dobrý - všechno dobré, ale problém dlouhých řádků nemusí být dán separátory (uvádíte delimitery).
     Z principu má Calc na 1 buňku nejméně 1 kB, a mám dojem že od nedávné doby i více. Já mám zkušenost s převody takovou, že se někdy objeví "mnoho řádků v jednom - jsou zalomené podobně jako u hyperlinků. Našel jsem jednou řádek s několika desítkami zalomení. Takto nešťastný export nafoukne velikost buňky a může se překročit limit velikosti. Může se to stát také asi špatnou volbou jazykové množiny, nebo podmnožiny.
     Z běžných záležitostí se stává problém v případě, že je použit nějaký exotický separátor.
V takovém případě musíte najít znak podle kterého zalomení převedete na regulérní řádky. Najít takový "špek" numusí být snadné. Podezřívat se musí oddělovače sloupců i řádků. Nejspíš musíte v náhledu najít ten dlouhý řádek a na něm tipnout co je špatně. Někdy to může být speciální znak a jindy například regulární výraz "\n" který značí nový řádek, ale Calc toto neakceptuje. Když se zvolí byť špatně zpětné lomítko jako separátor, tak se Vám to může podařit rozsekat - ale nejspíš špatně do sloupců.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#8 26. 3. 2021 14:23:53

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 368

Re: Problémy s otevřením většího CSV souboru - VYŘEŠENO

Problém s příliš dlouhým řetězcem když má přijít do buňky je, to mohu potvrdit. S tím se ale asi nic neudělá a zřejmě ani jiné programy by na tom nebyly lépe kdyby se do jedné buňky mělo dát třeba 10MB textu.

Druhá věc však je že tento problém se může projevit již pro zobrazení importovacího okna, neboť to ve své spodní části má ukázkovou tabulku jak budou data rozdělena.

A importovací okno si pamatuje předchozí nastavení a na nově importovaný soubor nejprve použije ty zapamatované vlastnosti!!!


Takže jestli jste předtím otevíral něco jiného a měl jste v tom importovacím okně zaškrtlý jako oddělovač třeba tabulátor, tak již do té ukázkové tabulky ve spodku importovacího okna to nebude dávat ukázku dle čárek, ale s rozdělením do sloupců dle tabulátoru -> což v případě toho vašeho ukázkového CSV znamená umístit do prvního sloupce to co by mělo být ve více sloupcích - čímž asi dojde k tomu, že v buňkách bude příliš dlouhý text. A teprve až to provede, tak si budete moci vybrat, že chcete zaškrtnout třeba oddělení podle čárky :-(.


Přišel jsem na to po nějaké té přeinstalaci a resetu uživatelského profilu, kdybych nejprve resetoval už. profil, mohl jsem si ušetřit přeinstalaci na starší verzi.


Řešení je možné udělat tak, že budete mít nějaký malý CSV soubor klidně jen s jedním řádkem, který dáte naimportovat a zaškrtnete si potřebné checkboxy a to si zapamatuje -> a poté tedy dáte otevřít velký soubor. Takto mi to funguje i když je to samozřejmě trochu "vojeb".


Pro velké soubory by to chtělo mít možnost moci si nejprve navolit checkboxy třeba jen na pár prvních řádcích souboru - aby se právě již do té ukázkové tabulky importovacího okna nenačítalo vše. A pak to teprve pustit na celý soubor. Nevím jestli tohle jde někde nastavit nebo by to chtělo dát jako požadavek do bugzilly -  pokud to tam tedy již není.

Editoval kamlan (26. 3. 2021 15:30:36)

Offline

#9 27. 3. 2021 22:04:27

imcon
Člen
Místo Brno
Registrace: 16. 5. 2007
Příspěvků: 224

Re: Problémy s otevřením většího CSV souboru - VYŘEŠENO

Díky za odpovědi jak neutr tak kalman. Ano to co píše kalman jsem zjistil, otestoval a uvádím již ve svém předchozím příspěvku, ale asi jsem to nepopsal moc jasně.
Myslím, že se jedná o chybu designu engine importeru, měl by být navržen tak, aby na této možnosti nepadal, protože je celkem dost pravděpodobné, že se často netrefíte.

Ale pokud to nyní už víme, stačí pár hard restartů LO (jasně jde to i chytřeji) a správný delimiter se najde :-) Jen přijít na to kde byl zakopaný pes...

Bylo by asi dobré toto zadat do fronty k úpravě (nepíši opravě protože to asi není bug ale chyba designu), což neumím.
Po pravdě mě ale víc trápí nedostatek jiných užitečných maličkostí (triviálnějších na doplnění než tato oprava ale užitečnějších), jako je například možnost jednoduše invertovat selekci ve filtrech...

Editoval imcon (27. 3. 2021 22:05:50)

Offline

#10 28. 3. 2021 09:26:02

zcr
Člen
Registrace: 10. 6. 2019
Příspěvků: 113

Re: Problémy s otevřením většího CSV souboru - VYŘEŠENO

Chyby včetně požadavků na vylepšení (enhancement) se zadávají do bugzilly https://bugs.documentfoundation.org/. Popis jak hlásit chyby je na wiki https://wiki.documentfoundation.org/QA/BugReport/cs. Popis je přeložen do češtiny, komunikační jazyk v bugzille je angličtina (stačí přeložit přes google translate).

S importem velkých počtu řádku, jak zde bylo také konstatováno, problém není. Viz také https://ask.libreoffice.org/cs-cz/quest … cet-radku/.

"invertovat selekci ve filtrech" -  shodou okolností před pár dny toto někdo komentovat na facebooku https://www.facebook.com/LibreOfficecz. Pokud jste to nebyl Vy tak možná to již někdo zadává do bugzilly.

Offline

Zápatí