Delfíni na vlnách: Datová virtualizace v praxi

I v tomto díle se budeme s Michalem Machatou věnovat datové virtualizaci. Připomeňme si, co datová virtualizace vlastně je.

Jakub Holubec: I v dnešním díle se budeme věnovat datové virtualizaci. Připomeňme, co to vlastně je.

Michal Machata: Datová virtualizace je virtuální vrstva nad firemními daty, která virtuálně konsoliduje data a poté poskytujete data uživatelům či aplikacím pomocí jednoho přístupového bodu. Na vstupu jsou data v různých formátech a na výstupu jsou v jednotném formátu.

Jakub Holubec: Je to tedy aplikace, která překryje mnoho různých datových zdrojů, databází, API a další. Vůči uživatelům a aplikacím se tváří jako jedna databáze?

Michal Machata: Ano, je to tak. Takto jsme to vysvětlovali, aby to bylo trochu jasnější.

Jakub Holubec: Pojďme se vrhnout na nějaké use casy. První use case, který bych dnes probral je Self-service analýza. Zkus shrnout, co to je?

Michal Machata: Self-service analýza je analýza dat pomocí vlastních schopností. Vysvětlím to na příkladu. Máme ve firmě uživatele, kteří pracují s daty a chtějí data využívat k různým účelům. Chtějí dělat analýzu klientů, analýzu byznysu a analýzu financí. Dříve to fungovalo tak, že bylo jedno oddělení, většinou to spadalo pod IT, kterému se dalo zadání. To oddělení si udělalo byznys analýzu, poté připravilo data a následně z nich vytvořilo nějaké výstupy, reporty, vizualizace. Tyto vizualizace poskytlo uživatelům, kteří si požadavek podali.

Self-service analýza je trochu jiná. Spoléhá se na to, že uživatelé už jsou zkušenější, mají schopnosti a dokážou si s daty pracovat sami, což je Self-service analýza. Mám tedy uživatele, který si dokáže analýzu dat provádět sám.

Jakub Holubec: Jak datová virtualizace pomůže Self-service?

Michal Machata: Minule jsme zmiňovali, že obrovský benefit například pro AI je, že dokážu data systému, nebo uživatelům, poskytnout jednotnou formou na jednom místě. To je velmi důležité. Uživatel se nezajímá o to, kde jsou data uložena, jestli jsou v Cloudu, nebo jsou v serverovně. Nezajímá ho, v jakém formátu jsou, zda to je relační databáze, XML soubor, Excelový soubor a dále. Nezajímá se o další technické věci, které mu nepřísluší. Podívá se na jedno místo, kde má data připravená v jednotné formě, to jsou tabulky, a dokáže si pomocí SQL jazyku data analyzovat.

Jakub Holubec: Problém nastává ve chvíli, kdy uživatel potřebuje zpracovat data z více míst. Dokud si dělá Self-service analýzu jen nad datovým skladem, s tím většinou uživatelé problém nemají, ale jakmile si data musí dotáhnout, to už začíná být komplikované.

Michal Machata: Ono to není jen o technické stránce poskytnutí dat. Pro uživatele je důležité vědět, jaká data tam jsou k dispozici. Většina virtualizačních platforem poskytuje i datový slovník, který je součástí virtualizačních platforem.

Datový slovník je jedna ze součástí Data governance a je pro koncové uživatele velmi důležitá. V datovém slovníku hledají ta data, která potřebují. Zjednodušeně, mají vyhledávač dat a pomocí klíčových slov se dívají, jestli jsou data k dispozici nebo nejsou. Takže datový slovník je opravdu velmi důležitý pro Self-service. V případě virtualizačních platforem je datový slovník součástí. Analytik přijde a jeho první krok je, že se na data začne doptávat. Podívá se, jestli tam jsou a v ideálním případě mu datový slovník vrátí, že data jsou. Vyjede mu množství objektů, v kterých se data nacházejí. Data jsou popsána, dokáže tedy pomocí kritérií vyfiltrovat přesná data, která potřebuje. Pak už se například dotazuje SQL jazykem na konkrétní data.

