Marimo: je nyní vytváření datových aplikací snazší?

Marimo: je nyní vytváření datových aplikací snazší?

Slogan společnosti Marimo na její domovské stránce zněl dříve Budoucnost notebooků Python. Nedávno byl změněn na Unifikované vývojové prostředí pro AI a data.

I když to pravděpodobně lépe vystihuje, co Marimo dokáže, zní to trochu fádně. To je škoda, protože nevystihuje celou pravdu. Marimo je mnohem víc než jen to.


AI shrnutí

  • Marimo nabízí působivou kombinaci analýzy dat, prezentace a vývoje aplikací reaktivním a intuitivním způsobem. Jeho silné stránky spočívají v hladké integraci SQL-Python, responzivních komponentách uživatelského rozhraní pro webové aplikace založené na datech a schopnosti proměnit notebooky v dynamické a interaktivní prezentace.
  • Marimo se vyznačuje jedinečným reaktivním přístupem, kdy se definované proměnné automaticky aktualizují v celém notebooku. To spolu s uživatelsky přívětivou integrací SQL a hotovými komponentami uživatelského rozhraní zjednodušuje tvorbu datových aplikací, a to i pro složité vizualizace a nástroje. Důraz na jednoduchost a prostředí s jedním souborem (.py s vloženými závislostmi) činí Marimo ideálním pro reprodukovatelné a sdílené projekty zaměřené na data.
  • Vývoj Marimo přesahuje tradiční notebooky a umožňuje uživatelům vytvářet interaktivní výukové programy, dynamické datové narativy a experimentální rozhraní. Jeho integrace s AI (prostřednictvím API nebo lokálních modelů) dále vylepšuje průzkum a pracovní postupy kódování. Možnost volby mezi nativním nasazením v prohlížeči (WASM) nebo nasazením na serveru vyhovuje různým hostingovým potřebám a zajišťuje široké spektrum možností datově orientovaných aplikací.

Jeden nástroj, tři využití

Marimo nabízí:

  • Notebook Python a SQL
  • Prezentační nástroj
  • Nástroj pro tvorbu datových aplikací

marimo notebook

Podívejme se na jednotlivé části.

Každodenní nástroj pro práci s daty

Marimo je každodenní pomocník pro práci s daty. Působí jako notebook. Většina datových profesionálů již zná iterativní pracovní postupy, které notebooky podporují.

Obsahuje interaktivní komponenty uživatelského rozhraní: tabulky, grafy, bloky markdown, vstupy a posuvníky. Pro asistenci AI je k dispozici integrace LLM. Vždy ověřujte výstupy AI, abyste se vyhnuli halucinacím.

Po prozkoumání a vyčištění dat se stejný notebook může stát prezentací nebo sdílenou aplikací. Je to jen jeden krok od analýzy k dodání.

Notebooky, ale reaktivní

Marimo není klonem Jupyteru. Vypadá jako notebook, ale funguje reaktivně.

Co znamená reaktivní?
Definujte proměnnou v jedné buňce a automaticky se aktualizuje všude, kde je použita. Předefinování v jiné buňce není povoleno. To je záměrné.

Pokud jste zvyklí na flexibilitu Jupyteru, může vám to připadat divné. Jakmile to ale zvládnete, umožní vám to rychlé vytváření uživatelského rozhraní. Rozbalovací nabídky, posuvníky a tlačítka fungují bezchybně.

K řízení stavu uživatelského rozhraní použijte marimo's state. Alternativně můžete logiku zabalit do funkcí, abyste se vyhnuli globálním proměnným.

Instalace balíčků z notebooku

Marimo zjednodušuje správu balíčků. Zkuste importovat chybějící balíček a zobrazí se výzva k jeho instalaci. Kliknutím jej nainstalujete, aniž byste museli opustit notebook.

Není třeba přepínat do terminálu ani hádat názvy balíčků. Marimo to vyřídí na pozadí. Jedná se o malou funkci, která zefektivňuje pracovní postupy.

marimo install package

Integrace SQL

Marimo podporuje kromě Pythonu také SQL. Spouštějte dotazy SQL přímo v notebooku. Připojte se k databázím jako SQLite nebo DuckDB nebo dotazujte datové rámce v paměti. Výsledky se integrují s Pythonem pro další analýzu nebo vizualizaci.

Díky tomu je Marimo univerzální pro datové potrubí kombinující SQL a Python.

marimo SQL

Datové aplikace na mobilních zařízeních

Aplikace Marimo jsou responzivní a fungují na mobilních zařízeních. Interaktivní prvky, jako jsou posuvníky a rozevírací seznamy, fungují dobře na dotykových obrazovkách. Režim WebAssembly (WASM) zajišťuje, že aplikace běží zcela v prohlížeči, což je ideální pro mobilní uživatele bez závislosti na serveru.

Těžké aplikace s velkými knihovnami nebo datovými sadami se však mohou na mobilních zařízeních načítat pomalu kvůli omezením prohlížeče. Pro složité aplikace nabízí režim serveru lepší výkon, ale vyžaduje backend.

Otestujte aplikace na mobilních zařízeních, abyste se ujistili o jejich použitelnosti, zejména u velkých datových sad nebo složitých vizualizací.

