UStackUStack
Bunny Database favicon

Bunny Database

Bunny Database 是一个兼容 SQLite、全球分布的 SQL 服务,运行在 bunny.net 高速边缘网络之上,提供低延迟的按量计费数据库,并可在空闲时自动停机以节省成本。

Bunny Database

什么是 Bunny Database?

什么是 Bunny Database?

Bunny Database 是一项完全托管、兼容 SQLite 的 SQL 服务,专为在 bunny.net 快速、全球化的网络上“开箱即用”而打造。它可以让你轻松在靠近用户的位置创建并运行数据库,在应用规模增长的同时保持低延迟,而无需彻底重构应用架构。

作为一个简单易用的 DBaaS(Database-as-a-Service,数据库即服务),Bunny Database 将 SQLite 的熟悉体验与云服务的便捷性结合在一起。数据库在空闲时会自动停机,你只需为存储和实际发生的读写付费。你可以先从单一区域起步,随后根据业务扩张,在全球范围内逐步增加更多区域,为不同地区的用户就近提供读请求服务。

依托与 bunny.net 内容分发平台相同的基础设施,Bunny Database 为开发者提供了一种快速、可靠且高性价比的方式,用于处理以读取为主的工作负载,例如商品目录、元数据、用户资料以及配置数据等。

主要特性

  • 兼容 SQLite 的数据库引擎
    基于熟悉的 SQL 基础构建。Bunny Database 采用 SQLite 语义,几乎没有学习门槛,无需自定义查询语言,即可轻松上手。

  • 全球化、低延迟网络
    部署在 bunny.net 的全球基础设施上,你的数据库最多可从 41 个区域对外提供服务,大幅降低全球用户的往返延迟。

  • 从单一区域起步,随时扩展更多区域
    你可以先在一个区域创建数据库,随着用户规模增长,再扩展到更多区域。你可以在新的地理位置添加只读副本,而无需重构应用程序。

  • 空闲时自动停机
    当数据库处于空闲状态时,你只需承担存储成本。这让 Bunny Database 在流量波动或突发场景下依然具备极高的成本效率。

  • 按用量计费的定价模式
    根据读、写和存储用量进行透明计费:

    • 读取(Reads): 每十亿行 0.30 美元
    • 写入(Writes): 每一百万行 0.30 美元
    • 存储(Storage): 每活跃区域每 GB 每月 0.10 美元
      一个主区域会持续计费,而只读副本仅在实际提供流量服务的时间段内产生额外存储费用,并按小时计量。
  • 多种官方 SDK 支持
    通过官方 libSQL SDK 快速集成 TypeScript/JavaScript、Go、Rust,以及 .NET(通过 bunny.net 自家的 .NET SDK)。你也可以通过 HTTP 与数据库交互,实现自定义集成方案。

  • 简洁易用的 DBaaS 控制面板
    通过直观的仪表盘,只需几次点击即可创建数据库、连接应用、查看数据并监控性能。

  • 内置数据查看工具
    在界面中直接浏览数据表、运行 SQL 查询,对数据进行快速检查,无需额外安装客户端工具。

  • 性能指标与监控
    随着数据库扩展,你可以监控延迟、流量和存储使用情况,帮助你优化性能与成本。

  • 快速上手与免费试用
    无需信用卡即可开启 14 天免费试用,大约两分钟即可完成环境搭建。在公开预览期间,Bunny Database 可免费使用。

  • 与其他 bunny.net 工具无缝配合
    将 Bunny Database 与 Edge Scripting(在边缘运行 TypeScript/JavaScript)以及 Magic Containers(用于长期开启的容器工作负载)结合使用,即可在同一平台上构建完整的全球分布式应用。

如何使用 Bunny Database

  1. 注册并开启免费试用
    创建或登录你的 bunny.net 账号,进入 Bunny Database 页面。启动 14 天免费试用——无需绑定信用卡。

  2. 创建你的第一个数据库

    • 在仪表盘中打开 Bunny Database 部分。
    • 点击创建新数据库。
    • 为数据库设置名称。
    • 选择初始主区域(之后可以新增更多区域)。
    • 确认部署。你的数据库将一键完成开通。
  3. 生成访问令牌

    • 在数据库设置中,为你的应用创建 访问令牌(access tokens)
    • 将这些令牌配置为应用或脚本中的环境变量。
    • 你可以为不同环境(开发、预生产、生产)分别创建独立令牌。
  4. 通过 SDK 或 HTTP 连接

    • 安装官方 SDK(TS/JS、Go、Rust、.NET),或基于 HTTP 配置自定义集成。
    • 使用仪表盘中提供的连接字符串和访问令牌。
    • 在应用代码中初始化客户端,开始执行 SQL 查询。
  5. 设计 Schema 并迁移数据

    • 使用标准 SQL(CREATE TABLE、ALTER TABLE 等)定义数据库 Schema。
    • 将商品目录、用户档案或配置等初始化数据写入数据库。
    • 你可以直接在仪表盘中执行 SQL,也可以通过应用程序进行操作。
  6. 在界面中查看和调试数据

    • 打开仪表盘中的 数据查看(data inspection) 区域。
    • 查看数据表、执行临时查询,并验证应用是否按预期进行读写操作。
  7. 随业务扩展添加更多区域

    • 当你在新的地区获得用户时,可以新增对应区域的只读副本。
    • 在应用或 SDK 配置中使用就近的只读区域,以进一步降低访问延迟。
  8. 监控性能与使用情况

    • 使用监控面板查看 延迟、流量和存储 指标。
    • 根据需要调整区域布局、查询模式及数据模型,以在性能和成本之间取得平衡。