Virtualizační platformy umožňují uživateli data prohlížet, což je taky velmi důležité. Ukazují mu náhled dat. Jedna věc je, data správně popsat, mít je popsaná pomocí kategorií, byznys slovníků a dále. Druhá věc je, co každý analytik udělá, že se na data podívá. Pokud mu platforma nabídne řádkově omezený pohled na data a on si dokáže pod těmi pojmy data rovnou zobrazit a představit, je to další krok k úspěchu analýzy.

Jakub Holubec: Když někdo dělá self-service analýzu a chce k tomu připojit externí data, ve většině případů jsou externí data v Excelu. Jak se s Excely vypořádává virtualizační vrstva?

Michal Machata: Pro virtualizační nástroje je Excel jeden z hlavních zdrojů. Spousta dat po firmě je uloženo v Excelech. Samozřejmě s tímto umí pracovat. Uvedl bych to do extrému. Dnes máme Excel a Excel. Máme Excel jako soubor, který leží na file systému a máme Excel, který je uložený v Office 365 a dá se k nim přistupovat přes Cloudový Excel. To je jiná liga. Virtualizační platformy umí pracovat s oběma, takže není to problém.

Jakub Holubec: Může si pro takový Excel zpracovat i ze Sharepointu?

Michal Machata: Ano, máme to vyzkoušeno. Máme plánovací Excel v Sharepointu a máme na něj napojený virtualizační nástroj přímo na Excel. Na druhé straně existuje normální relační tabulka. Testovali jsme, že když se udělá změna v plánovacím Excelu, změna se po určité chvíli uloží na Sharepointu. Excel v Sharepointu má nějaký mechanismus uložení. Každých 5 vteřin uloží nově zadané hodnoty a v ten okamžik virtualizační platforma na konci ukazuje reálná data, která jsou v Excelu. Funguje to tedy velmi rychle. Nikoho nenavádím, aby si dělal plánování v Excelu na Sharepointu, ale jde to udělat. Propuštění dat k cílovému uživateli je velmi rychlé.

Jakub Holubec: Když jsme se bavili o Self-service, pobavme se o konceptu Data mesh, který Self-service posouvá do jiné roviny. Počítá s tím, že uživatelé sami dělají datovou analytiku, ale zároveň si jednotlivé divize nebo jakkoliv tomu budeme říkat, spravují svá vlastní datová řešení. To řešení je úplně decentralizované. Jakým způsobem se v tomto případě dá využít virtualizace? K čemu tady může sloužit?

Michal Machata: Rozdělil bych to do dvou věcí. Zjednodušeně Data mesh je koncept decentralizace dat. Každá data si spravuje tým, který jim rozumí. My jim říkáme datové domény. Na to navazuje druhý koncept, a to je Data market. Každý, kdo rozumí jednotlivým datům, si data spravuje, opečovává a pak data dál virtuálně prodává do firmy. Data prodává právě v Data marketu.

Datová virtualizace je pro tento účel geniální, protože datové virtualizaci je jedno, kde data leží. Mohou být umístěna na serveru v serverovně, na Cloudu anebo v Brně. Je to úplně jedno. Z pohledu koncového uživatele se data dají seskupit do logických modelů. Zatím jsme se bavili o logické vrstvě, kde jsme se bavili pouze o tabulkách, ale samozřejmě data se dají seskupit do logických modelů. Jednotlivé tabulky se dají pospojovat a tvoří byznys model, a ten se dá poskytnout dál uživatelům, ale nejen to.  Dokážeme potom data rozdělit do koncových služeb, do balíčků, které poskytujeme koncovým uživatelům přesně, jak ty říkáš, jako službu.

Může to mít různé formy. Když se podíváme na nejlepší formu, která by to měla být, je to předpřipravený byznys model spojený do relačních tabulek, do dimenzionálního modelu, kde každý dokáže s modelem pracovat, dokáže na to napojit BI nástroj a dokáže s těmi daty pracovat. Data market je trochu jiný koncept. Dokáže poskytovat data pomocí různých forem. Může to být od relačních dat v tabulkách, může to být předpřipravený report, může to být vytrénovaný ML model, může to být kus kódu. V Data marketu můžeme prodávat co chceme. Pokud bude uživatel, který si to koupí, tak proč ne. Takže toto je Data market.

