INTEGRITY Документация

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

В этом руководстве описаны продукты для хранения данных и работы с базами данных, доступные в составе 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 (цены, ограничения).