Konference Prague PostgreSQL Developers' Day, zkráceně P2D2, poprvé proběhla v roce 2008, letos se konala stejně jako minulý rok pod záštitou občanského sdružení CSPUG (Czech and Slovak PostgreSQL User Group).
Jako již obvykle se do programu kromě zajímavých českých přednášek dostaly i dvě anglické od zahraničních hostů, tentokrát ze Švédska a Velké Británie. Akce se letos zúčastnilo celkem asi sto dvacet lidí, z čehož asi dvacítka patřila k realizačnímu týmu, přednášejícím a sponzorům, což dává ve výsledku okolo stovky běžných návštěvníků. Oproti minulému ročníku, na který přišel srovnatelný počet lidí, se ale výrazně zrychlilo rozebrání míst. Na akci je povinná registrace a loni dle slov organizátora Tomáše Vondry trvalo zaplnění všech míst asi tři týdny, letos jen jeden. Je tedy vidět, že zájem o akci stoupá.
U vstupu dostali návštěvníci tašku s logem PostgreSQL, ve které byl mj. hrnek. Každý host dostal visačku s programem, na které měl kromě jména i QR kód se svou vizitkou. Programu na visačce bych vytkl snad jedině absenci jmen přednášejících.
Návštěvníci dostali na památku hrnek s logem PostgreSQL a visačku s QR vizitkou a programem
Podobně jako v minulých letech začal P2D2 v osm hodin raním workshopem o optimalizaci, ale registrace byla raději zařazena až za něj, tedy na devátou hodinu. Po registraci Tomáš Vondra přivítal návštěvníky a první zahraniční host mohl začít přednášet.
Tuto reportáž napsali dva autoři: Tomáš Crhonek a Miroslav Hrončok. Pro rozlišení autora textu jsou v úvodu každého bloku o přednášce uvedeny iniciály autora. Úvodní text napsal Miroslav Hrončok. Autorem fotografií je Tomáš Crhonek. LinuxEXPRES je mediálním partnerem P2D2.
Simon Riggs: Future of PostgreSQL (keynote)
TC V první přednášce dne (nepočítáme-li ranní workshop Pavla Stěhuleho) nás Simon Riggs informoval o plánech dalšího vývoje PostgreSQL a také novinkách v nejbližší verzi 9.2, která by dle plánu měla být ve stavu beta verze někdy v dubnu tohoto roku.
Přestože tohle má být reportáž a nikoliv recenze produktu, dovolte mi alespoň seznam některých novinek plánovaných pro PostgreSQL 9.2: index only scan (data jsou vrácena z indexu, není třeba další seek do datových souborů, což by mělo vést k významnému zrychlení v případě některých dotazů); podpora formátu JSON; nový typ rozsah (range); lepší podpora pro typ pole (array); podpora cizích klíčů pro pole; nový mód synchronní replikace; další typ indexu pro složité datové typy SP_GIST (který údajně okamžitě převzala také IBM do své DB2).
Dalšími významnými novinkami pro příští verze, se kterými nás Simon ve své nabité přednášce seznámil, jsou: podpora multi master replikace; podpora replikovaných databázových clusterů; podpora pro vnořené transakce; autonomní transakce; podpora pro tabulky pouze pro čtení; materializované pohledy; podpora více dialektů jazyka SQL. PostgreSQL se také snaží držet krok s NoSQL světem, typ HStore (pro hodnoty typu klíč, hodnota a operace s nimi) bude zabudován přímo do Postgresu (dnes se jedná o rozšíření), dále optimalizace pro velmi jednoduché dotazy (PostgreSQL dnes exceluje ve složitých dotazech, má k tomu vynikající optimalizátor, který ovšem znamená netriviální režii pro dotazy jednoduché). Pro další vývoj jsou naplánovány další optimalizace, méně zamykání, omezení kynutí systémových tabulek, automatická reindexace tabulek (další krok po autovacuum a analyze).
PostgreSQL 9.2 má také přinést výrazně lepší škálování na víceprocesorových systémech (více než trojnásobný nárůst výkonu na 32 procesorech, oproti verzi 9.1). Simon také zdůraznil rychlost vývoje Postgresu. V každé další verzi je více změn než v předchozích, daří se také nové verze rychleji dostávat do enterprise distribucí jako RHEL.
Celkově má být 9.2 daleko rychlejší než současná verze, což ostatně platí pro každou novou verzi Postgresu, a přináší skvělé nové vlastnosti. Jako pokaždé se máme na co těšit.
Za zmínku stojí zmínit fakt, že se nejednalo o oficiální roadmapu projektu, ale pouze o osobní vizi budoucnosti jednoho z vývojářů. Je tedy pravděpodobné, že to tak bude, ale jisté to rozhodně není.
Petr Kopecký: Nasazení PostgreSQL v praxi
TC Druhá přednáška dne přinesla náhled do komerčního prostředí, zakázkového vývoje a dalšího zajímavého nasazení PostgreSQL. Společnost LinuxBox (které je také sponzorem konference) vyvíjí systém pro monitoring a řízení hardwarových GSM modulů a mimo jiné také software pro VOIP telefonii Asterisk.
Petr zprvu vysvětlil, proč používají jazyk Python. Důvodem je snadné naučení jazyka novými programátory, bohatý výběr knihoven a také snadné použití ve spojení s PostgreSQL nejen jako úložiště dat, ale také (a zejména) možnost psaní uložených procedur pro Postgres právě v jazyku Python.
Dále zdůraznil výhody ukládání všech dat do databáze, tedy nejen strukturovaných dat, ale dat binárních (binární dump přímo z nějakého hardwarového modulu), která se obvykle ukládají na systém souborů, což s sebou přináší spoustu komplikací. Jednou z nich, kterou Petr Kopecký uvedl, jsou potíže s distribucí na další uzly clusteru (je zbytečné udržovat clusterový systém souborů a vedle toho ještě databázi, když vše snadno může být přímo v databázi). Posluchače také seznámil s vhodnými datovými typy a možnostmi zpracování těchto dat.
Zajímavé je celkové pojetí, jakým Postgres používají (podobné nasazení popsal i v loňské přednášce Marc Balmer). Na místo „klasického“ třívrstvého modelu databáze – aplikační server – klient v LinuxBoxu spojili databázi a aplikační server do jedné vrstvy a celou tuto činnost obstarává PostgreSQL pomocí uložených procedur, modulů v Pythonu a asynchronního předávání zpráv (LISTEN/NOTIFY). K databázi se tak připojuje velké množství klientů, kteří tak mohou vzájemně komunikovat a lze jim centrálně předávat příkazy. V tomto případě šli ještě dál a tohoto mechanismu využili i pro změnu konfigurace jednotlivých klientů. Postgres a jeho protokol tak plně nahrazuje komunikační sběrnici a není třeba implementovat protokol další.
PostgreSQL se tak, krom skvělého databázového serveru, postupně mění na aplikační platformu, kde lze dělat původně netušené věci a komerčním firmám přináší značnou úsporu nákladů při vývoji softwaru pro takto masivní nasazení a komunikaci jednotlivých částí systému.
Vratislav Beneš: Statistické modely a jazyk R v PostgreSQL
MH Jednou ze stále častěji používaných analýz dat je tzv. prediktivní analytika. Na základě dostatečného množství dat z minulosti se snažíme zjistit, jak se situace bude vyvíjet dále. Jako příklad může posloužit předpověď počasí, situace na burze, kurzy měn... Vratislav předvedl, že prediktivní analýzu můžeme dělat přímo v PostgreSQL databázi a nemusíme tak zatěžovat samotnou aplikaci. Hlavní výhodou tohoto řešení je fakt, že databázový server je jednoduše škálovatelný a vývojáři nemusí přizpůsobovat aplikaci novým požadavkům na výkon.
Vratislav nejdříve předvedl základní statistické příkazy v jazyce SQL. Jsou to například příkazy na průměr, odchylku, trendy... Dále byly předvedeny Window funkce, které umožňují ušetřit přebytečné JOINy, jako příklad bylo předvedeno zjištění klouzavého průměru.
Vratislav Beneš a Tomáš Vondra
V další části Vratislav představil projekt R, což je open-source implementace statistického jazyka S. Více se o něm můžete dočíst v samostatném článku. Ukázal nám, jak předvídat vývoj dnešní teploty na základě předchozích dat, které získal z meteorologické stanice v pražském Suchdole. Nakonec předvedl také GUI nadstavbu nad R, program RKWard.
V úplném závěru se Vratislav dostal k tomu nejdůležitějšímu, tedy k propojení projektu R s databází PostgreSQL. K tomu je určen procedurální jazyk plr. Podobně jako ve zbytku přednášky, i zde následoval praktický příklad.
Vratislav Beneš nám přislíbil na toto téma článek, takže se můžete těšit na podrobnější návod.
A to je z dopoledne vše. Po přednášce o statistice následoval oběd, který proběhl formou rautu. Na odpolední přednášky se podíváme v pondělí.