Virtualizační platforma dokáže data načíst odkudkoliv, dokáže je přetvořit do výstupu a pak ho dokáže přesně uživatelům poskytnout. Můžeme je prodat.

Možná to vyznělo tak, že virtualizační platformy dokážou poskytovat pouze relační tabulky, to není pravda. Na výstupu může být například API, můžu nad těmi tabulkami vystavit REST API a virtualizační platforma může sloužit i jako zdroj pro nějaké aplikace.

Jakub Holubec: REST API musím kódovat nebo to je nativní vlastnost virtualizačních funkcí?

Michal Machata: Nemůžu mluvit za všechny virtualizační platformy, všechny neznám do detailu. Kdybych měl zmínit jednu, kterou používáme my, tedy Denodo, tam je vystavení REST API na dva kliky. Vyberu si tabulku, kliknu a ono mi to vytvoří API nativně bez toho, aniž bych napsal čárku kódu.

Jakub Holubec: Princip využití v Data meshi je tedy takový, že když mám jeden tribe, který si bude vyvíjet své řešení na Databricks, druhý ho bude dělat na Fabricu, třetí si ho udělá na Cloudeře a vždy svoji část dat pokryje virtuální vrstvou, když někdo bude chtít k datům přistupovat, oni mu dají práva k virtuálním objektům? A ještě případně vystaví API nad jednotlivými částmi?

Michal Machata: Ano. Jedna věc, kterou si tady do teď nezmínil, ale kterou bych chtěl zmínit a zároveň věc, která s tím velmi souvisí, je bezpečnost dat. Souvisí to opět s Data marketem. Souvisí to se vším, s celým konceptem datové virtualizace. Samozřejmě máme virtualizační vrstvu, pomocí které poskytujeme data, ale to není všechno. Musíme samozřejmě data zabezpečit. Nemůžeme mít univerzálního uživatele, který má přístup ke všem datům, takhle to nefunguje.

Virtualizační platformy poskytují komfort, umožňují securitu udržet na jednom místě, centralizovat securitu do jednoho bodu. To je jednodušší, než když máme datové zdroje rozprostřené po celé firmě. Máme mnoho různých analytiků, mnoho různých analytických oddělení a musíme řešit pro každý zdroj securitu zvlášť. V případě využití datové virtualizace nastavujeme k datům přístup přes jeden nástroj na jednom místě, a to je z mého pohledu přehlednější a jednodušší. Nemusím řešit securitu pro každý systém zvlášť nebo pro každý soubor zvlášť. Mám pro to jednu platformu, kterou nastavím pro uživatele nebo uživatelské skupiny. Většinou na to můžu napojit Active Directory. I přes skupiny můžu nastavovat práva pro různé byznysové modely, pro jednotlivé tabulky a pro API.

Jakub Holubec: Můžu tam řešit i řádkovou securitu?

Michal Machata: Ano, můžu řešit řádkovou securitu, můžu řešit objektovou securitu, můžu řešit dokonce sloupcovou securitu, můžu určitým uživatelům schovat informace o mzdách, které jsou nevhodně umístěny například v dimenzi zaměstnanců. Poskytnu mu informace o zaměstnancích, ale pro určité osoby řeknu, ne, nemáte přístup na sloupeček o mzdě. Dále můžeme data maskovat. Můžu tam data nechat, ale pokud jsou kritická, nebo jsou v kategorii dat, například GDPR, nechceme koncovým uživatelům data zobrazit anebo chceme data zobrazit pouze konkrétní skupině uživatelů, nemusím úplně zakázat přístup ke sloupci, ale můžu například data zamaskovat. Číslo kreditní karty, rodné číslo, číslo bankovního účtu a další. Možnost řešení security je tady velmi rozsáhlá.

Jakub Holubec: My jsme se bavili o techničtějších use casech, pro migraci do Cloudu, tedy pro Data mesh. Zkusme říct pár byznysových use casů, k čemu by se virtualizace dala použít?

Michal Machata: Mějme firmu, která něco prodává. Pro firmu jsou klíčoví zákazníci. Nejdůležitější je si zákazníka udržet, pokud už ho mám. Chci, aby zákazník byl spokojený a pak chci dále rozvíjet byznys, rozvíjet ho horizontálně i vertikálně, abych měl nové zákazníky a ti si kupovali můj produkt.

