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

PlanetScale Postgres & MySQL

Создавайте базы данных PlanetScale Postgres или MySQL вместе с глобально распределёнными приложениями на Workers.

Cloudflare сотрудничает с PlanetScale ↗ чтобы предоставлять Workers базы данных Postgres и MySQL (Vitess), размещённые на PlanetScale. Hyperdrive подключается Workers к базам данных PlanetScale со встроенным пулом соединений и кешированием запросов для более высокой производительности.

Используйте преимущества обоих продуктов: создавайте решения с учётом глобального распределения Workers и оптимизируйте региональный доступ к данным. Чтобы начать, создайте базу данных PlanetScale в панели управления Cloudflare.

Перейдите в Создайте базу данных PlanetScale ↗

Создание базы данных из командной строки

Вы также можете создать базу данных PlanetScale с оплатой через Cloudflare из командной строки с помощью PlanetScale CLI ↗ (pscale), используя Wrangler чтобы авторизовать платёжную часть запроса Cloudflare. Для этого требуется pscale v0.313.0 или новее.

Создайте авторизацию для выставления счетов:

npx wrangler hyperdrive planetscale signature

Эта команда выводит полезную нагрузку в формате JSON:

{
	"account_id": "<ACCOUNT_ID>",
	"timestamp": "<TIMESTAMP>",
	"signature": "<SIGNATURE>"
}

pscale database create принимает эту полезную нагрузку через свой --cloudflare-billing флаг. Передача @- заставляет PlanetScale CLI считывать его из стандартного ввода. Мы рекомендуем этот способ вместо передачи подписи в качестве аргумента командной строки:

npx wrangler hyperdrive planetscale signature | \
  pscale database create <DATABASE_NAME> \
    --org <PLANETSCALE_ORG> \
    --engine postgresql \
    --cloudflare-billing @- \
    --format json

pscale database create по умолчанию использует Vitess, поэтому передайте --engine postgresql для базы данных Postgres, а --format json рекомендуется, если выходные данные обрабатываются агентом.

Ваши учетные данные PlanetScale остаются известны только вам и pscale. Wrangler авторизует только сторону биллинга Cloudflare.

Подпись представляет собой криптографически подписанный токен, который разрешает создание базы данных с оплатой через ваш аккаунт Cloudflare. Обращайтесь с ней как с учётными данными и никому не передавайте.

См. документация PlanetScale ↗ для параметров pscale database create поддерживает.

Workers + PlanetScale

С Workers вы создаёте приложение, которое можно развернуть в любой точке глобальной сети Cloudflare, охватывающей 330+ городов. Развёртывание выполняется в один шаг, и пользователи в новых регионах получают доступ к приложению без развёртывания региональной инфраструктуры.

Вычисления Workers выполняются близко к вашим пользователям, обеспечивая низкую задержку. PlanetScale Postgres предоставляет региональные базы данных для управляющего слоя приложения или любых централизованных данных, которые не вписываются в модель распределения на периферии Cloudflare. Используйте её для таких данных, как клиенты, биллинг, настройки аккаунта и другие реляционные данные.

Hyperdrive служит связующим звеном между Workers и PlanetScale: он объединяет соединения с базой данных в пул и использует Cloudflare Кеш для подходящих запросов на чтение, чтобы приложение оставалось быстрым, даже если база данных централизована.

В чём ваша выгода?

