Kodėl verta rinktis atvirojo kodo BI sprendimus
Verslo analitikos įrankių rinka pastaruoju metu išgyvena tikrą revoliuciją. Jei dar prieš penkerius metus dominavo brangūs komerciniai sprendimai kaip Tableau ar Power BI, tai dabar atvirojo kodo alternatyvos tampa vis rimtesniais konkurentais. Apache Superset ir Metabase – du ryškiausi pavyzdžiai, kaip nemokamos technologijos gali prilygti ar net pranokti mokamus sprendimus.
Kas įdomiausia, šie įrankiai nebėra skirti tik techninėms komandos ar startup’ams su ribotuoju biudžetu. Juos naudoja tokios kompanijos kaip Airbnb, Netflix, Dropbox. Priežastis paprasta – jie veikia, yra lankstūs ir leidžia išvengti vendor lock-in situacijos, kai esi priklausomas nuo vieno tiekėjo.
Bet kuris iš šių dviejų įrankių geriau tinka būtent jūsų organizacijai? Tai ne tas klausimas, į kurį galima atsakyti vienu sakiniu. Reikia suprasti, kas slypi po gražiais dashboard’ais ir kokios yra realios galimybės bei apribojimai.
Apache Superset: kai reikia galios ir lankstumo
Apache Superset gimė Airbnb laboratorijose 2015 metais, o vėliau tapo Apache Software Foundation projektu. Tai jau sako daug apie įrankio brandą ir bendruomenės palaikymą. Superset sukurtas Python programavimo kalba ir naudoja Flask framework’ą, kas techniškai patyrusiai komandai suteikia nemažai privalumų.
Pirmasis dalykas, kuris krenta į akis – tai vizualizacijų įvairovė. Superset siūlo virš 40 skirtingų diagramų tipų, nuo paprastų stulpelinių iki sudėtingų geografinių žemėlapių su šilumos žemėlapiais. Galite kurti Sankey diagramas, sunburst charts, chord diagrams – viską, kas tik reikalinga sudėtingiems duomenų ryšiams vizualizuoti.
SQL Lab – tai Superset komponentas, kuris vertas atskiro straipsnio. Tai ne tik SQL užklausų rašymo įrankis, bet pilnavertė duomenų tyrinėjimo aplinka. Galite rašyti sudėtingas užklausas, matyti rezultatus realiuoju laiku, išsaugoti dažnai naudojamas užklausas, net kurti lenteles iš užklausų rezultatų. Techninėms komandoms tai – tikras lobis.
Dar vienas stiprus Superset bruožas – duomenų šaltinių palaikymas. Įrankis palaiko daugiau nei 30 skirtingų duomenų bazių ir duomenų saugyklų: nuo tradicinių PostgreSQL, MySQL iki modernių Snowflake, BigQuery, Redshift. Netgi galite prijungti NoSQL bazes kaip MongoDB ar Elasticsearch. Tai reiškia, kad nepriklausomai nuo jūsų technologinio stack’o, Superset greičiausiai sugebės prie jo prisijungti.
Tačiau visa ši galia ateina su tam tikra kaina – sudėtingumu. Superset nėra įrankis, kurį įdiegsite ir po penkių minučių pradėsite kurti dashboard’us. Reikia suprasti duomenų modelius, datasets koncepcijas, metrics ir dimensions. Techninis fonas čia tikrai padeda.
Metabase: paprastumas kaip filosofija
Metabase atsirado 2015 metais su visiškai kita filosofija – padaryti duomenų analizę prieinamą visiems, nepriklausomai nuo techninio išprusimo. Ir reikia pripažinti, kad jiems tai pavyko geriau nei daugeliui konkurentų.
Įrankio sąsaja iš tikrųjų intuityvi. Galite pradėti kurti ataskaitas naudodami vizualinį užklausų kūrėją (Query Builder), kuris nereikalauja jokių SQL žinių. Pasirinkite lentelę, nurodykite, kokius stulpelius norite matyti, pridėkite filtrus, grupavimus – ir viskas. Sistema automatiškai sugeneruoja SQL užklausą fone.
Bet nesupraskit klaidingai – Metabase nėra tik pradedantiesiems. Jei mokate SQL, galite rašyti bet kokio sudėtingumo užklausas. Įrankis turi puikų SQL redaktorių su syntax highlighting, automatiniais pasiūlymais ir užklausų istorija. Tai reiškia, kad Metabase auga kartu su jumis – pradedant nuo paprastų klausimų ir baigiant sudėtingomis analizėmis.
Vienas iš gražiausių Metabase bruožų – automatinės įžvalgos (X-rays). Pasirinkite bet kurią lentelę ir Metabase automatiškai sugeneruos keletą įdomių vizualizacijų ir statistikų. Tai puikus būdas pradėti tyrinėti naujus duomenis ar rasti netikėtų įžvalgų.
Metabase taip pat turi „Questions” koncepciją – tai išsaugotos užklausos, kurias galite pakartotinai naudoti, dalintis su kolegomis ar įtraukti į dashboard’us. Tai skamba paprastai, bet praktikoje labai patogu. Galite sukurti klausimų biblioteką, kurią visa komanda gali naudoti.
Duomenų šaltinių palaikymas Metabase taip pat geras, nors ne toks platus kaip Superset. Palaiko visas populiariausias bazes: PostgreSQL, MySQL, MongoDB, SQL Server, BigQuery, Snowflake ir kitas. Daugumai organizacijų to tikrai pakanka.
Našumo ir mastelio klausimai
Kai kalbame apie BI įrankius, našumas dažnai tampa kritiniu veiksniu. Niekas nenori laukti 30 sekundžių, kol užsikraus dashboard’as su vakarykščiais duomenimis.
Superset šioje srityje turi keletą įdomių sprendimų. Pirma, jis palaiko rezultatų cache’inimą keliuose lygiuose – duomenų bazės lygmenyje, aplikacijos lygmenyje ir net CDN lygmenyje. Galite nustatyti, kad tam tikros užklausos būtų cache’inamos valandą, dieną ar savaitę, priklausomai nuo duomenų atnaujinimo dažnumo.
Antra, Superset turi async užklausų vykdymą. Tai reiškia, kad ilgai trunkančios užklausos nevykdomos sinchroniškai – galite uždaryti naršyklę ir vėliau grįžti prie rezultatų. Tai ypač naudinga, kai dirbate su dideliais duomenų kiekiais.
Metabase irgi turi cache’inimo mechanizmus, bet jie šiek tiek paprastesni. Galite nustatyti cache’inimo laiką kiekvienam klausimui atskirai arba globaliai visai duomenų bazei. Tai veikia gerai daugumai atvejų, bet nesuteikia tokio smulkaus kontrolės kaip Superset.
Vienas dalykas, kurį Metabase daro geriau – tai duomenų modeliavimas. Galite sukurti „Models” – tai iš esmės išsaugotos užklausos, kurios veikia kaip virtualios lentelės. Vėliau galite kurti užklausas ant šių modelių, o ne tiesiogiai ant duomenų bazės lentelių. Tai ne tik pagerina našumą, bet ir supaprastina duomenų struktūrą galutiniams vartotojams.
Diegimas ir administravimas
Čia prasideda tikrasis skirtumas tarp šių dviejų įrankių. Superset diegimas nėra trivialus dalykas. Jums reikės:
– Python aplinkos (geriau naudoti virtualenv ar conda)
– Metaduomenų bazės (PostgreSQL ar MySQL produkcijai)
– Redis cache’inimui ir async užduotims
– Celery workers ilgai trunkančioms užklausoms
– Web serverio (Gunicorn, nginx)
Tai nėra „npm install ir go” situacija. Reikia suprasti, kaip konfigūruoti kiekvieną komponentą, kaip jie tarpusavyje bendrauja, kaip užtikrinti saugumą. Dokumentacija gera, bet vis tiek reikės skirti laiko ir turėti techninių žinių.
Metabase priešingai – galite tiesiog atsisiųsti JAR failą ir paleisti `java -jar metabase.jar`. Po kelių minučių turite veikiančią sistemą. Taip, produkcijai norėsite konfigūruoti atskirą duomenų bazę metaduomenims (vietoj įtaisytosios H2), bet net ir tai paprasta.
Docker konteineriai egzistuoja abiems įrankiams ir tai greičiausiai geriausias būdas juos diegti produkcijai. Tačiau net ir čia Metabase paprastesnis – vienas konteineris ir viskas veikia. Superset reikės kelių konteinerių (web, worker, redis, db) ir docker-compose konfigūracijos.
Atnaujinimai – dar viena skausminga tema. Superset atnaujinimai kartais reikalauja duomenų bazės migracijos, konfigūracijos failų pakeitimų, priklausomybių atnaujinimo. Metabase atnaujinimai paprastai tiesiog veikia – sustabdote seną versiją, paleidžiate naują.
Vartotojų valdymas ir saugumas
Abi platformos siūlo solidžias vartotojų valdymo galimybes, bet skirtingais būdais.
Superset turi detalią role-based access control (RBAC) sistemą. Galite sukurti roles su labai specifinėmis teisėmis – kas gali matyti kokius dashboard’us, kas gali redaguoti, kas gali kurti naujus. Netgi galite apriboti prieigą prie atskirų duomenų bazių ar net lentelių. Tai labai galingas mechanizmas didelėms organizacijoms.
Row-level security Superset taip pat palaiko, bet reikia konfigūruoti per Python kodą. Tai reiškia, kad galite užtikrinti, jog pardavimų vadybininkas mato tik savo regiono duomenis, net jei naudoja tą patį dashboard’ą kaip ir CEO. Bet vėlgi – reikia programuoti.
Metabase saugumas paprastesnis, bet vis tiek efektyvus. Turite tris pagrindinius vaidmenis: Admin, Editor, Viewer. Galite kurti grupes ir priskirti joms prieigą prie konkrečių kolekcijų (collections) – tai būdas organizuoti dashboard’us ir klausimus.
Metabase taip pat turi sandboxing funkciją (tik mokamoje versijoje), kuri leidžia apriboti, kokius duomenis vartotojai mato. Tai veikia panašiai kaip row-level security, bet konfigūruojama per UI, o ne kodą.
Autentifikacija – abi platformos palaiko LDAP, OAuth, SAML. Superset turi šiek tiek daugiau pasirinkimų ir lankstumo, bet Metabase paprastesnis konfigūruoti.
Bendruomenė ir palaikymas
Čia abi platformos turi savo privalumų. Superset, būdamas Apache projektu, turi labai aktyvią open source bendruomenę. GitHub’e rasite tūkstančius issue, pull request’ų, diskusijų. Slack workspace’e šimtai aktyvių narių, kurie padeda vienas kitam.
Tačiau būkite pasirengę, kad atsakymai ne visada bus greiti ar išsamūs. Tai open source projektas, kur žmonės padeda savo laisvu laiku. Jei reikia garantuoto palaikymo, yra keletas kompanijų, siūlančių komercinį Superset palaikymą (pvz., Preset – įmonė, kurią įkūrė Superset kūrėjai).
Metabase turi mažesnę, bet labai draugišką bendruomenę. Jų discourse forumas aktyvus ir dažnai atsakymus gausite per kelias valandas. Kas įdomu – Metabase komanda pati labai aktyvi forume, tai reiškia, kad dažnai atsakymus gausite tiesiogiai iš kūrėjų.
Metabase taip pat siūlo mokamą Cloud versiją ir Enterprise licenciją su garantuotu palaikymu. Tai geras variantas, jei nenorite rūpintis infrastruktūra ar reikia papildomų funkcijų kaip sandboxing, SSO ar audito logai.
Dokumentacija – abi platformos turi gerą dokumentaciją, bet skirtingą. Superset dokumentacija techninė, išsami, bet kartais gali būti sunku rasti tai, ko ieškai. Metabase dokumentacija orientuota į vartotoją, su daugybe pavyzdžių ir screenshot’ų.
Kada rinktis ką ir kaip neprisigadinti
Po viso šio teksto turbūt vis dar svarstote, kurį įrankį rinktis. Leiskite pasidalinti praktiniais patarimais, paremtais realiais projektais.
Rinkitės Superset, jei:
– Turite techninę komandą, kuri gali jį palaikyti
– Reikia sudėtingų, custom vizualizacijų
– Dirbate su labai dideliais duomenų kiekiais ir reikia pažangių cache’inimo mechanizmų
– Jums svarbus maksimalus lankstumas ir galimybė viską customizuoti
– Planuojate integruoti BI įrankį į savo produktą (Superset turi gerą API)
Rinkitės Metabase, jei:
– Norite greitai pradėti ir minimizuoti palaikymo sąnaudas
– Jūsų komandoje yra ne-techninių vartotojų, kurie norės patys kurti ataskaitas
– Jums pakanka standartinių vizualizacijų ir funkcionalumo
– Vertinat paprastumą ir intuityvumą labiau nei pažangias funkcijas
– Nenorite investuoti daug laiko į diegimą ir konfigūraciją
Praktinis patarimas – pradėkite nuo Metabase. Jei po kelių mėnesių suprasite, kad jums reikia daugiau galios ar specifinių funkcijų, galite migruoti į Superset. Priešinga kryptimi migruoti sunkiau – kai žmonės priprantą prie Superset lankstumo, grįžti prie paprastesnio įrankio nelengva.
Dar vienas svarbus dalykas – neįsipareigokite vienam įrankiui amžinai. Abi platformos leidžia eksportuoti dashboard’us ir užklausas. Jei kas nors nepavyks, galėsite pereiti prie kito sprendimo. Tai vienas iš atvirojo kodo grožių.
Ir paskutinis patarimas – nepamirškit, kad BI įrankis yra tik įrankis. Svarbiausia ne tai, kokį įrankį pasirinksite, o kaip organizuosite duomenis, kokias metricas matuosite ir kaip priimsite sprendimus remiantis tais duomenimis. Geriausias BI įrankis pasaulyje nepadės, jei jūsų duomenys chaotiški ar jūs nežinote, kokių klausimų užduoti.