Analytici, analytická oddělení nebo obchodní oddělení, která se o zákazníky starají, musí vyhodnocovat právě vstupy od zákazníků, ať už je to zpětná vazba na nákupy, jejich situace nebo další.

Problém je, že zákazníci komunikují s firmou na mnoha kanálech. Ať už je to e-shop, nebo je to formulář zpětné vazby, telefon, kniha stížností a přání a další kanály, analytik samozřejmě musí data vzít, zase je spojit dohromady a pracovat s nimi jako s celkem. Musí mít na zákazníka celkový pohled, říkáme tomu pohled 360, musí toho zákazníka vidět od ponožek až k čepici.

Nastává tam technický problém, protože data jsou rozdistribuována, po firmě v různých aplikacích. Například ERP aplikace, datový sklad a jiné.

Virtualizační platforma toto opět řeší. Získá data ze všech datových zdrojů a poskytne obchodnímu oddělení data na jednom místě. On si data může různě pospojovat, udělat nad nimi analýzy a celkově vyhodnotit data tak, jak potřebuje, a to v reálném čase. Například, když se stane nějaký obchod, on už je schopen analyzovat v průběhu minut data a reagovat na to.

Jakub Holubec: Původní přístup byl takový, že jsem si vytvořil real-time ODS, kam jsem dal dohromady data ze všech zdrojů, která jsem o zákaznících měl v reálném čase. Virtualizace znamená, že toto můžu přeskočit a udělat to udělat virtuálně?

Michal Machata: Ano.

Jakub Holubec: Jak to funguje technicky? Jak to funguje, když si takovou virtualizační aplikaci koupím? Co je další krok? Co musím udělat, aby to z ničeho nic fungovalo jako virtuální vrstva?

Michal Machata: Vezmu to trochu obecněji. Pokud si koupím licenci, musím to zprovoznit, nainstalovat. Jsou varianty virtualizačních toolů, které jsou na Cloudu jako SaaS, jakmile si to koupím, pravděpodobně to začne fungovat automaticky. Jsou varianty, které se musí nainstalovat. Rozhodnu se, jestli to nainstaluji na On-premise nebo to nainstaluji na Cloud. Musím pro to mít připravený nějaký server.

Nainstaluji aplikaci, trochu to nastavím a v momentě, jakmile je to nastavené, může to začít fungovat. To je celé.

Jakub Holubec: Řekněme, že si k tomu chci připojit Data lake. Jaké budou kroky?

Michal Machata: Samozřejmě o tom, že musí existovat konektivita mezi serverem, kde to běží a Data lakem, to je jasná věc. Musí tam být nějaký datový prostup, poté jdu do aplikace a jako “administrátor“ aplikace nastavím datový konektor. Vyberu si jeden z datových konektorů, který splňuje možnost připojení Data laku. Máme více Data laků, ale většinu bychom měli pokrýt. Připravím si credentials (bezpečnostní informace, které potřebuji k připojení), zadám je do systému a mám hotový konektor, který otestuji. Dokážu se připojit, dokážu na Data lake vidět.

Další věc je, že si vytvářím virtuální views. Podívám se na obsah Data laku a už si vyberu objekty, se kterými chci dále pracovat. Řekněme tomu, že to jsou soubory. Vyberu si jeden soubor, z toho vytvořím view a v ten moment se mi view zobrazí ve virtualizačním nástroji a můžu přes view k datům přistupovat.

Stále je to hodně podobné surovému pohledu na data. Už to sice vidím jako relační tabulku, ale ještě s tím můžu dál pracovat. Můžu nad tím postavit další vrstvu, další view, které už bude sloužit pro cílové uživatele a view už pojmenuji tak, jak potřebuji, nebude se jmenovat BX 376, ale bude se například jmenovat customer a sloupec 1 2 3 4 se bude jmenovat customer ID, customer name a dále.

