margin-top: 125px; border: 1px solid gray; } -->

Ukládat, či neukládat dokumenty do databáze?

Jiří Machotka, 02. září 2011 08:50 3 komentářů
Ukládat, či neukládat dokumenty do databáze?

Nedávno jsem byl svědkem dvou, poměrně vášnivých, diskuzí na téma zda ukládat dokumenty do databáze, či nikoliv. Osobně se nekloním ani na jednu stranu. Trefně to však vystihl kolega, který prohlásil, že každý preferuje to, co zná. Pojďme se však podívat na věc pokud možno objektivně.

Sídlo společnosti Oracle
Sídlo společnosti Oracle
Častým argumentem odpůrců vkládání je tvrzení, že vkládání dokumentu na databáze trvá výrazně déle než vkládání na filesystem. Toto (minimálně pro databáze Oracle) byla pravda někdy, dnes již dost dávno. Obecně trvá vkládání do databáze o něco déle, rozdíl je však v jednotkách procent. A pro některé speciální případy (vkládání mnoha krátkých souborů najednou) dokáže být databáze dokonce rychlejší. Stejně tak může být rychlejší, pokud je systém synchronizován (např. z důvodů disaster recovery - databáze synchronizuje celý commit, filesystem každou změnu).

Komprese, deduplikace, šifrování dokumentů

Argumentem zastánců databáze naopak bývá možnost využití databázových options, a to zejména na kompresi vkládaných dokumentů (zmenšení obsahu na disku), deduplikaci (vkládá-li se stejný soubor vícekrát, je uložen fyzicky jen jednou a z dalších míst existuje odkaz) a zašifrování (ani pro db administrátora nebude soubor čitelný, pokud si jej vyhledá prostředky databáze). Předně, tyto options často bývají k dispozici i na úrovni filesystému (zpravidla taktéž za příplatek). Navíc, jejich přínos je velmi závislý na tom, co se bude do úložiště ukládat (dokumenty MS Office se budou komprimovat dobře, PDF, TIFF či JPEG formátům asi komprese moc neubere), či jak je projekt implementován (přílohy emailů po firmě by se neměly posílat jako soubory, ale jako odkazy do úložiště).

Synchronizace active a stand-by lokality

Podobně je na tom využití technologie DataGuard pro synchronizaci active a stand-by lokality u řešení v rámci disaster recovery. UCM bohužel "odkládá" některá provozní data na filesystem (z těch nejznámějších: stavy položek ve workflows), a tak je podporována jen instalace, kde je synchronizována databáze i filesystem.

Fulltext indexace

Databáze umí (kromě engines třetí strany) indexovat soubory pro fulltextové vyhledávání. Pro využití této vlastnosti však není nezbytně nutné, aby zdrojové soubory byly uloženy v databázi (v databázi je v každém případě výsledný index).

Jednotná správa

Pokud nebudete implementovat model OAIS, který vyžaduje, aby i v případě ukládání dat na "otevřenou platformu" byla data i metadata u sebe, dá se očekávat, že při ukládání na filesystem budou metadata v databázi, tj. při případné ztrátě či chybě, která oba celky od sebe rozpojí, budete mít problémy spojit, co k sobě patří (po pravdě řečeno, i s metadaty rozházenými na disku to nebude o moc snazší). Toto je tedy argument pro databázi. Na druhou stranu, k jeho uplatnění dojde jen v opravdu krizových situacích a v případě správné politiky zálohování lze dopady minimalizovat.

Hierarchical Storage Management

To jest, ukládání starších dat s možnou delší vybavovací dobou na levnější fyzická úložiště lze dosáhnout jak prostředky databáze, tak filesystému - při využití partitioningu bude databáze pracovat s několika málo většími soubory, zatímco na filesystému bude základní jednotkou nejspíš jednotlivý soubor, což opět může být mírný argument pro databázi.

V souhrnu je tedy vidět, že obě metody jsou srovnatelné s mírnou převahou pro ukládání v databázi. Při výběru metody je tedy třeba zvážit i to, na co jsou zvyklí administrátoři zákazníka či zda zákazník neinvestovat do jedné či druhé metody a očekává zhodnocení svých investic v rámci projektu.

Autor pracuje jako Principal Sales Consultant ve společnosti Oracle.


Komentáře

ufak #1
ufak 02. září 2011 11:24

Tvrdím, že designér a programátor mají hlavu a zváží všechna pro a proti. Pokud už ovšem něco používám, jistě si budu chtít zjednodušit práci a použiji, co umím.

Kolemjdouci #2
Kolemjdouci 02. září 2011 15:29

Jeden hloupoucky dotaz: kdyz narvu do Oracle db stovky giga dokumentu, budu muset platit drazsi licenci?

Sten #3
Sten 07. září 2011 12:56

Ten nejdůležitější důvod, proč se přiklonit na tu kterou stranu, tu chybí. A tím je: o jaký databázový engine se jedná? Třeba u MySQL/MyISAM se to moc nehodí kvůli jisté pomalosti toho enginu při práci s binárními daty, MySQL/InnoDB to úplně zabije kvůli řazení dokumentů na disku, naopak u PostgreSQL to funguje celkem bez problémů. Oracle jsem nezkoušel, ale tam hlavním důvodem bude cena licence na takový objem.

RSS 

Komentujeme

Kradená auta: Další úkol pro bezpečnostní kamery

Pavel Houser , 16. srpen 2017 06:30
Pavel Houser

Bezpečnostní kamery, které hledají ukradená vozidla nebo mají za úkol vozidlo jednoznačně identifiko...

Více






Kalendář

24. 08. Webinář Synology - DSM 6.1 - Virtual Machine Manager
27. 08.

31. 08.
VMworld 2017
01. 09.

06. 09.
IFA 2017
RSS 

Zprávičky

Irsko odmítá požadavek EU, aby od Applu zpětně vybralo daně

ČTK , 18. srpen 2017 13:00

Jednání Applu údajně nebylo v rozporu s legislativou Irska ani Evropské unie....

Více 1 komentářů

Ericsson zvažuje, že propustí až 25 000 zaměstnanců

ČTK , 18. srpen 2017 09:00

Švédská firma se v poslední době potýká se slábnoucí poptávkou ze strany telekomunikačních operátorů...

Více 0 komentářů

Alibaba téměř zdvojnásobila zisk, růst tržeb překonal odhady

ČTK , 18. srpen 2017 08:00

Alibaba, která patří k nejhodnotnějším firmám v Asii, profituje z rostoucích on-line nákupů čínských...

Více 0 komentářů

Starší zprávičky

Telekomunikační úřad se chystá regulovat mobilní trh

ČTK , 17. srpen 2017 14:34

Přetrvává velký rozdíl mezi vyššími cenami pro domácnosti a nižšími cenami pro firmy, který dosahuje...

Více 0 komentářů

ShadowPad: malware v produktech NetSarang pro správu serverů

Pavel Houser , 17. srpen 2017 13:43

Útočníci schovali backdoor ShadowPad v softwaru využívaném stovkami světových společností včetně ban...

Více 0 komentářů

Rozšířená realita bude za pár let běžnou záležitostí

ČTK , 17. srpen 2017 12:58

Za pět, šest let bude běžné, že si turisté při návštěvě zahraničních metropolí nasadí speciální brýl...

Více 0 komentářů

Podíl internetových kurzových sázek v ČR loni vzrostl na 88 %

ČTK , 17. srpen 2017 10:00

Velký podíl na internetových sázkách tvoří live sázky, které lze uzavírat opakovaně v průběhu zápasu...

Více 0 komentářů