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í
×
včera 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 6
včera 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
včera 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 27
včera 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 13
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 34
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 5
17.2. 09:00 | Nová verze

Bylo vydáno Ubuntu 16.04.2 LTS, tj. druhé opravné vydání Ubuntu 16.04 LTS s kódovým názvem Xenial Xerus. Přehled novinek v poznámkách k vydání a v přehledu změn.

Ladislav Hagara | Komentářů: 60
17.2. 06:00 | Zajímavý článek

Pavel Tišnovský se v dvoudílném článku na MojeFedora.cz věnuje tvorbě pluginů (modulů) pro bitmapový grafický editor GIMP. Pomocí pluginů lze GIMP rozšiřovat o další funkce. Implementovat lze například nové filtry nebo pomocné utility pro tvorbu animací či poloautomatickou retuš snímků.

Ladislav Hagara | Komentářů: 6
16.2. 23:32 | Komunita

Do 30. března se lze přihlásit do dalšího kola programu Outreachy, jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 30. května do 30. srpna 2017, v participujících organizacích lze vydělat 5 500 USD. Jedná se již o 14. kolo tohoto programu.

Ladislav Hagara | Komentářů: 11
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 676 hlasů
 Komentářů: 61, poslední dnes 13:06
Rozcestník
Reklama

Dotaz: Textové soubory do relační databáze - struktura db

10.1.2011 16:03 4rasic
Textové soubory do relační databáze - struktura db
Přečteno: 531×
Dobrý den. Mám několik desítek textových souborů, které obsahují až statisíce řádků. Jejich struktura je zhruba následující:
soubor0:
jednoznackyidentifikator | boolhodnota | stringhodnota | ...

souborN:
jednoznackyidentifikator | nejakadalsihodnota | zaseneco | ...

...
Potřebuju data z těchto souborů dostat do DB. Můj plán je následující: pro každý soubor vytvářet automaticky tabulku, jejíž název bude sha1 hash názvu souboru (kvůli rozlišování písmen, nepovoleným znakům aj.), v každé tabulce bude jednoznackyidentifikator PK. Někde stranou si budu v aplikaci udržovat seznam názvů souborů, které chci procházet (nemusím chtít všechny). Takový je můj plán. V nespočetně mnoha článcích jsem se ale dočetl, že není dobré měnit strukturu databáze (vytvářet tabulky) dynamicky a dost se od toho odrazuje. Tzn. že by byla lepší jedna tabulka, ve které by byla data ze všech souborů? Není to blbost?

Odpovědi

okbob avatar 10.1.2011 16:19 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
Ono hodně záleží, co s těmi daty chcete dělat a jak je chcete zpracovávat? Jestli je nejakým způsobem významné, z kterého souboru data pochází? Jestli chcete provádět jednorázovou operaci nebo zda-li s daty chcete pracovat trvale? A také záleží, co vlastně tato data znamenají.

Jinak 100 tis nebo mil, přip. 10 mil řádků v jedné tabulce není problém.
10.1.2011 16:38 4rasic
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
Chci třeba zobrazit "naráz"(nějak filtrovaná) všechna data z 4 souborů - řádky spojené pomocí jednoznackyidentifikator. Na to se právě perfektně hodí mít více tabulek a nad nima hodit inner join. Myslím, že toto samé se dá provést i pokud by to bylo v jedné tabulce (jen postup získání dat je složitější).
okbob avatar 10.1.2011 19:13 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
Pokud ta data ze souborů jsou skutečně natolik jiná, že byste je chtěl spíš JOINovat než UNIONovat :), tak pak asi má smysl je nechat v samostatných tabulkách.
11.1.2011 00:35 4rasic
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
Tuhle odpověď jsem tak uplně nepochopil, ale mám asi 2 možnosti realizace:
1/ vícero tabulkami

soubor0:
identifikator | sloupec1 | sloupec2
-----------------------------------
fasd8fSDd6    | 0        | retezec


soubor1:
identifikator | sloupec1 | sloupec2
-----------------------------------
fasd8fSDd6    | false    | -51


... a pak join using identifikator ... moznost where, order ...


2/ jednou tabulkou

soubor  | identifikator | sloupec  | hodnota_bool | hodnota_varchar | hodnota_int
---------------------------------------------------------------------------------
soubor0 | fasd8fSDd6    | sloupec1 | NULL         | NULL            | 0
soubor0 | fasd8fSDd6    | sloupec2 | NULL         | retezec         | NULL
soubor1 | fasd8fSDd6    | sloupec1 | false        | NULL            | NULL
soubor1 | fasd8fSDd6    | sloupec2 | NULL         | NULL            | -51

