Zmije útočí IBM DB2 9.1 Viper polyká XML

Skrytá zákoutí webhostingu Provoz webhostingu znamená pro webhostera nutnost udržování v chodu mnoha rozličných syst...


Skrytá zákoutí webhostingu
Provoz webhostingu znamená pro webhostera nutnost udržování v chodu mnoha
rozličných systémů a služeb, které ale pro samotnou službu zákazníkům paradoxně
znamenají omezení. Limitních faktorů se najde mnoho, nicméně poskytovatelé se s
nimi často příliš nechlubí. A přitom by jimi zákazníci mohli být leckdy nemile
překvapeni. Strana 19
Nejnovější inkarnace letité databáze DB2 proniká do nové dimenze se svým
skutečně nativním přístupem k ukládání XML. Technologický zázrak společnosti
IBM, známý pod kódovým označením Viper, má za cíl změnit tvář databázových
úložišť.
Nově uvedený produkt společnosti IBM s názvem DB2 9.1 (dříve označovaný jako
"Viper"; v češtině zmije) se zbavuje mnoha omezení svého předchůdce, verze DB2
8, přičemž zároveň nabízí vyšší výkon, škálovatelnost i bezpečnost. Avšak
obzvláště jedna vlastnost hybridní XML/relační engine dává tomuto "plazovi" s
rodokmenem Velké modré výraznou charakteristiku. Pro zákazníky, kteří se
chystají ponořit do nové éry správy XML dat, jsou inovace Viperu opravdu lákavé.
Samozřejmě jsou tady už nějakou dobu tzv. nativní XML databáze, jejich
problémem ale je, že vyžadují speciální knihovny a nejsou kompatibilní s
relačními daty. Na druhé straně tradiční relační databáze mají problémy
pracovat s hierarchickými modely a mívaly v této oblasti pouze omezenou
funkčnost. Proto se hlavní dodavatelé databází usilovně snažili zabudovat do
svých relačních databází schopnosti práce s XML. Ani IBM není výjimkou.
Technologie IBM však své konkurenty překonává, neboť uchovává formát XML dat v
jeho nativní podobě. Po pěti letech vývoje přichází výrobce se zbrusu novým
úložným enginem DB2 pojmenovaným pureXML, který stojí jednou nohou přímo ve
světě relačních databází a druhou ve světě XML databází. Namísto ukládání XML
jako BLOB (Binary Large Object) nebo jeho rozkládání do párů relačních klíčů/
hodnot pureXML ukládá samotný soubor XML se zachováním všech jeho vlastností i
hierarchické struktury.
IBM svoji inovovanou DB2 charakterizuje jako něco zcela nového, jako "hybridní
datový server", který by mohl změnit podobu ukládání dat tak, jak jej známe
dnes. Přesné podrobnosti implementace podléhají přísnému utajení. Je na vás,
zda budete o DB2 s pureXML uvažovat jako o jediném databázového enginu se dvěma
částmi, nebo jako o dvou samostatných enginech, které pouze úzce spolupracují.
Jisté však je, že nová verze nabízí řadu zajímavých možností.
Začněme u toho, že vám poskytne schopnost přistupovat k XML datům s použitím
SQL dotazů stejným způsobem, jako k běžným relačním tabulkám. XQuery zase
můžete kromě přístupu k XML používat i pro přístup k relačním tabulkám. Můžete
dokonce použít relační SQL pro omezení rozsahu dat vytahovaných z výrazů
XQuery. DB2 umožňuje téměř plynulé vzájemné kombinování těchto dvou jazyků.
Engine pureXML rovněž zajišťuje efektivnější indexaci, protože jednotlivé XML
uzly už nejsou uloženy pouze jako řetězce. Podle IBM hlásili zákazníci, kteří
již tento nový engine adoptovali a nasadili, nárůst výkonu ve výši přibližně 5
až 7násobku oproti tomu, co byli schopni získat z databází konkurenčních
výrobců.
Současně se zaměřením na XML poskytuje IBM celou řadu nových vývojářských
nástrojů. Nový Developer Workbench (který nahrazuje Development Center) nabízí
nový XQuery builder, stejně jako přídavná vylepšení pro Visual Studio 2005. Je
to nezbytné?
Klíčovou otázkou samozřejmě je, kolik zákazníků nové schopnosti hybridu DB2
přilákají. Názory analytiků se rozcházejí. V tomto směru si dokonce nejsme
jisti, zda vůbec samotné IBM ví, jaké budou přesné dopady této nové
technologie. A pokud to ví, nemluví o tom. Určitě je možné představit si
aplikace, které využijí výhod hybridního XML/relačního datového skladu.
Například databáze lékařské kliniky by mohla obsahovat relační tabulku pacientů
se všemi relevantními informacemi o pacientovi plus seznam alergií uložený jako
XML. Tento druh záznamu by mohl být modelován relačně, ale použití XML je
dobrou cestou ke snížení počtu spojování tabulek (joins) a usnadnění
vývojářského úsilí, neboť již nemusíte udržovat vztahy mezi pacienty a
rejstříkem alergií. Něco podobného byste mohli udělat s objednávkami a detaily
objednávek, kde každá objednávka ukládá řádkové položky jako XML místo klasické
tabulky řádkových položek.
Navzdory těmto možnostem je problém kombinování SQL a XQuery výrazů zase něco
trochu jiného. Přepínání mezi těmito dvěma styly dotazů tam a zpět se stává
trochu moc složitým a je obtížné pro rychlé čtení. Máme podezření, že většina
vývojářů se psaní těchto typů hybridních aplikací za každou cenu vyhne. Co se
týče optimalizací IBM zaměřených na XML data, tady se stejně jako při
jakémkoliv zvýšení výkonu musíte zeptat sami sebe, co to bude pro vás a pro
vaši firmu znamenat. Pro úlohy, jako je nahrávání milionů řádek do databáze, je
sedminásobné zlepšení výkonu velkolepou novinkou, avšak pro nahodilý příkaz
Insert to zkrátka není nijak významné. S největší pravděpodobností zaznamenají
zákazníci zlepšení ve dvou typech scénářů: když je databáze bombardována jednou
tisícovkou příkazů pro vložení XML za druhou, nebo když databáze nahrává
enormní objemy XML souborů.
Jednou ze zajímavých vlastností enginu pureXML ale je, že uchovává digitální
podpisy podepsaných XML souborů. Když dostanete digitálně podepsaný XML soubor,
můžete jej uložit do databáze a vyvolat jej kdykoliv v budoucnosti, přičemž
digitální podpis zůstane stále nedotčený. Microsoft a Oracle něco takového
nedokáží; ale opět, není to zase tak rozšířený požadavek. Takže ať je nový
engine jakkoliv skvělý, nemůžeme s jistotou konstatovat, že pureXML významně
sníží vaše celkové náklady na vlastnictví, tj. TCO (Total Cost of Ownership).
Zatím se jeho úžasné možnosti jeví z větší části jako technologické výdobytky,
které jsou skvělé jen pro technologii samotnou. Sama skutečnost, že DB2
disponuje určitou funkčností, z ní ještě nedělá nejlepší možnou strategii.
Škálování do nových výšin
Naštěstí však schopnost práce s XML, jež nyní DB2 nabízí, není jediným
vylepšením nové verze. Právě naopak. Další důležitou oblastí, které IBM
věnovala zvláštní pozornost, je škálovatelnost.
Začněme tím, že použitím většího identifikátoru záznamů DB2 9.1 umožňuje
administrátorům vytvářet pro systémové a uživatelské dotazy dočasné pracovní
tabulky, které jsou mnohem rozsáhlejší, než bylo možné dříve. Také byla
zvětšena velikost jedné tabulky, a to až na obrovských 1,1 bilionu řádek nebo
16 TB dat podle toho, kterého z obou omezení je dosaženo dříve. Samozřejmě
obojí s sebou nese dosti velké nebezpečí. Kdybyste opravdu vytvořili objekty
této velikosti, budete mít zřejmě velké problémy s výkonem. Přesto, pokud je to
volba mezi možností pomalého zpracování a nezpracování, budete na tom jistě
lépe s tím, co vám DB2 poskytuje. Podobné je to v DB2 s limitem dotazů.
Databáze umožňuje zadávat dotazy až do délky 2 MB. Rozhodli jsme se tedy
provést malý experiment. Opakovaným vkládáním jsme vytvořili dotaz ve Wordu,
který dosáhl 2 MB, a výsledek tak dosahoval přibližně 64 stránek. Jakkoliv si
jediný takto dlouhý dotaz v praxi nedokážeme představit, předpokládáme, že to
pro někoho může být užitečné. A podobně pokud předpokládáte, že budete mít ve
svých tabulkách víc než bilion záznamů, pak máte s DB2 štěstí.
Statistické pohledy jsou další vlastností týkající se škálovatelnosti DB2 9.1.
Optimalizátor dotazů obvykle používá statistiky pro odhad mohutnosti dat
uložených v tabulkách, a to je jeden z hlavních faktorů využívaných pro určení
plánu provádění pro určitý dotaz. Statistické pohledy tuto schopnost rozšiřují
také na pohledy, což znamená, že pohledy již nejsou pouze pokládány za odvozené
tabulky, ale skutečně se s nimi zachází více jako s tabulkami. IBM není jediné,
kdo uvažuje o setření hranice mezi pohledy a tabulkami, ale je první, kdo jej
implementuje. Kontrola přístupu
Oracle používá pokročilou kontrolu přístupu na úrovni řádek už od verze 8.1.
DB2 9.1 jej nyní dohání, ačkoliv trochu odlišnou metodou. (Bohužel SQL Server
podobnou funkcionalitu vůbec nemá a podle dosavadních informací se o ní
neuvažuje ani pro verzi Katmai v příštím roce.) Ačkoliv tradiční metody
kontroly přístupu k datům na úrovni řádek (pohledy a uložené procedury) jsou
stále ve hře, LBAC (Label-Based Access Control) v DB2 poskytuje mnohem lepší
zajištění tím, že uživatelům zabraňuje obelstít vaše bezpečnostní opatření.
Například s použitím tradiční kontroly přístupu byste mohli vytvořit pohled,
který specifikuje, že určitý uživatel může vidět pouze zákazníky z určitého
regionu nebo pouze určitý sloupec v tabulce zákazníků. Ale uživatel, který zná
název základní tabulky, se přesto může na tuto tabulku dotázat, namísto aby
použil příslušný pohled. Na druhé straně s LBAC můžete specifikovat
bezpečnostní politiku pro kontrolu přístupu ke specifickým sloupcům nebo
dokonce k jistým oblastem řádek. Ostatní databáze jsou schopny dosáhnout něčeho
podobného na této úrovni zabezpečení s použitím tradičních metod. Rozdíl je v
úrovni potřebné administrace. U tradičních metod můžete například vytvořit
uloženou proceduru, abyste poskytli přístup k datům skupině uživatelů. Když se
vyskytne jiná skupina, můžete napsat další uloženou proceduru, abyste jim
rovněž poskytli přístup, jejž potřebují, a tak dále. Musíte tak neustále držet
krok se všemi procedurami, které jste napsali, a sledovat, která skupina
dostala přístup k čemu. Výhodou ovšem zase je, že jedna uložená procedura
neovlivňuje ty ostatní a to si nevyžaduje příliš mnoho plánování.
S LBAC však musíte skutečně plánovat, jak chcete, aby bezpečnostní politika
fungovala. Když se vyskytne nová skupina, která potřebuje jiná přístupová
práva, možná budete muset celou vaši bezpečnostní politiku přebudovat, aby
nadále dobře fungovala. Nicméně z dlouhodobého hlediska vyžaduje přístup
založený na LBAC mnohem méně průběžné administrace, neboť veškerá práce je
provedena předem. Nemusíte si dělat starosti s tím, abyste si udrželi přehled o
verzích uložených procedur apod. Každý z uvedených přístupů má své místo a
odhadujeme, že i pracoviště využívající LBAC budou nakonec využívat kombinaci
obou metod. Redukujte svá data
Jednou z našich oblíbených funkcí DB2 je nová komprese na úrovni řádek. Je to
vlastně komprese na úrovni tabulky a může se odrazit v přímých úsporách
úložného prostoru ve výši 45 až 75 procent. Provedli jsme počáteční benchmark,
abychom získali představu o výkonnostním rozdílu mezi dvěma identickými
tabulkami jednou, která prošla kompresí, a druhou bez komprese. Zjistili jsme,
že výsledek byl v obou případech podobný, ale komprimovaná tabulka často
skutečně poskytovala lepší výkon než nekomprimovaná (pravděpodobně proto, že se
do paměti vešlo více jejích dat).
Pro náš další test jsme naši databázi umístili na server, který měl pouze 1 GB
RAM, abychom viděli, jak může z výhod komprese těžit menší firma. Zjistili
jsme, že komprimovaná tabulka v tomto scénáři neposkytuje ani zdaleka takový
výkon, jako na serveru se 4 GB RAM. Protože DB2 uchovává kompresní slovníky v
paměti, předpokládáme, že menší kapacita paměti na serveru způsobuje, že jsou
kompresní slovníky stránkovány na disk, když je server zaneprázdněný.
Ať již byla skutečná příčina zpomalení jakákoliv, jestliže budete používat
kompresi na úrovni řádek, ujistěte se, že tuto funkci řádně prověříte
benchmarky před tím, než ji nasadíte do produkčního prostředí. Dokonce i když
máte hodně velkou RAM, můžete být překvapeni slabým výkonem, který může mít
příčinu v celé řadě podmínek, zejména jestliže nepoužíváte vyhrazený databázový
server. Ovšem v každém případě, kdybychom měli vybrat jednu funkci, která staví
DB2 před veškeré jiné databáze, určitě by to byla tato, protože bude pro velkou
většinu klientské základny patrně mnohem užitečnější než některé jiné, byť
skvělé možnosti. Dokážeme si představit, že se Oracle a Microsoft nyní poperou
o to, kdo bude tím dalším, kdo s něčím podobným přijde na trh. Čas opustit loď?
Nová DB2 je po technické stránce velmi působivou verzí. Je nabitá funkcemi,
které docela jistě potěší administrátory DB2, stejně jako vývojáře. Jestli ale
tyto vlastnosti budou dostatečně lákavé, aby přesvědčily například skalní
administrátory databáze Oracle ke změně platformy, není tak jisté.
V oblasti práce s XML je engine pureXML rozhodně úspěšný, ale svůj význam pro
podnikové prostředí teprve bude muset prokázat. Funkce pro zajištění vyšší
škálovatelnosti včetně větších dočasných pracovních oblastí a statistických
pohledů činí DB2 atraktivnější pro high-endový trh, ale nemusejí být nutně
lákavé pro menší zákazníky. Průlomová komprese na úrovni řádek je u Viperu tím,
v čem bude většina zákazníků spatřovat největší návratnost. Ačkoliv však tato
vlastnost bude rozhodně snižovat TCO pro současná pracoviště využívající DB2,
není to jednoduše dostatečný argument pro přechod k nové platformě u zákazníků,
kteří dnes sázejí na konkurenci. Obdobné je to i u bezpočtu dalších vlastností,
sahajících od vylepšení XML dotazování až po zdokonalení v oblasti obnovy po
havárii jsou přesvědčivé, ale nikoliv revoluční. Všeho všudy jde o vynikající
novou verzi pro současné zákazníky využívající DB2, ale na vysoce konkurenčním
trhu relačních databází vyžaduje získání nových konvertitů více. Nové možnosti
DB2 rozhodně předvádějí technické know-how inženýrů IBM v nejlepším světle a
mohou připravit půdu pro něco, co teprve přijde, ale prozatím asi mnohé z
uvedených funkcí svou skutečnou hodnotou ještě odvětví neosloví. Možná teprve v
průběhu několika příštích verzí, které IBM a jeho zákazníci začnou na těchto
technologiích budovat a v nichž budou realizovat věci, které nikdo jiný
nedokáže, se skutečně projeví přínosy vize DB2 v plné míře.(wep) 6 1326
IBM DB2 9.1 "Viper"
Databázové systémy
DB2 9.1 představuje novou verzi databáze společnosti IBM s průlomovými funkcemi
a hybridním enginem, který nabízí nativní podporu pro zpracování a ukládání XML
i relačních dat. DB2 dále přináší možnosti komprese na úrovni řádků, vysokou
škálovatelnost a vylepšenou kontrolu přístupu. Nástroj Development Workbench
navíc umožňuje snadnou tvorbu XQuery výrazů. DB2 9.1 představuje novou verzi
databáze společnosti IBM s průlomovými funkcemi a hybridním enginem, který
nabízí nativní podporu pro zpracování a ukládání XML i relačních dat. DB2 dále
přináší možnosti komprese na úrovni řádků, vysokou škálovatelnost a vylepšenou
kontrolu přístupu. Nástroj Development Workbench navíc umožňuje snadnou tvorbu
XQuery výrazů.


IBM DB2 9.1 "Viper" podpora XML, podpora SQL i XQuery, škálovatelnost, komprese
na úrovni řádků, kontrola přístupu, nástroj Development Workbench
omezená využitelnost některých nových funkcí
Prodejce: IBM, www.ibm.cz
Cena (bez DPH)*: začíná na 165 dolarech na uživatele nebo 4 874 dolarech na
procesor včetně roční podpory a služeb
Platformy: Linux, Unix, Windows, z/OS
* Prodejce uvádí cenu pro ČR v dolarech.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.