适用场景

1. 商品目录与各类索引

Bunny Database 非常适合承载以读取为主的 商品目录、地理位置目录以及内容索引。你可以存储结构化数据——如商品详情、门店位置或文章元数据——并从靠近用户的区域提供读取请求,即使面对全球用户,也能保持流畅的浏览体验。

2. 元数据与筛选层

对于大量依赖 标签、类别、标记和查找数据 的应用,Bunny Database 可以提供快速且一致的元数据层。你可以将过滤条件、分类信息以及关系配置存储在数据库中,为 API 和前端提供高效的条件筛选。按量计费和空闲自动停机可以大幅降低以元数据为主的工作负载成本。

3. 用户档案与偏好设置

你可以使用 Bunny Database 存储 用户档案、偏好设置以及轻量级账号数据。借助多区域部署和低延迟访问,无论用户身处何地,资料读取和更新都能保持迅捷体验。这非常适合需要快速访问用户资料的 SaaS 应用、社区平台和消费类 Web 服务。

4. 应用配置与功能开关

在 Bunny Database 中管理 多租户配置、环境参数以及功能开关(feature flags)。将配置集中存储在全球分布式数据库中,可以让你的应用和服务从就近区域快速读取设置,从而降低启动和运行时延迟。

5. 与 bunny.net 打造边缘原生应用

将 Bunny Database 与 Edge ScriptingMagic Containers 结合使用,构建真正的边缘原生应用。例如:

  • 使用 Edge Scripting 在边缘节点运行 TypeScript/JavaScript 逻辑。
  • 在 Bunny Database 中存储配置、用户上下文或缓存聚合结果。
  • 使用 Magic Containers 承载长时间运行或专用型工作负载。
    通过这一技术栈,你可以在无需自建基础设施的前提下,构建低延迟、全球分布式的应用。

常见问题(FAQ)

Bunny Database 是否兼容 SQLite?

是的。Bunny Database 基于 SQLite 构建,并设计为兼容 SQLite,这意味着你可以继续使用熟悉的 SQL 语法和模式。官方 SDK 基于 libSQL 实现,让你像操作本地 SQLite 数据库一样与之交互,但由云端托管并提供管理能力。

Bunny Database 的价格如何计费?

Bunny Database 采用 按量计费 模式,基于实际使用情况收费:

  • 读取(Reads): 每十亿行 0.30 美元
  • 写入(Writes): 每一百万行 0.30 美元
  • 存储(Storage): 每活跃区域每 GB 每月 0.10 美元
    当数据库处于空闲状态时,只会产生存储费用。一个主区域会持续计费,而只读副本仅在实际承载流量时才按小时增加存储费用。在公开预览期间,Bunny Database 可免费使用。

目前支持哪些区域?

在创建和扩展 Bunny Database 部署时,你最多可以在全球 41 个区域 中进行选择。你可以先从一个主区域开始,随后根据用户分布逐步增加更多区域,以降低不同地区用户的访问延迟。

我该如何将应用连接到 Bunny Database?

你可以通过 官方 SDKHTTP 进行连接:

  • 使用针对 TypeScript/JavaScript、Go、Rust 的 libSQL SDK,或 bunny.net 提供的 .NET SDK
  • 使用 bunny.net 仪表盘中提供的数据库终端地址和访问令牌配置连接。
  • 对于自定义运行环境或工具,你也可以使用提供的 API 通过 HTTP 集成。

Bunny Database 最适合哪些类型的工作负载?

Bunny Database 针对 以读取为主的工作负载 进行了优化,尤其适用于基于结构化数据的场景。典型用例包括:

  • 商品目录和内容目录
  • 元数据层与筛选层
  • 用户档案与偏好设置
  • 应用配置与功能开关 对于写入极其频繁、事务要求极高或关系模型异常复杂的场景,你可能需要进一步评估 Bunny Database 的架构及其全球分布模型是否满足你的特定需求。

Bunny Database 是否能与其他 bunny.net 产品集成?

可以。Bunny Database 运行在与其他 bunny.net 工具相同的平台上,并可与以下产品协同工作:

  • Edge Scripting:在靠近用户的边缘节点执行 TypeScript/JavaScript 逻辑。
  • Magic Containers:承载持续运行的容器化工作负载。
    通过这些服务的组合,你可以构建真正分布式的应用,兼具全球性能与统一的开发体验。
Bunny Database | UStack