View upravím a připravím ho pro uživatele. Pořád si ale hraji v aplikaci, takže to není vůbec těžké. Nemusím umět kódovat. V podstatě click and go, kliknu přejmenuji a je hotovo. Kdybych k tomu chtěl přidat nějaká vlastní data, nějaké výpočty, kalkulovaná pole, i toto mi to umožňuje. Přidám tam pole, které na tom zdroji nejsou, dám tam vzoreček a ten vzoreček mi vypočítá například aktuální věk uživatele. Tím, že to není uloženo, jsou to virtuální data, je to real-time pohled, view bude stále aktuální. Vždy, když se dotážu, ukáže mi to aktuální věk uživatele. Na rozdíl od toho, kdybych si to uložil do tabulky, například do ODS, tam bych to musel updatovat. Tady nemusím, tady si to dokážu spočítat rovnou.

Jakub Holubec: Co když si namapuji jednu tabulku z datového skladu, druhou tabulku z Data laku a napíšu jednoduchý select, který mi tyto tabulky propojí dohromady, protože potřebuji propojovat data ze dvou různých datových zdrojů? Předpokládám, že k propojení dojde na úrovni virtualizační platformy, na úrovni toho aplikačního serveru. Jak je to s výkonností? Samozřejmě to může narazit na to, že když budu propojovat sto milionů záznamů na milión záznamů, to už může být celkem zajímavé.

Michal Machata: Zjednoduším to, protože toto je téma na další podcast. Virtualizační platforma pracuje s metadaty. Schovává metadata ze zdrojů a sama si dělá statistiky. Je to opravdu chytré. Je to, jako kdybychom měli relační databázi. Efektivnost dotazů závisí na statistikách spočítaných v databázi.

Virtualizační tool dělá to samé. Ví, jaká tam jsou data, jaký je objem dat. Vždy, než se provede dotaz do zdrojové databáze, snaží se upravit dotaz, snaží se optimalizovat, co nejlépe to jde. Řekněme, že máme tři zdrojové systémy, jeden je master data management, který se stará o číselníky, druhý obsahuje faktorová data, tabulka, miliarda záznamů a třetí je datový sklad, ze kterého používám dimenzi kalendář. Napíšu JOIN ze třech tabulek, jak říkáš, že bys na to šel hrubou metodou, kde by se nakopírovala všechna data do paměti virtualizačního toolu. Tam by se pospojovala, odfiltrovala a pak by se poskytl výsledek. To je samozřejmě neefektivní z několika důvodů.

Virtualizační tool zjistí, že tady mám číselník a ten dotaz odpovídá tomu, že mi to z toho číselníku vrátí tři hodnoty. Tady mám kalendář, který ale používá pouze například ID toho roku, ale ID toho roku už máme ve zdrojové databázi, ve faktové tabulce. Kalendář vůbec nepotřebuji, on tedy vyhodí to, co nepotřebuje. To, čeho je málo, si vytáhne k sobě a upraví dotaz do největších dat tak, že například odfiltruje ID z jedné tabulky. Fyzický dotaz se provádí už na největším objemu dat. Provádí se na zdroji, data se odfiltrují a například z miliardy řádků jich je nakonec pouze 20 000. Zároveň, dotaz ví, že místo se 150 sloupci, pracuje pouze se 3, takže to zase zmenší horizontálně i vertikálně a vrací výslednou množinu dat, která je mnohem menší, než byl výsledný dotaz a než brute force spojování dat, který si pojmenoval.

Jakub Holubec: Bavili jsme se o tom, že virtualizační nástroje jsou externí software, který je potřeba koupit, co je na trhu k dispozici? Můžeš uvést nějaké příklady?

Michal Machata: Nástrojů je překvapivě hodně, ale v top pěti je Data Virtuality, Escale, Dremio, Tibco data virtuality a Denodo. Když se koukneme na Gartner, datovou virtualizaci znají velmi dobře, lídr v těchto technologiích jsou právě tyto zmíněné. Úplně největší lídr je Denodo.

Jakub Holubec: Je možné říct, jaká je investice do takového nástroje? Je jasné, že se to bude velmi lišit rozsahem, ale kde se dá začít? Jaká je nejmenší investice, s jakou to má smysl provozovat?

