abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:00 | Zajímavý software

    Americká společnost Reflection AI světu představila Beam, open-weight model s 501 miliardami parametrů (z toho 23 miliard aktivních), určený především pro programování a práci autonomních agentů. Podle autorů jejich model nabízí výkon srovnatelný s většími modely při výrazně nižších nárocích na výpočetní výkon. Beam nyní ještě prochází závěrečným testováním, na stránkách Reflection AI se však lze zaregistrovat a získat předběžný přístup. Váhy modelu, dokumentace a nástroje pro vývojáře mají být zveřejněny v průběhu tohoto měsíce.

    AfD 💙 | Komentářů: 0
    dnes 02:00 | Komunita

    OpenCourant je komunitní fork OpenRadioss, tj. open source softwaru pro simulace havárií, nárazů a vysoce nelineárních dynamických dějů metodou konečných prvků. Společnost Siemens v loňském roce dokončila akvizici společnosti Altair Engineering, jež před čtyřmi lety uvolnila open source verzi OpenRadioss svého proprietárního softwaru Radioss. Minulý týden Siemens OpenRadioss pohřbil. Integroval jej do svého softwaru Simcenter, webovou stránku OpenRadioss přesměroval na Simcenter a repozitář OpenRadioss na GitHubu odstranil.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Pozvánky

    Pořadatelé devátého ročníku komunitního setkání správců nejen českých a slovenských sítí – CSNOG 2027, které se uskuteční 20. a 21. ledna, vyhlásili Call for Abstracts. Náměty na vystoupení mohou zájemci přihlašovat do 31. října na webu akce a vybírat mohou ze tří sekcí – správa sítí, legislativa a regulace a akademické projekty. Zveřejněny byly také Call of Partners určené sponzorům a partnerům setkání, kteří by například chtěli mít na

    … více »
    VSladek | Komentářů: 0
    včera 16:11 | Zajímavý software

    Strata je open-source inferenční engine, který umožňuje lokálně provozovat rozsáhlý čínský model Qwen3.8-Flash-Next, který by jinak nejspíše vyžadoval serverovou infrastrukturu, na běžném herním počítači s alespoň 12 GB VRAM, 32 GB RAM a dostatkem místa na SSD. Nároky na paměť a rychlost generování se liší s použitou variantou modelu Qwen. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.

    AfD 💙 | Komentářů: 2
    včera 15:11 | Humor

    Americký prezident Donald Trump oznámil vznik federální Jednotky pro superinteligenci (Super Intelligence Force), která má koordinovat postup vlády, technologických firem, náboženských organizací a dalších institucí v oblasti rychle se rozvíjející umělé inteligence (Trumpem oficiálně nazývanou superinteligencí). SIF, podřízená přímo Trumpovi, má pomoci Spojeným státům udržet v oblasti SI technologický náskok nad světem a

    … více »
    AfD 💙 | Komentářů: 4
    včera 13:11 | Zajímavý software

    Klient je e-mailový klient pro GNOME s nativní podporou Proton Mailu, PGP a spamfiltrem řízeným AI. Napsaný je v Go s GTK4 a libadwaita. Připojuje se přímo k Proton Mailu (bez Proton Bridge), ke Gmailu, k Seznam.cz a k libovolné schránce IMAP/SMTP. Každou novou zprávu nejdřív posoudí spamfiltr a teprve potom ji ukáže a ohlásí. Rozhraní je česky a anglicky.

    Ladislav Hagara | Komentářů: 5
    včera 10:44 | Humor

    Hra Doom nově běží také v SQL databázi CedarDB. Představen byl SQLDoom. Vyzkoušet lze online demo. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Multiplatformní open source aplikace scrcpy (Wikipedie) pro zrcadlení připojeného zařízení se systémem Android na desktopu a umožňující ovládání tohoto zařízení z desktopu, byla vydána v nové verzi 5.0. S podporou hardwarového dekódování videa na desktopu.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Moderní linker mold, rychlejší alternativa k LLVM lld nebo wild, byl vydán v nové major verzi 3.0.0. Přepsán byl z C++ do Rustu.

    Ladislav Hagara | Komentářů: 3
    5.10. 20:22 | Nová verze

    Po osmi letech od vydání verze 2.0 byla vydána nová major verze 3.0 multiplatformního editoru tagů MusicBrainz Picard (Wikipedie). Přehled novinek, vylepšení a oprav v changelogu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2807 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: SQLite zpomaluje během INSERT OR IGNORE

    21.5.2020 07:03 Aleš Nehyba | skóre: 1
    SQLite zpomaluje během INSERT OR IGNORE
    Přečteno: 1475×
    ahoj,

    Při vkládání velkého množství záznamů do SQLite pomocí příkazu INSERT OR IGNORE pozoruji výrazné zpomalení. Data vkládám přes python z csv souborů. Mám desítky souborů o velikosti cca 300 MB a každý obsahuje statisíce až milion záznamů - textové popisky definující význam a k nim přiřazená číselné hodnoty. Python vytváří několik číselníků, do kterých se ukládají ty popisky, aby se šetřilo místo, protože ty jsou hodně duplicitní.

    Zpracování prvních takových souborů trvá pár desítek vteřin/několik minut na každý soubor. Postupně se čas zpracování souboru prodlužuje a dosahuje i desítek minut/pár hodin. Nějak významně nepomohlo ani vypnutí indexování během vkládání. Transakce používám.

    K datům bude přistupovat pouze jeden program běžící lokálně. Proto jsem volil sqlite. To zpomalování při vkládání mě ale nutí zeptat se, jestli by na tom jiné databáze nebyly lépe?


    Řešení dotazu:


    Odpovědi

    21.5.2020 12:10 debian+
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    Urcite lepsie.

    Mas na vyber SQL alebo NoSQL databazy. SQLite pri ukladany zmeny potrebuje ulozit databazu ako SQL dotaz (RAW -> SQL), co pri tom mnozstve chce cas a blokuje pracu s DB.
    21.5.2020 12:46 EtDirloth | skóre: 11
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    Ako vzdy, aj tu plati, ze DB engine treba vyberat podla potrieb aplikacie. Takze tazko povedat, ako by na tom boli ine databazy.

    Nevieme, ako vyzeraju data. Mohol by tu pomoct bulk load CSV do docasnej tabulky v sqlite a nasledny podmieneny INSERT INTO trvale SELECT FROM docasne WHERE NOT IN/NOT EXISTS (trvale). Toto sa potom da urobit aj z CLI, resp. v bashi cez sqlite3 klienta.

    Nepozname tvoju aplikaciu - a v akej forme robis dotazy. Python je dost pomaly a ten bottleneck mozes mat v nejakom tvojom foreach. Skus si spravit profiling, nech vidis, kde ten program travi cas.

    Nevieme, ci potrebujes mat data perzistentne. Subor so Sqlite databazou je mozne nacitat aj do RAM a pouzit ju ako in-memory DB. Spatne ulozenie do suboru vsak bolo par rokov dozadu trochu zlozitejsie, ale islo aj to. Ak potrebujes len key-value, potom by mozno taky Redis bol pre teba vhodnejsi.
    21.5.2020 18:09 Aleš Nehyba | skóre: 1
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE

    Díky za tip. Zkusím tu dočasnou tabulku.

    Data převádím do databáze pro trvalé uložení. Vyhledávání v původních csv souborech celkem trvá. Dotaz do SQL je mnohonásobně rychlejší. Těch dotazů může být v dávce několik tisíc, výsledkem každého je několik desítek řádků pro další zpracování. Zpočátku to vypadalo, že databáze je řešení. Ale s prodlužujícím se časem zpracování insertů už to tak růžové není. Už je skoro jedno, jestli čekat hodiny na přípravu dat pro sql dotazy, nebo hodiny na zpracování dotazů do csv.

    Velikost databáze je dnes cca 12 GB. Za rok naroste cca o 1 GB, to je asi 6 mio záznamů.

    28.5.2020 11:33 Aleš Nehyba | skóre: 1
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    Tak ta úprava INSERT pomohla. Díky.
    21.5.2020 12:50 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    Bez znalostí požadavků na systém (typy dotazů) se dá těžko odpovědět. Plnění SQLite skutečně trvá déle a možná bude stát za to vydržet i několikadenní plnění, protože čtení bývá rychlé.

    Ovšem pokud to má být KVS, tak se dá najít pár vhodnějších databází. Je možné i využití NoSQL.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    21.5.2020 14:05 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    Na tohle by se dala využít DB4, která je pro podobné účely fakt rychlá. Zkoušel jsem i Tokyo Cabinet, který také podával zajímavé výkony.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    21.5.2020 20:32 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    Bulk insert se tu řeší v diskuzích pravidelně (pro různé databáze). Každá databáze se chová jinak a řada databází umí nacpat csv do tabulky přímým importem - je to mnohonásobně rychlejší než normální insert (i multi-insert, kdy se vkládá více záznamů jediným dotazem). Některé databáze umí mít jako storage i csv, takže by pak stálo za to zkusit načíst csv takto a pak selectem překopírovat do cílové tabulky. Zkusit jak je na tom databáze s výkonem v režimu in-memory. Při importu koukat na obsazení RAM, vytížení CPU a vytížení IO. Pokud jde o data ze sensorů existují specializované time-series databáze, které řeší některá specifika efektivněji.

    Nakonec stojí za zvážení změna workflow, zda by nešlo vkládat záznamy do databáze bez csv mezikroku.

    Pokud to chcete řešit podrobněji, chce to vidět ten python script a vzorek dat.
    -- OldFrog
    21.5.2020 20:42 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    PS: Ruční tvorbě číselníků by se šlo asi vyhnout, například by šlo popisky uložit do jiné 1:1 tabulky a na tu tabulku nastavit vhodný typ úložiště (s kompresí) nebo prostě jen nastavit jiný vhodnější typ sloupce (trigramy). To by odvedlo stejnou práci - a oproti skriptu by to bylo určitě efektivnější. Jsem celkově přesvědčen, že vhodné řešení může přinést řádové urychlení.
    -- OldFrog
    23.5.2020 21:47 Tom K | skóre: 22
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    sqlite3 má jako vlastnost, že při určitém počtu záznamů začne výrazně zpomalovat insert. Ten počet je někde okolo milionu řádků. Souvisí to s implicitním indexem a UNIQUE sloupci, které se chovají jako indexy. Na jednom projektu, kde jsem potřeboval řádově desítky milionů řádků jsem to řešil rozdělením do samostatných databází, které jsem následně spojil (bylo jich 512).
    Při spojování je důležité klíčové slovo WITHOUT ROWID.
    Zajímavý odkaz je tady: https://stackoverflow.com/questions/15778716/sqlite-insert-speed-slows-as-number-of-records-increases-due-to-an-index/15809806
    echo -n "u48" | sha1sum | head -c3; echo
    24.5.2020 21:18 Aleš Nehyba | skóre: 1
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    Díky. Ve dvou největších tabulkách mám 25 mio a 60 mio řádků. Zkusím ta data rozdělit podle let.
    24.5.2020 23:11 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: SQLite zpomaluje během INSERT OR IGNORE
    Však už to máš rozděleno. Z každého vstupního souboru uděláš jednu databázi a následně je spojíš do jedné.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

    Založit nové vlákno • Nahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.