Документация Запланировать пилот

Выберите продукт для работы с данными или хранилищем

В этом руководстве описаны продукты для хранения данных и работы с базами данных, доступные в составе Cloudflare Workers, включая рекомендуемые сценарии использования и лучшие практики.

Выберите продукт для хранения данных

В следующей таблице показано соответствие наших продуктов для хранения данных и баз данных общепринятым отраслевым терминам, а также приведены рекомендуемые сценарии использования:

Сценарий использования Продукт Подходит для
Хранилище ключ-значение Workers KV Данные конфигурации, метаданные маршрутизации сервисов, персонализация (A/B-тестирование)
Объектное хранилище / blob-хранилище R2 Веб-ресурсы для пользователей, изображения, наборы данных для машинного обучения и обучения моделей, аналитические наборы данных, данные журналов и событий.
Ускорение базы данных Postgres или MySQL Hyperdrive Подключение к существующей базе данных в облаке или локально с использованием имеющихся у вас драйверов баз данных и ORM.
Глобальная координация и serverless с сохранением состояния Durable Objects Создание совместных приложений; глобальная координация между клиентами; приложения WebSocket в реальном времени; строго согласованное транзакционное хранилище.
Легковесная SQL-база данных D1 Реляционные данные, включая профили пользователей, списки товаров и заказы, и/или данные клиентов.
Обработка задач, группировка и обмен сообщениями Queues Обработка фоновых задач (письма, уведомления, обращения к API), очереди сообщений и отложенные задачи.
Векторный поиск и запросы к эмбеддингам Vectorize Хранение эмбеддинги от AI моделей для задач семантического поиска и классификации.
Потоковый приём данных Pipelines Потоковый приём и обработка данных, включая аналитику кликстрима, телеметрию и журналы, а также структурированные данные для выполнения запросов
Метрики временных рядов Analytics Engine Записывайте и запрашивайте данные временных рядов с высокой кардинальностью, метрики использования и телеметрию уровня сервиса с помощью Workers и (или) SQL.

Приложения могут опираться сразу на несколько продуктов для хранения данных и баз данных: например, использовать Workers KV для данных сессий, R2 для хранения больших файлов, медиаресурсов и файлов, загруженных пользователями, а Hyperdrive применять для подключения к размещённой базе данных Postgres или MySQL.

Параметры базы данных SQL

При создании приложений на Workers доступны три варианта SQL-баз данных.

Хранилище сессий

Мы рекомендуем использовать Workers KV для хранения данных сессий, учётных данных (API-ключей) и/или конфигурационных данных. Такие данные обычно читаются с высокой частотой (тысячи RPS и более), редко изменяются (в пределах ограничения KV в 1 запись RPS на уникальный ключ) и не требуют немедленной согласованности.

Часто считываемые ключи выигрывают благодаря KV внутренний кэш, и повторные чтения таких «горячих» ключей обычно имеют задержку в диапазоне от 500 мкс до 10 мс.

Фреймворки аутентификации, такие как OpenAuth ↗ используйте Workers KV в качестве хранилища сессий при развертывании в Cloudflare, а Cloudflare Access использует KV для безопасного хранения и распространения учетных данных пользователей, чтобы их можно было проверять максимально близко к пользователю и снизить общую задержку.

Обзоры продуктов

Workers KV

Workers KV представляет собой согласованное в конечном счёте хранилище данных «ключ-значение», которое кеширует данные в глобальной сети Cloudflare.

Это идеальный вариант для проектов, которым требуется:

Чтобы начать работу с KV:

R2

R2 представляет собой S3-совместимое объектное хранилище, которое позволяет разработчикам хранить большие объёмы неструктурированных данных без платы за исходящий трафик, характерной для типичных облачных хранилищ.

Это идеальный вариант для проектов, которым требуется:

Чтобы начать работу с R2:

Durable Objects

Durable Objects обеспечивают координацию с низкой задержкой и согласованное хранилище для платформы Workers благодаря глобальной уникальности и транзакционному API хранилища.

Это идеальный вариант для проектов, которым требуется:

Чтобы начать работу с Durable Objects:

D1

D1 это встроенная бессерверная база данных Cloudflare. С D1 можно создать базу данных, импортировав данные или определив таблицы и написав запросы в Worker или через API.

D1 отлично подходит для:

Чтобы начать работу с D1:

Queues

Cloudflare Queues позволяет разработчикам отправлять и получать сообщения с гарантированной доставкой. Сервис интегрируется с Cloudflare Workers и предлагает доставку не менее одного раза, пакетную обработку сообщений и не взимает плату за исходящий трафик.

Queues отлично подходит для:

Чтобы начать работу с Queues:

Hyperdrive

Hyperdrive ускоряет запросы к базам данных MySQL и Postgres, обеспечивая быстрый доступ к данным из любой точки мира независимо от местоположения ваших пользователей.

Hyperdrive позволяет:

Чтобы начать работу с Hyperdrive:

Pipelines

Pipelines представляет собой потоковый сервис приёма данных, который позволяет принимать большие объёмы данных в реальном времени без необходимости управлять какой-либо инфраструктурой.

Pipelines позволяет:

Чтобы начать работу с Pipelines:

Analytics Engine

Analytics Engine представляет собой базу данных временных рядов и метрик Cloudflare, которая с помощью встроенного API позволяет записывать точки данных из Workers и вести аналитику с неограниченной кардинальностью в любом масштабе, а затем запрашивать эти данные напрямую с помощью SQL.

С Analytics Engine вы можете:

Cloudflare использует Analytics Engine внутри компании для хранения и формирования метрик по отдельным продуктам, таким как D1 и R2, в промышленном масштабе.

Чтобы начать работу с Analytics Engine:

Vectorize

Vectorize представляет собой глобально распределённую векторную базу данных, которая позволяет создавать full-stack приложения на основе ИИ с использованием Cloudflare Workers и Workers AI.

С помощью Vectorize вы можете:

Чтобы начать работу с Vectorize:

SQL в Durable Objects и D1

Cloudflare Workers предлагает serverless базу данных на основе SQLite: D1. Как следует сравнивать SQLite в Durable Objects и D1?

D1 является управляемым продуктом для баз данных.

D1 вписывается в привычную для разработчиков архитектуру, где серверы приложений взаимодействуют с базой данных по сети. Обычно в роли серверов приложений выступают Workers, однако D1 также поддерживает внешний доступ без Worker через HTTP API ↗, который помогает раскрыть сторонние инструменты поддержка D1.

D1 стремится предложить набор возможностей «из коробки», включая упомянутый выше HTTP API, управление схемой базы данных, импорт и экспорт данных, а также аналитика запросов к базе данных.

В D1 код вашего приложения и SQL-запросы к базе данных не находятся в одном месте, что может влиять на производительность приложения. Если производительность D1 вызывает опасения, в Workers есть Smart Placement чтобы динамически запускать ваш Worker в оптимальном месте и снижать общую задержку запросов Worker с учетом всех сервисов, с которыми он взаимодействует, включая D1.

SQLite в Durable Objects представляет собой низкоуровневый строительный блок вычислений с хранилищем для распределённых систем.

Durable Objects по замыслу доступны только из Workers.

Durable Objects требуют немного больше усилий, но взамен дают больше гибкости и контроля. При работе с Durable Objects нужно реализовать две части кода, которые выполняются в разных местах: Worker на переднем плане, направляющий входящие запросы из интернета к нужному Durable Object, и сам Durable Object, работающий на той же машине, что и база данных SQLite. Вы сами решаете, что где выполняется, и в некоторых случаях приложению выгодно выполнять часть бизнес-логики прямо рядом с базой данных.

При использовании SQLite в Durable Objects вам может понадобиться самостоятельно реализовать часть инструментов для работы с базой данных, которые в D1 доступны из коробки.

Тарификация и лимиты SQL-запросов должны быть одинаковыми для D1 (цены, ограничения) и SQLite в Durable Objects (цены, ограничения).

Запросите бесплатный пилот

Запланировать пилот