În ultima perioadă, am căutat instrumentul potrivit pentru analiza datelor. Îmi doream un tool care, în primul rând, să proceseze rapid cod în Python și SQL, eventual și în R.
Așa am ajuns la Noteable, care este un data notebook. Poți să scrii cod pentru date, însă vine și cu alte funcționalități utile pentru o persoană care lucrează frecvent cu date, precum vizualizări de date, integrări cu AI, automatizări și lucru în echipă. Există chiar și un plugin pentru lucrul cu ChatGPT. Mai mult, totul se face într-o fereastră de browser.
Să alegi instrumentul potrivit pentru a scrie cod de date este mai greu decât credeam. Pentru limbajul R, lucrurile sunt simple, pentru că există RStudio. Aceasta nu este deloc o variantă rea, mai ales că în ultimii ani suportă și cod Python, iar principalele librării sunt deja instalate.
Situația este mai complicată dacă preferi Python ca limbaj principal. Pe de o parte, sunt diverse IDE-uri (integrated development environment), utile pentru cei care scriu fișiere .py, care ulterior pot merge spre producție. Pe de altă parte, zona de analiză de date în Python are și notebooks, care pot fi accesate din browser și care, de cele mai multe ori, lucrează cu fișiere .ipynb (prescurtarea de la IPython Notebook).
Mai mult, pentru anumite IDE-uri au apărut și librării, unele dintre ele venind cu rezultatul de la notebooks, adică fișiere care rulează parțial și ai rezultatul imediat. Așadar, un fel de avantaj din ambele, dar trebuie instalat un software.
Ce este Noteable
Noteable este un notebook care rulează cu Python, R sau TypeScript, la care se poate adăuga oricând și cod SQL. Până aici seamnănă și cu celelalte Python notebooks, însă avantajele aduse de noteable.io de-abia acum încep.
Pe lângă zona de editare cod pentru date asemănătoare cu un IDE, Noteable vine și cu beneficiile unui instrument de business intelligence, pentru că ne oferă rapid posibilitatea de a vedea rapid grafice sau tabele cu datele la care lucrăm, dar și cu securitatea unui notebook, inclusiv cu opțiunea de editare împreună cu alte persoane.
Noteable poate încărca fișiere de date cu care apoi să lucreze, dar se poate conecta și la surse de date din principalele baze de date sau soluții de data warehousing, precum Amazon Athena, Google BigQuery sau Snowflake.
Celule în Noteable
Un notebook este format din 2 tipuri primare de celule:
- Celule Markdown – sunt zone de text, în care putem pune titluri, descrieri, notițe, documentație sau orice altceva (poate fi văzut un exemplu în imaginea de deasupra articolului, care începe cu o celulă Markdown, după care continuă cu celule cod și cu vizualizări)
- Celule de cod – sunt zonele în care scriem codul, iar fiecare dintre aceasta trebuie să fie pentru un singur limbaj:
- Python
- R
- TypeScript
- SQL
Putem vedea mai jos un exemplu, în care încărcăm principalele pachete pentru lucru cu date din Python. Cum pachetul PyMongo
nu era instalat, prima dată îl vom instala pe acesta, după care îl vom rula. Aceasta este o librările care va face legătura între scriptul Python și bazele de date MongoDB.
Tot în codul de mai sus, am încărcat un fișier .csv cu date din Google Analytics, am trecut coloana Date la formatul de dată și am afișat o celulă din aceasta, ca exemplu.
Așa cum scriam mai sus, putem trece oricând la SQL, folosind același fișier:
Am încercat și un fișier cu limbajul R. Dezavantajul aici este că fișierele cu Python sunt diferite de cele cu R. Interesant este că nu mi-a încărcat librăria `tidyverse` (care este o colecție de librării utile în analiza datelor), dar mi-a încărcat aceleași librării când am încercat cu acestea, pe rând.
Data Explorer (DEX)
Noteable vine și cu o funționalitate foarte utilă: vizualizarea rapidă a datelor cu care lucrăm.
Aceasta se numește DEX și este un instrument pentru care nu este nevoie de cod. El va afișa datele cu care lucrăm, de obicei într-un tabel cu mici vizualizări privind distribuția, dar avem posibilitatea și să schimbăm vizualizarea datelor.
În colecția DEX din Noteable sunt toate tipurile importante de vizualizări de date. Pentru fiecare dintre vizualizări, vom avea un meniu cu coloanele pe care le vrem afișate, dar și posibilitatea de a personaliza elementele vizuale, inclusiv prin adăugarea culorilor preferate.
În exemplul de mai sus, am calculat rata de conversie la nivel de sesiune și am filtrat 3 coloane din DataFrame, moment în care Noteable a ales să mi le și afișeze în prin tabel cu mini-vizualizări pentru distribuția valorilor.
Observăm că rata de conversie zilnică este între 1% și 5% și avem 365 de zile. În partea de jos este afișat numărul coloanelor ca o statistică sumar, dar putem schimba acest sumar cu alte funcții, precum minim, maxim, media, mediana sau suma.
Tot de aici, putem ușor să punem filtre, să schimbăm ordinea coloanelor sau chiar să le schimbăm ordinea.
Nu îl ultimul rând, plecând de la o vizualizare, putem crea un dasbhoard. În acesta, putem adăuga mai multe vizualizări, îi putem pune un nume, o descriere și un text care va apărea sub grafice. Personal, aș rămâne la un software de dashboarding pentru asta. În schimb, partea de explorare a datelor pe care o oferă Noteable este foarte utilă în momentul în care lucrezi cu acestea.
Grafice în Python și R
Faptul că Noteable vine cu propria funcționalitate de vizualizare de date nu înseamnă că nu ne putem crea și propriile vizualizări din cod. Mai jos este un exemplu în care am creat un grafic cu rata de conversie zilnică, timp de un an, folosind pachetul Seaborn din Python.
Aceste vizualizări nu pot fi adăugate în Dashnoard din Noteable. Nu cred că este o problemă. Așa cum scriam mai sus, eu personal nu aș folosi Noteable pentru a crea dashboards (cel puțin, nu în acest moment).
Ce dezavantaje are Noteable
Am prezentat mai sus principalele avantaje pe care le poți avea ca utilizator de Noteable. Desigur, există și unele neajunsuri cu care vine acest instrument.
Dacă lucrezi cu o cantitate foarte mare de date și ai nevoie de un cluster pentru a procesa aceste date, Noteable nu poate instala librării prin care poți lucra cu acestea. De exemplu, nu se pot instala librăriile prin care poți accesa Hadoop (de care poate avea neoie Spark).
Dacă lucrați frecvent cu big data și clusters, Noteable nu este o idee bună. În schimb, Jupyter Notebook sau Google Colab fac o treabă foarte bună aici.
Ocazional, se întâmplă ca Noteable să nu poată rula SQL. Am observat astăzi că pot fi și momente în care documentul nu este actualizat cu schimbările făcute de utilizator (probabil o problemă de conectare). Bănuiesc, totuși, că aceste lucruri se întâmplă destul de rar.
În final, cred că Noteable vine cu beneficii pentru majoritatea utilizatorilor care lucrează cu date și scriu cod în acest sens. Noteable este un instrument recent, lansat în 2021 pentru explorarea și transformarea colaborativă a datelor. Sunt tare curios cum se va dezvolta și de acum înainte. Va accepta și mai multe librării avansate? Va avea un dashboard mai bun? Cu siguranță voi urmări ce se va întâmpla cu acest produs, iar dacă va anunâa ceva notabil, voi reveni cu articole.