Snímky pro prezentace

Marimo přemění notebooky na sady snímků. Každá buňka může být snímkem. Prezentujte přímo z notebooku s živými, reaktivními prvky.

Vyberte hodnotu z rozevíracího seznamu…
marimo slide 1

…a okamžitě se aktualizuje na dalším snímku.
marimo slide 2

To umožňuje dynamické prezentace s živými daty. Není třeba statických screenshotů. Vše je v jednom souboru.

Spolehlivý nástroj pro tvorbu datových aplikací

Existuje mnoho nástrojů pro datové aplikace: Streamlit, Gradio, Dash. Marimo vyniká svou jednoduchostí.

V LovelyData jsme použili Marimo k vytvoření webových aplikací založených na datech. Pod pojmem datové aplikace rozumíme sdílené nástroje, které vizualizují, transformují, filtrují nebo přehledně prezentují data.

Marimo je integrováno s SQL, Pythonem a nespočtem knihoven Pythonu. Příklady zahrnují:

Jeho flexibilita, inspirovaná nástroji jako AnyWidgets, vám umožňuje vytvářet vlastní komponenty pro jedinečné případy použití, od evaluačních nástrojů po interaktivní dashboardy.

Datové aplikace v jednom souboru

Notebooky Marimo jsou standardní soubory .py. Žádná složitost JSON .ipynb.

Marimo podporuje PEP 723, což umožňuje deklarovat závislosti uvnitř souboru.

Příklad:

# /// skript
# requires-python = „>=3.12“
# dependencies = [
#     „duckdb==1.3.1“,
#     „marimo“,
#     „pandas==2.3.0“,
# ]
# ///

Tím se kód, uživatelské rozhraní a prostředí udržují na jednom místě. Je to ideální pro reprodukovatelnost a sdílení.

Hotové uživatelské rozhraní

Datové aplikace potřebují standardní prvky uživatelského rozhraní: vstupy, tlačítka, zaškrtávací políčka, tabulky, nahrávání souborů. Marimo je poskytuje ihned po instalaci. Potřebujete více? Vytvořte vlastní komponenty s AnyWidgets pro řešení na míru.

marimo UI elements

Design je minimalistický a čistý. Zaměřuje se na data, ne na okázalý styl. Komponenty se díky reaktivitě hladce integrují.

Python nebo WASM?

Aplikace Marimo běží ve dvou režimech:

  • Režim prohlížeče (WASM): Běží v prohlížeči pomocí Pyodide (Python zkompilovaný do WebAssembly).
  • Režim serveru: Python běží na backendovém serveru a klienti se připojují přes prohlížeč.

Spuštění v prohlížeči

Režim WebAssembly nevyžaduje žádný server. Sdílejte odkaz nebo hostujte jako statickou stránku. Vše běží v prohlížeči uživatele. To je skvělé z hlediska bezpečnosti a ochrany soukromí.

Vyzkoušejte to na marimo.new.

Nevýhody?
Těžké knihovny zpomalují načítání, zejména při slabém připojení. Prohlížeče omezují paměť, takže velké datové soubory nebo složité aplikace mohou mít potíže.

Spuštění na serveru

Režim serveru je vhodný pro velké datové soubory nebo uživatele s pomalým internetem. Marimo nabízí několik možností nasazení.

Dynamicky poskytujte jeden notebook nebo složku notebooků.

Porovnání výkonu

Jednoduchá aplikace pro prohlížení souborů zdůrazňuje rozdíly mezi režimy.

WASMServer
marimo WASMmarimo Server
Vyšší přenos dat a pomalejší načítání.Nižší přenos dat a rychlejší načítání.

Integrace AI

Marimo podporuje AI prostřednictvím LLM API nebo lokálních modelů. Generovaný kód lze zkopírovat nebo přidat přímo do notebooku. Zvyšuje to produktivitu při kódování a zkoumání.

marimo AI

Nezpoutaná fantazie

Flexibilita Marima vám umožňuje překročit hranice tradičních notebooků. Vytvářejte interaktivní výukové programy, které provedou uživatele daty. Vytvářejte dynamické datové příběhy, které zaujmou diváky. Navrhujte experimentální rozhraní pro jedinečné vizualizace. Díky reaktivitě a komponentám uživatelského rozhraní Marima je realizace těchto nápadů snadná. Proměňte svůj notebook v nástroj, který inspiruje a informuje.

Závěr

Marimo nenahrazuje všechny nástroje. Pro malé a střední datové aplikace představuje rovnováhu mezi jednoduchostí a výkonem. Je to notebook, prezentační nástroj a nástroj pro tvorbu aplikací – vše v jednom. Rychle se vyvíjí a aktualizace jsou publikovány často.

Pokud máte rádi notebooky Python a chcete interaktivní aplikace, které lze sdílet, vyzkoušejte Marimo. Vaše fantazie je jediným limitem.

Líbil se vám článek? Sdílejte ho s ostatními nebo nám napište něco hezkého. Děkujeme!

Mohlo by vás zajímat

Blog

Data Apps

Kurzy

Copyright © 2025, Colorbee, s.r.o.

Web by KodingKitty