tady nevim, jaky dotaz pouzit?
Nemůžu se zbavit dojmu, že za 2/ je takové čistější, ale asi také o dost pomalejší (??).
okbob avatar 11.1.2011 06:34 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
Takhle od stolu se nedá říci, které řešení je výhodnější - vyzkoušejte si rychlost nejčastějších dotazů a pohodlí sestavovaní dotazů. Vaše druhá varianta je analogií materializace. Což někdy je výhodné, a někdy ne. Záleží na přístupu. Pokud bych měl hodně souborů tak bych inklinoval spíš k jedné nebo dvoum tabulkám. S málem souborů můžete mít tabulky per soubor.
11.1.2011 08:15 4rasic
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
No těch "spolusouvisejících" souborů bude okolo 10. Maximálně tak 100. On asi také není zanedbatelný čas pro samotné spojování několika statisíce řádkových tabulek že? V té dvojce maximálně spojím tabulky 2 (pokud to budu mít v 3NF). U té 2/ varianty jsou ale zase "nevyužité sloupce" (NULL). Kolik času navíc zabere procházení takových sloupců, pokud bych podle nich chtěl třeba hledat? V těch záznamech se také bude často hledat pomocí LIKE '%neco%'.
okbob avatar 11.1.2011 12:50 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
to spojeni tabulek je pomerne zanedbatelne relativne ku cteni dat z disku. Zjednodusene - db dotazy jsou tim pomalejsi cim vic ctete data, ktera vas v tu chvili nezajimaji. NULL znamena +/- 1 bit - zalezi na db a typu. To ze budete vyhledavat skrz LIKE znamena, ze se Vam nebudou chytat indexy. Coz by vedlo na oddelene tabulky. Zase, pri deseti tabulkach je to ok, ale pri 100 tabulkach se budete proklinat, az budete psat dotazy. Ja bych zkusil nahnacat do jedne, dvou tabulek, vygeneroval si testovaci data, a pak si vyzkousel, jak dlouho trvaji dotazy.
11.1.2011 16:05 4rasic
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
Tak já přímo dotazy psát nebudu, to si naprogramuju a bude se to generovat automaticky, takže je mi jedno jestli ten dotaz bude mít 10M. Teď jsem si jen tak letmo zkusil v mysql (pak asi použiju firebird nebo postgres, ale to je teď jedno) vygenerovat 450000 řádkovou tabulku + 70000 řádkovou tabulku. Pokud hledám jen v té větší tabulce, zabere to při použití like 0.0684s, po spojení left joinem (uvědomil jsem si, že inner join je blbost, protože budu chtít vidět "všechna" data - v závislosti na konkrétní tabulce) nad oběma 0.0849s. Pokud zdvojnásobím počty řádků v tabulkách, tak časy jsou pak několikanásobně větší. Tzn. že pokud spojím 3 2sloupcové tabulky s počtem řádků 1 000 000 left joinem, budu mít maximálně 1 000 000 řádků po spojení. V případě 1 tabulky jich bude 3 * 2 * 1 000 000 a to pak bude trvat hoodně dlouho než se to projde. Mimochodem kdybych měl 1 tabulku - jakým způsobem bych v ní hledal? Jak by vypadal pro jednotabulkovou variantu tento dotaz?:
select identifikator from soubor1 where (sloupec1 = 'neco' AND sloupec2 = 'necojine') OR sloupec2 = 'necojine2' order by sloupec1, sloupec2 desc limit 300 offset 2;
To je jeden z typických dotazů nad daty a teď si neumím představit variantu pro jedno(dvou)tabulkové řešení. Asi tam budou nějaké vnořené dotazy a nějaký union, ale sql tak dobře neznám.
11.1.2011 19:48 jk
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
tak u toho prikladu bych vam radil, at na to nejdete s sqlite.

Zrovna su hraju v sqlite s jednou tabulkou, ktera ma 3 miliony radku jakmile reknu order by pole1,pole2 desc, tak trva dotaz 4 minuty, vzestupne 4 vteriny. A to mam slozeny index na tech polich pole1, pole2.

Kdyz pouziji pouze order by pole1 desc, tak to jde take okamzite.
11.1.2011 20:43 jekub
Rozbalit Rozbalit vše Re: Textové soubory do relační databáze - struktura db
a udelat index pole1, pole2 desc nepomuze?

Založit nové vláknoNahoru

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.