Путь запроса пользователя к Workers, кэшам Hyperdrive, пулам подключений и PlanetScale.
  1. Выполняется рядом с пользователем. Когда пользователь отправляет запрос, Cloudflare направляет его в ближайшую локацию. Ваш Worker выполняется именно там, поэтому обработка запроса начинается рядом с пользователем.

  2. Проверьте наличие локально кешированных операций чтения. На том же сервере Cloudflare, который обрабатывает запрос Worker, Hyperdrive устанавливает соединение с вашей базой данных за считанные миллисекунды (p90 4 мс), чтобы клиент или драйвер базы данных мог сразу отправлять запросы. При установке соединения Hyperdrive выполняет TCP ↗ установлении соединения, TLS ↗ шифрование и аутентификацию клиента на одной локальной машине, что исключает сетевые циклы обмена данными и задержки при обращении к базе данных. После того как соединение с базой данных установлено, если Worker отправляет кэшируемый запрос на чтение и результат уже есть в кэше, Hyperdrive возвращает его, не покидая эту локацию.

  3. Пересылка при необходимости с промежуточным кешированием. Если локальный кэшированный результат отсутствует или запрос нельзя кэшировать, Hyperdrive отправляет его через сеть Cloudflare в локацию, ближайшую к вашей базе данных PlanetScale. Там Hyperdrive проверяет ещё один кэш, прежде чем запрос попадёт в базу данных; этот кэш пополняется за счёт множества запросов к вашей базе данных, что повышает частоту попаданий в кэш по принципу, похожему на многоуровневое кэширование .

  4. Обращайтесь к PlanetScale только при необходимости. Если результата нет ни в одном из кэшей, Hyperdrive отправляет запрос в PlanetScale, используя уже открытый пул соединений с базой данных. Операции записи и другие некэшируемые запросы всегда идут напрямую в PlanetScale, поэтому база данных остаётся источником достоверных данных. Несколько уровней кэширования снижают общую нагрузку на вашу базу данных.

Hyperdrive не сбрасывает кэш результатов чтения при записи вашим приложением в PlanetScale. Если для аутентификации, сессий, прав доступа или другого критичного сценария вашему приложению требуется согласованность чтения после записи, используйте для таких запросов отдельную конфигурацию Hyperdrive с отключённым кэшированием. См. Кеширование запросов для рекомендаций.

Опыт разработки с PlanetScale

Postgres или MySQL

Выберите PlanetScale Postgres или MySQL и продолжайте использовать привычные драйверы баз данных, библиотеки объектно-реляционного отображения (ORM) и инструменты SQL.

Производительность и надёжность

Запускайте рабочие базы данных на инфраструктуре PlanetScale, которая обеспечивает производительность и надёжность, необходимые рабочие нагрузки клиентов ↗.

Современный рабочий процесс разработки

Используйте ветки для разработки ↗ чтобы протестировать изменения базы данных, аналитика запросов ↗ чтобы понять производительность запросов, и Сервер Model Context Protocol (MCP) ↗ чтобы предоставить агентам доступ к аналитическим данным о базе данных, и всё это без администратора баз данных (DBA).

Биллинг Cloudflare

Если вы создаёте базу данных PlanetScale через панель управления Cloudflare, оплата списывается с вашего аккаунта Cloudflare: в счёте Cloudflare появится отдельная строка с расходами на PlanetScale. Цены на PlanetScale одинаковы независимо от того, создаёте и используете вы базы данных через Cloudflare или покупаете их напрямую у PlanetScale. Подробнее о ценах см. тарифы PlanetScale ↗. Изучить использование биллинга по каждой базе данных можно через панель PlanetScale панель управления ↗.

Часто задаваемые вопросы

Как получить поддержку по базе данных PlanetScale?

Поддержка баз данных PlanetScale, созданных через Cloudflare, предоставляется компанией PlanetScale на уровне Standard support или в рамках приобретённого вами плана поддержки PlanetScale. За помощью по базе данных PlanetScale обращайтесь к Поддержка PlanetScale ↗ с дополнительной информацией или напрямую свяжитесь с командой поддержки PlanetScale через портал поддержки PlanetScale ↗.

Как тарифицируется моя база данных PlanetScale?

Для аккаунтов Cloudflare с оплатой по факту использования база данных PlanetScale тарифицируется ежедневно, с момента создания и до удаления базы данных. Оплата взимается независимо от того, выполняете ли вы запросы и храните ли данные.

Начало работы

Создайте конфигурацию Hyperdrive и выполняйте запросы к базе данных из Workers.