V předchozích článcích jsem ukazoval, jak jednoduché je v Keboole založit svoje první data flow a podrobněji jsme se podívali na páteřní prvky Flow což jsou Keboola komponenty a jejich nastavení. Jestliže páteřními prvky každého flow jsou komponenty, tak jedním z hlediska celé architektury je klíčová Keboola storage nebo-li úložiště souborů.
Kebola úložiště (Storage) – Úvod, limit u free účtu, tokeny
Keboola úložiště je klíčovým prvkem celého systému. Pokud v Keboole pustíme nějaké flow nebo jednotlivou komponentu, procesuje se vše přes storage (load souborů, uložení do tabulek apod). Keboola storage je rozdělena na 3 části:
- Tabulky/buckety
- Soubory
- Úložiště jobů (logy)
Limit úložiště na počet souborů není omezen, na celkovou velikost je ve Free verzi Kebooly omezení na 250 GB. To je pro projekty menšího rozsahu dostačující.
Pokud chceme na úrovni storage provádět nějakou akci uvnitř flow, je potřeba k této akci mít založený token, kterému nastavíme příslušná práva např. čtení v případě source komponenty nebo zápis do bucketu v případě destination komponenty. Tento token pak používáme v konfiguraci dané komponety.
Tabulky a buckety v Keboole a rozdíl mezi IN a OUT
Hned první skupinou a asi i tou nejdůležitější jsou tabulky a buckety. Buckety/tables jsou v Keboole zakládány na Snowflake backendu, takže náš projekt, který máme u Kebooly používá jako storage tabulek při loadech třetí stranu. To by mělo dle Keboola dokumentace ke storage zajistit rychlejší processing a větší škálovatelnost.
IN a OUT buckety v Keboole
Po kliknutí na Keboola úložiště se nám objeví stránka se všemi buckety, které máme založeny viz níže
Můžete si všimnout, že u každého bucketu je napsáno IN nebo OUT. Jde o interní značku, která slouží k tomu aby bylo vidět:
- která data slouží třeba jako vstup do nějaké transformace nebo jsou součástí nějaké loadovací komponenty v případě IN
- která data jsou výsledkem transformace nebo třeba finální tabulkou, kterou jsme naimpotovali v případě OUT
Buckety si můžeme označovat jak potřebujeme. V případě screenshotu výše jsou založeny 4 buckety typu IN protože mám 4 flow. V těchto IN bucketech jsou tabulky, které importujeme prostřednictvím source komponenty viz dále.
Keboola zpracování flow z hlediska storage a performance
Keboola si automaticky pro všechny source komponenty zakládá IN bucket a tabulky si před tím, než je pošle do destination komponenty, sem uloží.
Na screenshotu dole vidíme, že bucket AdventureWorks IN obsahuje několik tabulek, které jsou loadovány prostřednictvím source komponenty AdventureWorks_Sqlcentral a slouží jako mezivrstva pro zpracování daného flow jehož součástí je komponenta. Zároveň tato vrstva může posloužit jako auditní prvek např. při dohledávání nesrovnalosti v datech (je zde vidět poslední nahraná dávka).
Poznámka k performance: Tento způsob zpracování Flow bude výrazně pomalejší než poslat data z bodu A do bodu B napřímo třeba přes SSIS Kingswaysoft (který také nabízí řadu konektorů na různé systémy). Například v případě našeho flow SQL Server databáze – Google Drive kde máme pouze source-destination komponenty
- Přečteme data z SQL Server (source komponenta)
- Uložíme je do Snowflake table bucket IN (source komponenta)
- Načteme data ze Snowflake table bucket IN (destination komponenta)
- Uložíme data do Google drive (destination komponenta)
To bude generovat režijní náklady na běh jobů, které bysme si úplně nemuseli přát pokud bychom chtěli Keboolu používat pouze jako průtokový ohřívač (source-destination). Keboola však funguje jako Data platform as a service kde jsou součástí služby nejen konektory ale i databáze (váš snowflake) a storage jako taková. Používat jako Keboolu ve velkém měřítku jako průtokáč bez databáze/úložiště tedy bude generovat zvýšené režie, alespoň tedy ve Free verzi.
Náhled na detail tabulek
Detail tabulek se mi moc líbí a působí to na mě velmi přehledně. Na overview stránce máme nějaké základní informace o tabulce spolu se sample daty. Mohu si k tabulce a k jednotlivým sloupcům přidat Popis.
Dále zde vidím jaké se staly nad tabulkou události, můžu si prohlédnout sample data, poslední použití komponentami nebo si můžu třeba udělat snapshot tabulky.