Open-source AI data analyst platform extracted from internal repo. Includes data sync engine, Keboola adapter, Flask web portal, server deployment scripts, and configuration templates.
9.9 KiB
9.9 KiB
Klíčové body
- Byl identifikován problém, že po instalaci se nové úpravy (např. dokumentace) nedostanou ke stávajícím uživatelům, protože skript
sync_datasynchronizuje pouze data, nikoli zbytek struktury. - Při pokusu o rozšíření
sync_datavznikl konflikt: přepisování souborů jakocloud.mdby mazalo uživatelské poznámky. Současněhomeadresář na serveru nerozlišoval mezi uživateli. - Byla implementována nová adresářová struktura oddělující serverové soubory (složka
server) a uživatelské soubory (složkauser), aby se zabránilo konfliktům a nechtěným přepisům. Uživatelské soubory se nyní synchronizují na server dohomeadresáře daného uživatele. - Padák prezentoval redesignovaný dynamický dashboard a novou funkci notifikací přes Telegram. Propojení účtu vyžaduje zadání unikátního kódu vygenerovaného botem.
- Byla identifikována příčina selhání automatického spouštění reportů: funkce "cooldown period", která brání opakovanému odeslání stejné notifikace v krátkém čase.
- Řešilo se fungování virtuálních prostředí (
venv) a byla nalezena chyba ve skriptuinit(chybějící tečka předvenv). - Pro ochranu serverových souborů bylo navrženo použít oprávnění
read-only. Byl představen souborcloud.local.mdpro uživatelské poznámky, který se nepřepisuje. - Synchronizační skript byl upraven přidáním parametru
--checksum, aby se přenášely pouze soubory se změněným obsahem, nikoli jen s novějším datem modifikace. - Byl představen plán na přesun
/homeadresářů na samostatný, zálohovaný diskový oddíl kvůli nedostatku místa na systémovém disku. - Diskutovalo se o nefunkčním skriptu
check_freshness, který měl kontrolovat aktuálnost dat. Padák navrhl jeho odstranění, protožersyncje pro tento účel dostatečně efektivní. - Bylo zjištěno, že API pro stahování dat z Kebooly nepodporuje efektivní filtrování podle časové značky změny, což komplikuje inkrementální stahování pouze změněných řádků.
- Bylo zjištěno, že pro inkrementální synchronizaci dat z Kebooly je správným přístupem použít parametr
changed_sincev API volání namísto zastaralého a komplikovanéhowherefiltru. - Padák navrhl provádět aktualizace dat z Kebooly každých 15 minut a pro zajištění smazání starých souborů na straně klienta použít parametr
--deletepři synchronizaci. - Byl navržen přesun výpočtů a zpracování dat (např. Infrastructure Cost Data) z drahých cloudových služeb (Snowflake) na stranu klienta pomocí DuckDB, aby se snížily náklady a zvýšila rychlost.
- Pro nová prostředí bude v
settings.jsonnastaveno, aby systém vyžadoval potvrzení pro rizikové operace (např.Push Force). - Padák experimentuje s vývojem desktopové aplikace pro macOS pro zobrazování notifikací.
Přijatá rozhodnutí
- Skript
sync_databude synchronizovat veškerý potřebný obsah ze serveru (skripty, dokumentaci atd.), nejen data. - Byla zavedena nová adresářová struktura striktně oddělující serverové (
server) a uživatelské (user) soubory. - Pro notifikace bude v pilotní fázi použit Telegram s ověřováním přes unikátní kód.
- Byl implementován volitelný mechanismus "cooldown period" pro zamezení zahlcení uživatelů notifikacemi.
- Ochrana serverových souborů bude řešena instrukcemi
read-onlyvCloud.mda využitím souborucloud.local.mdpro uživatelské poznámky. - Pro synchronizaci dat se bude používat parametr
--checksum, aby se předešlo zbytečným přenosům dat. - Skript pro kontrolu aktuálnosti dat (
check_freshness) bude odstraněn a pro synchronizaci se bude spoléhat výhradně narsync. - Pro inkrementální export dat z Kebuly se bude používat parametr
changed_sincemístowherefiltrů. - Aktualizace dat z Kebuly se budou provádět v 15minutových intervalech.
- Pro synchronizaci souborů se bude používat parametr
--deletek zajištění smazání souborů, které již neexistují na zdroji. - Zpracování dat se bude přesouvat z cloudových služeb (Snowflake) na stranu klienta s využitím DuckDB.
- Přetypování dat (kastování) se nebude provádět na straně klienta, aby byla zachována kvalita zdrojových parquet souborů.
Akční body
Úkoly
| Task | Responsible Party | Deadline | Notes |
|---|---|---|---|
Doplnit do cloud.md instrukce pro uživatele ohledně ukládání do složky artifacts. |
Matěj Kis (předpoklad) / Tým | Není specifikováno | Potřeba aktualizace byla zmíněna, ale obsah nebyl aktivně řešen. |
| Připojit se ke Claude a komunikovat s ním. | Padák | Není specifikováno | Zmíněno jako další krok na konci schůzky. |
Zdebugovat, proč se automatická notifikace v 7:30 nespustila dle plánu v crontab. |
Padák | Není specifikováno | Příčinou je pravděpodobně funkce "cooldown period". |
Doplnit informace o venv do dokumentace. |
Padák | Není specifikováno | Doplnit popis do Docs/Notifications.md. |
Opravit chybu ve skriptu init (přidat tečku před venv). |
Speaker 2 | Není specifikováno | Zajistit správné vytváření virtuálního prostředí. |
| Zkontrolovat, co se reálně děje při aktualizaci dat z Kebooly. | Speaker 2 | Není specifikováno | V návaznosti na změnu synchronizace pomocí --checksum. |
Upravit synchronizační skript, aby synchronizoval i soubor cloud.local.md ze stroje uživatele na server. |
Speaker 2 | Není specifikováno | Zajistí zálohu uživatelských poznámek na serveru. |
| Předělat strukturu serveru, přesunout uživatelské home adresáře na samostatný zálohovaný disk. | Padák | Není specifikováno | V rámci research úkolu na "Backup and disaster recovery". |
| Opravit problém s oprávněními souborového systému u Telegram bota. | Padák | Není specifikováno | Zapsáno v GIDA píšu jako poznámka k úpravě tlačítek v Telegramu. |
| Zkontrolovat a případně doplnit skripty pro nasazení (deploy scripts) o správné nastavení oprávnění složek. | Speaker 2 | Není specifikováno | Zajistit, aby skripty automatizovaly ruční úpravy oprávnění. |
| Zkontrolovat, proč se nestahují metadata (soubor .metadata). | Speaker 2 | Není specifikováno | Původní problém byl v chybějících oprávněních k zápisu. |
Zjistit, kde se aplikují where filtry definované v Data Description. |
Speaker 2 | Není specifikováno | Zvláštní pozornost věnovat použití sloupce s časovým razítkem (timestamp). |
Upravit exportní skript tak, aby pro inkrementální synchronizaci používal parametr changed_since. |
Speaker 2 | Není specifikováno | Cílem je zjednodušit logiku a zajistit efektivní načítání pouze změněných dat. |
| Připravit a promyslet způsob zacházení s daty v tabulkách (např. při přemazání). | Speaker 2 | Není specifikováno | Bude řešeno v rámci celé flow inkrementálního zpracování. |
Vyzkoušet funkci AirSync a zaměřit se na její chování při synchronizaci. |
Speaker 2 | Není specifikováno | Zapsáno k řešení v momentě implementace. |
| Zkontrolovat telemetrická data a připravit je k synchronizaci. | Speaker 2 | Dnes | Ověřit správnost dat před jejich nasynchronizováním. |
| Práce na implementaci (v branchi) s možností review přes pull request. | Speaker 2 | Není specifikováno | Padák nabídl provedení revize kódu. |
Vložit obsah settings.json do nového GitHub issue a přiřadit ho Daše Dama. |
Padák | Není specifikováno | Cílem je, aby Daša Dama toto nastavení zapracovala do init skriptu. |
| Dokončit úpravy notifikací, přidat podporu pro Slack a opravit chyby v ručním spouštění reportů. | Padák | Není specifikováno | |
| Vyvinout a otestovat prototyp desktopové aplikace pro macOS pro zobrazování notifikací. | Padák | Není specifikováno | Probíhá v rámci větve MacOS app branch. |
| Provést review query pro data o nákladech. | Matěj | Není specifikováno | Bude řešeno na začátku příštího týdne. |
| Zkontrolovat, zda se skripty pro synchronizaci (tablety) spouštějí správně. | Speaker 3 | Není specifikováno | Pokud ne, odstranit check sam ze Sync scriptu. Nízká priorita. |
| Podívat se na query týkající se nákladů (costů). | Speaker 2 | Není specifikováno | |
| Řešit "certifikované query". | Matěj | Příští týden | Cílem je vytvořit "top odpovídačku". |
Termíny
- za 10 dní: Vytvoření nových PSUGO projektů (dle příkladu notifikačního skriptu, nejedná se o skutečný termín).
- 7:30 (evropského času): Měla proběhnout automatická notifikace pro uživatele Petr, což se nestalo.
- Dnes: Speaker 2 se bude věnovat kontrole telemetrických dat a jejich přípravě k synchronizaci.
- Příští týden: Matěj bude řešit certifikované query.
Následné kroky
- Pokračovat v diskuzi a spolupráci s AI (Claude).
- Padák prověří a opraví problém s automatickým spouštěním reportů naplánovaných přes
crontab. - Padák připraví a provede přesun uživatelských
homeadresářů na nový diskový oddíl. - Speaker 2 se podrobněji podívá na proces inicializace virtuálních prostředí a synchronizace dat, včetně implementace zálohování
cloud.local.md. - Zvážit odstranění skriptu
check_freshnessa spoléhat se výhradně narsync. - Prozkoumat možnosti API pro stahování dat, zda by bylo možné efektivněji filtrovat pouze změněné záznamy.
- Speaker 2 provede revizi a úpravu skriptu pro export dat z Kebuly s využitím parametru
changed_since. - Speaker 2 se bude zabývat daty, jejich strukturou a celkovým procesem synchronizace, Padák bude k dispozici pro revizi kódu.
- Daša Dama implementuje nová nastavení z
settings.jsondo init skriptu prostředí. - Padák bude pokračovat ve vývoji desktopové aplikace pro notifikace.