Odpolední přednášky
Po obědě pokračoval program konference dalšími přednáškami.
PostgreSQL and Business Intelligence
„Business Intelligence“ (BI) patří mezi velmi frekventované pojmy poslední doby. Firmy shromažďují ohromná množství nejrůznějších dat a chtějí z nich těžit užitečné informace. Simon Riggs se věnoval jak optimalizaci využití PostgreSQL (v různých směrech – například ve smyslu optimalizace dotazů, eliminace zbytečné práce atd.), tak i novinkám, které se chystají pro PostgreSQL 9.4 a další verze.
Simon Riggs hovoří o využití PostgreSQL pro BI
Zvláště slibné jsou v tomto ohledu minmax indexy, které umožňují velmi rychlé prohledávání, ale zabírají jen velmi málo místa. Nevýhodou je, že dobře fungují jen pro některá rozložení dat, navíc způsobují velkou režii aktualizace dat (což ovšem nevadí u datových skladů, které se neaktualizují). Této i dalším technologiím pro BI se věnuje projekt AXLE.
Zjednodušení stromu dotazu
Přednáška Antonína Housky byla určena hlavně pro ty, kdo chtějí nahlížet pod kapotu databázového stroje – hodně si z ní ale mohli odnést i vývojáři, protože porozumění tomu, jak se s dotazy uvnitř pracuje, se může promítnout i do jejich optimální tvorby.
Přednáška o zjednodušování stromu dotazu
Optimizér PostgreSQL se snaží stromové dotazy (tedy takové, které obsahují poddotazy) upravit tak, aby je mohl začlenit do dotazu vyšší úrovně a pak optimalizovat jako celek. Takto lze upravovat například dotazy s klauzulemi ANY, EXISTS či NOT EXISTS, ze kterých se navíc předem odstraní vše, co nemá vliv na výsledek poddotazu (například DISTINCT nebo ORDER BY v poddotazu v EXISTS).
Ne vždy lze ale takovou úpravu provést a pak se musí každá úroveň optimalizovat samostatně. Týká se to například korelovaných dotazů či použití GROUP BY.
Postgres-XC
Někdo si možná vzpomene, jak Vratislav Beneš před třemi lety ve své přednášce na P2D2 2011 hovořil kromě jiného i o GridSQL. Tehdy to bylo řešení daných požadavků (paralelizace zpracování dat z datového skladu), tentokrát byla naopak řeč o tom, čím GridSQL nahradit. Touto náhradou se stala technologie Postgres-XC.
Jedná se o clusterové řešení, které umí zajistit jak práci nad stejnými daty (na všech uzlech jsou stejná data, využívá se replikace), a zvýšit tak dostupnost, tak i paralelní zpracování (data jsou distribuována napříč uzly, replikují se jen číselníky). Zde se jednalo o druhý případ, tedy o zpracování (ROLAP) dat distribuovaných na různé uzly.
Vratislav Beneš pohovořil o výhodách a nevýhodách různých přístupů k řešení clusterů, hlavně se ale věnoval samotnému Postgres-XC a volbě optimální distribuce dat. Jednou z klíčových výhod, díky kterým bylo toto řešení zvoleno, je téměř stoprocentní kompatibilita s klasickým PostgreSQL (aktuálně s verzí 9.1).
Čtyři miliardy nových řádek měsíčně
Firma vyvíjející antivirový software, který běží na stovkách milionů strojů, se logicky potýká s problémem zpracování ohromného množství dat, která vznikají při aktualizacích, odesílání podezřelých souborů apod. Jak potvrdil ve své přednášce Pavel Chocholouš, nelze data jen tak sypat na hromadu a doufat, že se z nich pak něco vytěží.
Jak si poradit se čtyřmi miliardami nových řádků měsíčně?
Naopak, je potřeba to celé zjednodušit a pokud možno neustále vylepšovat. Ve firmě Avast data dělí po měsících, využívají sharding a původní hvězdicovou strukturu databáze přepracovali na „sněhovou vločku“ (snowflake – víceúrovňové číselníky).
Každý měsíc se provádí agregace dat. Co se týká indexů, původně se nepoužívaly žádné, nyní se používají clusterované; jak to bude v budoucnu, se teprve uvidí – také v závislosti na tom, co se objeví v nových verzích PostgreSQL.
Lightning talks
Mnoho konferencí mívá jako svůj vrchol „lightning talks“, tedy blok krátkých, několikaminutových přednášek, k nimž se lze přihlašovat i během samotné konference. Tentokrát bylo těchto minipřednášek šest, pro každou byl vyhrazen (a nekompromisně vyžadován) sedmiminutový časový slot.
SQLdep
Martin Masařík představil projekt SQLdep, který umožňuje z kódu SQL dotazu získat vizualizovanou podobu závislostí v dotazu. Nástroj se hodí v případech, kdy někdo například „zdědí“ cizí kód a potřebuje se rychle zorientovat ve složitých databázových dotazech.
Martin Masařík při popisu SQLdep
Netezza
Hans Ginzel ve stručnosti popsal, co umí kompletní řešení Netezza, jehož hlavní softwarová komponenta je databázový systém odvozený od PostgreSQL (porovnání). Tam, kde je potřeba velký výpočetní výkon a velké úložiště, to vše v co nejmenším balení a s co nejmenšími starostmi, se taková „hračka“ docela hodí.
PostgreSQL ve Fedoře/RHEL
Že linuxové distribuce často obsahují software, který je oproti originální podobě trochu upraven/vylepšen, je samozřejmě známá věc. Jozef Mlich popsal, jak je to s PostgreSQL v distribucích Fedora a Red Hat Enterprise Linux. Mezi specifika patří například způsob konfigurace, který usnadňuje spouštění více instancí PostgreSQL (s různými úložišti, porty atd.).
mlich.jpg, Jozef Mlich se chystá na svůj lightning talk (všimněte si modrého míčku – kdo měl zájem, mohl si míček s logem PostgreSQL vzít jako další suvenýr)
CSPUG
Velmi stručné představení Czech and Slovak PostgreSQL Users Group (CSPUG; toto sdružení konferenci P2D2 pořádalo) v podání Tomáše Vondry. Hlavní myšlenka: komunitu dělají lidi. Čili kdo má zájem pomoci s podporou PostgreSQL v našich zemích (a současně využívat i plodů této podpory), může se přidat.
Debugování triggerů
Ladění triggerů bývá obecně docela problém. David Turoň však ukázal trik, kterým si to lze usnadnit. Výkonný kód se umístí do samostatné funkce a ta se v triggeru volá prostřednictvím PERFORM. Funkci lze pak ladit samostatně a v rámci triggeru přitom funguje, jako kdyby byl její kód přímo v triggeru.
Jako ve škole... (David Turoň)
Eval
David Kubečka hovořil o vyhodnocování SQL kódu pomocí nástroje General SQL Parser. Ten je schopen zpracovávat SQL kód pro PostgreSQL i jiné databázové systémy. Může kontrolovat syntaxi, analyzovat a vyhodnocovat kód, formátovat SQL apod.
Zhodnocení
Letošní ročník P2D2 byl pokračováním dobře zavedené tradice této konference z let minulých. Po organizační i obsahové stránce bylo v podstatě všechno na jedničku. Co se ale ukázalo jako problém (kromě doslova napěchovaného programu jediného dne), byla relativně malá kapacita. Na její naplnění stačil pouhý týden, zájemců bylo více, než se do posluchárny vešlo.
Proto by možná organizátoři měli zvážit přesun do většího sálu, případně rozdělení na více streamů, jakkoli je toto řešení nepříjemné pro ty, kdo by chtěli navštívit kolidující přednášky (na druhou stranu jich tak lze do stejného času umístit více; část by navíc mohla být praktičtěji zaměřená, mít podobu workshopů). V každém případě je současný stav důkazem zájmu jak o konferenci P2D2, tak o databázový systém PostgreSQL.