← Cloudflare Workers AI / workers-ai / platform
Zvolte datový nebo úložný produkt
Tento průvodce popisuje produkty pro úložiště a databáze dostupné v rámci Cloudflare Workers, včetně doporučených případů použití a osvědčených postupů.
Zvolte úložný produkt
Následující tabulka mapuje naše produkty pro ukládání dat a databáze na běžné pojmy z oboru a doporučené případy použití:
| Případ užití | Produkt | Vhodné pro |
|---|---|---|
| Úložiště klíč-hodnota | Workers KV | Konfigurační data, metadata směrování služeb, personalizace (A/B testování) |
| Objektové úložiště / blob storage | R2 | Webová aktiva pro uživatele, obrázky, datové sady pro strojové učení a trénování, analytická data, logy a data o událostech. |
| Zrychlení databáze Postgres nebo MySQL | Hyperdrive | Připojení k existující databázi v cloudu nebo on-premise pomocí vašich stávajících databázových ovladačů a ORM. |
| Globální koordinace a stavový serverless | Durable Objects | Vytváření kolaborativních aplikací; globální koordinace mezi klienty; aplikace WebSocket v reálném čase; silně konzistentní transakční úložiště. |
| Odlehčená SQL databáze | D1 | Relační data, včetně uživatelských profilů, seznamů produktů a objednávek nebo zákaznických dat. |
| Zpracování úloh, dávkování a zasílání zpráv | Queues | Zpracování úloh na pozadí (e-maily, oznámení, API), řazení zpráv do front a odložené úlohy. |
| Vektorové vyhledávání a dotazy na embeddings | Vectorize | Ukládání embeddings od AI modelů pro sémantické vyhledávání a klasifikační úlohy. |
| Streamovaný příjem dat | Pipelines | Streamovaný příjem a zpracování dat, včetně clickstream analytiky, telemetrických/log dat a strukturovaných dat pro dotazování |
| Metriky časových řad | Analytics Engine | Zapisujte a dotazujte se na časové řady s vysokou kardinalitou, metriky využití a telemetrii na úrovni služeb pomocí Workers a/nebo SQL. |
Aplikace mohou stavět na více úložných a databázových produktech. Můžete například použít Workers KV pro data relací, R2 pro ukládání velkých souborů, mediálních assetů a souborů nahraných uživateli, a Hyperdrive pro připojení k hostované databázi Postgres nebo MySQL.
Možnosti databáze SQL
Při vytváření aplikací pomocí Workers máte k dispozici tři možnosti databází založených na SQL.
- Hyperdrive pokud už máte existující databázi Postgres nebo MySQL, potřebujete velké jednotlivé databáze (1 TB, 100 TB nebo více) nebo chcete používat své stávající databázové nástroje. Hyperdrive lze připojit i k databázovým platformám jako PlanetScale ↗ nebo Neon ↗.
- D1 pro lehké bezserverové aplikace, které jsou náročné na čtení, mají globální uživatele a těží z D1 replikace pro čtení, a nevyžadují, abyste spravovali a udržovali tradiční RDBMS.
- Durable Objects pro stavové bezserverové úlohy, SQL stav pro jednotlivé uživatele nebo zákazníky a pro vytváření distribuovaných systémů (D1 a Queues jsou postaveny na Durable Objects), kde vlastnosti Durable Object striktní serializovatelnost ↗ umožňuje globální řazení požadavků a operací s úložištěm.
Úložiště relací
Doporučujeme použít Workers KV pro ukládání dat relací, přihlašovacích údajů (API klíčů) a/nebo konfiguračních dat. Tato data se obvykle čtou s vysokou frekvencí (tisíce RPS nebo více), obvykle se nemění (v rámci limitu KV 1 zápis RPS na jedinečný klíč) a nepotřebují okamžitou konzistenci.
Často čtené klíče těží z toho, že KV nabízí interní cache, a opakovaná čtení těchto takzvaných "hot" klíčů obvykle dosahují latence v rozmezí 500µs až 10ms.
Ověřovací frameworky, jako například OpenAuth ↗ po nasazení na Cloudflare použijte jako úložiště relací Workers KV a Cloudflare Access používá KV k bezpečnému ukládání a distribuci přihlašovacích údajů uživatelů, aby je bylo možné ověřit co nejblíže uživateli a snížit tak celkovou latenci.
Přehledy produktů
Workers KV
Workers KV je eventuálně konzistentní úložiště typu klíč hodnota, které ukládá data do mezipaměti globální sítě Cloudflare.
Je ideální pro projekty, které vyžadují:
- Velké objemy čtení a/nebo opakovaná čtení stejných klíčů.
- Globální čtení s nízkou latencí (typicky do 10ms u hot keys)
- Doba života (TTL) pro jednotlivé objekty.
- Distribuovaná konfigurace nebo úložiště relací.
Chcete-li začít s KV:
- Přečtěte si, jak KV funguje.
- Vytvořte KV namespace.
- Zkontrolujte KV Runtime API.
- Přečtěte si o KV Limity.
R2
R2 je blob úložiště kompatibilní s S3, které vývojářům umožňuje ukládat velké objemy nestrukturovaných dat bez poplatků za odchozí přenos dat (egress), jaké jsou běžné u typických cloudových úložných služeb.
Je ideální pro projekty, které vyžadují:
- Úložiště pro soubory, ke kterým se přistupuje jen zřídka.
- Úložiště velkých objektů (například gigabajty nebo více na objekt).
- Silná konzistence na úrovni objektu.
- Úložiště Assets pro weby (viz průvodce cachováním)
Začínáme s R2:
- Přečtěte si Úvodní návod.
- Přečtěte si o R2 Limity.
- Zkontrolujte R2 Workers API.
Durable Objects
Durable Objects poskytují koordinaci s nízkou latencí a konzistentní úložiště pro platformu Workers díky globální jedinečnosti a transakčnímu úložnému API.
-
Globální jedinečnost (Global Uniqueness) zaručuje, že v danou chvíli běží na celém světě vždy jen jedna instance třídy Durable Object s daným ID. Požadavky na dané ID Durable Object směruje běhové prostředí Workers do datacentra Cloudflare, které daný Durable Object vlastní.
-
Transakční úložné API poskytuje Durable Object silně konzistentní úložiště typu klíč-hodnota. Každý objekt může číst a upravovat pouze klíče přiřazené danému objektu. Provádění Durable Object probíhá v jednom vlákně, přesto však mohou být jednotlivé požadavky zpracovány v jiném pořadí, než v jakém do objektu přišly.
Je ideální pro projekty, které vyžadují:
- Spolupráce v reálném čase (například chatovací aplikace nebo herní server).
- Konzistentní úložiště.
- Lokalita dat.
Chcete-li začít s Durable Objects:
- Přečtěte si úvodní příspěvek na blogu ↗.
- Zkontrolujte Dokumentace Durable Objects.
- Začínáme s Durable Objects.
- Přečtěte si o Durable Objects Limity.
D1
D1 je nativní bezserverová databáze od Cloudflare. S D1 můžete vytvořit databázi importem dat nebo definováním tabulek a psaním dotazů přímo ve Workeru nebo přes API.
D1 je ideální pro:
- Perzistentní relační úložiště pro uživatelská data, data účtů a další strukturované datové sady.
- Případy užití, které vyžadují ad hoc dotazování napříč daty (pomocí SQL).
- Zátěže s vysokým poměrem čtení k zápisům (většina webových aplikací).
Chcete-li začít s D1:
- Přečtěte si dokumentace
- Postupujte podle Úvodní návod pro vytvoření vaší první databáze D1.
- Zkontrolujte D1 Workers Binding API.
Queues
Cloudflare Queues umožňuje vývojářům odesílat a přijímat zprávy se zaručeným doručením. Integruje se s Cloudflare Workers a nabízí doručení alespoň jednou (at-least-once), dávkové zpracování zpráv a neúčtuje si za odchozí šířku pásma.
Queues je ideální pro:
- Odložení práce z požadavku na pozdější naplánování.
- Odesílejte data mezi Workery (komunikace mezi službami).
- Ukládání do bufferu nebo dávkové zpracování dat před zápisem do navazujících systémů, včetně API třetích stran nebo Cloudflare R2.
Začínáme s Queues:
- Nastavit svou první frontu.
- Zjistěte více o tom, jak fungují Queues.
Hyperdrive
Hyperdrive je služba, která urychluje dotazy do databází MySQL a Postgres, takže k datům přistupujete rychleji odkudkoli na světě bez ohledu na polohu vašich uživatelů.
Hyperdrive vám umožňuje:
- Připojte se k existující databázi z Workers bez zátěže navazování připojení.
- Ukládejte časté dotazy do mezipaměti v rámci globální sítě Cloudflare a zkraťte tak dobu odezvy u hodně navštěvovaného obsahu.
- Snižte zátěž zdrojové databáze pomocí poolingu připojení.
Chcete-li začít s Hyperdrive:
- Připojte Hyperdrive do vaší existující databáze.
- Zjistěte více o tom, jak Hyperdrive zrychluje vaše databázové dotazy.
Pipelines
Pipelines je streamovací služba pro příjem dat, která umožňuje přijímat velké objemy dat v reálném čase bez nutnosti spravovat jakoukoli infrastrukturu.
Pipelines vám umožňuje:
- Přijímejte data s extrémně vysokou propustností (desítky tisíc záznamů za sekundu nebo více)
- Umožňuje dávkově zapisovat data přímo do objektového úložiště, připravená k dotazování
- (Plánováno) Transformace a agregace dat během příjmu
Chcete-li začít s Pipelines:
- Vytvořte Pipeline který umí dávkově zapisovat záznamy do R2.
Analytics Engine
Analytics Engine je časová a metrická databáze Cloudflare. Pomocí vestavěného API umožňuje ve velkém měřítku zapisovat analytická data s neomezenou kardinalitou. Datové body zapisujete z Workers a poté je dotazujete přímo pomocí SQL.
Analytics Engine umožňuje:
- Zpřístupněte vlastní analytiku svým zákazníkům
- Vytvářejte systémy fakturace podle využití
- Seznamte se se stavem své služby v členění podle jednotlivých zákazníků nebo uživatelů
- Přidejte instrumentaci do často volaných částí kódu, aniž byste ovlivnili výkon nebo zahltili externí analytické systémy událostmi
Cloudflare interně používá Analytics Engine k ukládání a generování metrik pro jednotlivé produkty, jako jsou D1 a R2, ve velkém měřítku.
Chcete-li začít s Analytics Engine:
- Přečtěte si, jak začínáme s Analytics Engine
- Viz příklad zápisu časových řad do Analytics Engine
- Seznamte se s SQL API pro čtení dat z vašich datových sad Analytics Engine
Vectorize
Vectorize je globálně distribuovaná vektorová databáze, která umožňuje vytvářet plnohodnotné aplikace s podporou AI pomocí Cloudflare Workers a Workers AI.
Vectorize umožňuje:
- Ukládejte embeddingy z libovolného modelu vektorových embeddingů (Bring Your Own embeddings) pro sémantické vyhledávání a klasifikační úlohy.
- Přidejte kontext k dotazům velkého jazykového modelu (LLM) pomocí vektorového vyhledávání jako součásti Generování rozšířené vyhledáváním (RAG) workflow.
- Filtrování podle metadat vektoru pro zúžení prohledávaného prostoru a vrácení relevantnějších výsledků.
Začínáme s Vectorize:
- Vytvoření vaší první vektorové databáze.
- Zkombinovat Workers AI a Vectorize ke generování, ukládání a dotazování textových embeddingů.
- Další informace o jak fungují vektorové databáze.
SQL v Durable Objects oproti D1
Cloudflare Workers nabízí serverless databázový produkt založený na SQLite, D1. Jak byste měli porovnat SQLite v Durable Objects a D1?
D1 je spravovaný databázový produkt.
D1 zapadá do architektury, kterou vývojáři dobře znají: aplikační servery komunikují s databází po síti. Aplikačními servery jsou obvykle Workers, D1 ale podporuje i externí přístup mimo Worker prostřednictvím HTTP API ↗, což pomáhá odemknout nástroje třetích stran podpora pro D1.
D1 usiluje o ucelenou sadu funkcí typu „vše v jednom“, včetně výše uvedeného HTTP API, správa schématu databáze, import a export dat, a přehledy databázových dotazů.
U D1 nejsou kód aplikace a SQL dotazy do databáze umístěny na stejném místě, což může ovlivnit výkon aplikace. Pokud pro vás výkon D1 hraje roli, Workers nabízí Smart Placement aby dynamicky spouštělo váš Worker v nejvhodnější lokalitě a snížilo tak celkovou latenci požadavků Workeru, s ohledem na vše, s čím váš Worker komunikuje, včetně D1.
SQLite v Durable Objects je nízkoúrovňový stavební prvek výpočtu s úložištěm pro distribuované systémy.
Durable Objects jsou záměrně přístupné pouze z Workers.
Durable Objects vyžadují trochu více úsilí, ale na oplátku vám dávají větší flexibilitu a kontrolu. U Durable Objects musíte implementovat dva kusy kódu, které běží na různých místech: front-endový Worker, jenž směruje příchozí požadavky z internetu na konkrétní Durable Object, a samotný Durable Object, který běží na stejném stroji jako databáze SQLite. Sami si volíte, co poběží kde, a může se stát, že vaší aplikaci prospěje, když část obchodní logiky poběží přímo vedle databáze.
U SQLite v Durable Objects si možná budete muset sami vytvořit část databázových nástrojů, které u D1 dostanete rovnou k dispozici.
Ceny a limity SQL dotazů mají být shodné mezi D1 (ceny, limity) a SQLite v Durable Objects (ceny, limity).