Michal Machata: Správný člověk by se neměl ptát, kolik to bude stát, ale kdy se mu investice vrátí. Není to levné. Každý z nástrojů pracuje na jiné filozofii, jiné strategii licencování. Zmíním jednu nejběžnější, kde se to licencuje na počtu procesorů, na kterých platforma běží. Pak to máme rozděleno na určité možnosti, co ta platforma poskytuje. Je to rozděleno do standardního řešení, Advance řešení, Enterprise a Enterprise Plus.

Samozřejmě každá firma si musí říct, co z toho potřebuje a zvolí vhodnou variantu, která něco stojí.

Například Enterprise Plus, což je nejrozšířenější varianta u virtuální aplikace Denodo stojí okolo $70 000 za rok za procesor. Je jedno jestli to běží v Cloudu nebo na on-premise, ale je důležité říct, že virtuální platforma se snaží dělat výkonnostní věci na svém serveru co nejméně. Distribuuje úkoly na zdrojové systémy. Nepotřebujeme proto hardware, který má 16 CPU a miliardu terabajtů ramky. Základní standardní doporučení pro produkční prostředí od Denoda jsou 4 CPU. To je doporučení, u menších implementací bych se nebál jít ještě níž.

Takže když se na to podíváme, spočítáme si 2 až 4 CPU krát $70 000 ročně. Pokud si to koupíte na delší dobu, můžete to mít levnější.

Jakub Holubec: To byla nejdražší licence Enterprise Plus, u levnější se člověk dostane zhruba kam? Dostane se například na půlku ceny Enterprise Plus?

Michal Machata: Zhruba na půlku. Kdo by si to chtěl vyzkoušet, všechny firmy poskytují buď nějaký trial nebo free verzi, které jsou velmi ořezané. Člověk si to jen vyzkouší nad relační tabulku, aby věděl, jak to funguje a podívá se, jestli mu to vyhovuje. Do produkčního prostředí to samozřejmě vhodné není, ale je to škálovatelné, aby se to dalo nasadit i v menších firmách.

Jakub Holubec: Kam si myslíš, že se virtualizace bude v příštích několika letech posouvat? Kam to půjde?

Michal Machata: Myslím si, že datová virtualizace už je teď dost rozvinutá a překvapuje mě, že ji spousta firem nepoužívá, má to samé výhody, obzvlášť s příchodem Data meshe, to byl velký boom, všichni ho chtěli implementovat. Platforma je pro to stavěná, pro rychlou implementaci Data mesh nebo Data fabric.

Jak se to bude dál rozvíjet, samozřejmě budou vznikat dál datové zdroje, bude se dál rozvíjet napojení na nové datové zdroje. Co si myslím, že je velký problém je napojení na konkrétní služby Cloudu. Občas je velmi složité, získat z nějakých Cloudových služeb analytické informace, známe LinkedIn, Google Ads a takové věci. Myslím si, že rozvíjení konektoru pro tyto služby bude jeden směr, kterým se to bude dál rozvíjet. Analytika nad svými Cloudovými firemními profily bude velmi jednoduchá.

Další směr, kterým si myslím, že by se to mělo a bude rozvíjet je Data governance. Bavili jsme se o datových slovnících, což je jedna z částí, která spadá pod Data governance, ale není to rozhodně jako Data governance. V tomto směru se to bude dál rozšiřovat a virtualizační platforma potom bude vnímána nejen jako virtualizační platforma, ale i platforma, která poskytuje kompletní Data governance.

Jakub Holubec: Takže popisy dat, dokumentace k datům, uživatelská i technická?

Michal Machata: Ano. My jsme to nezmiňovali, ale Data katalog v datové virtualizaci poskytuje i formu Data lineage, ale jen v rámci svojí vlastní platformy. Uživateli řekne, že tato tabulka jde přes tyto virtuální vrstvy až k těmto zdrojovým datům. Bylo by fajn, kdybychom tam dokázali oskenovat i zdroje a měli jednotnou vrstvu Data governance s kompletní Data lineage, která jde až úplně do nejspodnějších vrstev dat, které jsou k dispozici.

DALŠÍ PODCASTY SI MŮŽETE POSLECHNOUT ZDE!

Mohlo by vás zajímat

Číst další

Chcete nás kontaktovat?

Drop files here or
Max. file size: 2 MB.