Cloudflare即将可以托管sqlite

130次阅读

共计 3178 个字符,预计需要花费 8 分钟才能阅读完成。

https://blog.cloudflare.com/introducing-d1/

我们在 2017 年宣布了 Cloudflare Workers,允许开发人员访问我们网络上的计算。我们对这种解锁的可能性感到兴奋,但我们很快就意识到——大多数现实世界的应用程序都是有状态的。从那时起,我们交付了 KV、耐用对象和 R2,让开发人员可以访问各种类型的存储。

今天,我们很高兴地宣布 D1,这是我们的第一个 SQL 数据库。

虽然对测试版访问的等待时间应该不会太久——我们最早会在 6 月开始让人们进来(在这里注册),但我们很高兴分享一些关于即将到来的细节。

认识 D1,为 Cloudflare Workers 设计的数据库

D1 建立在 SQLite 上。SQLite 不仅是世界上最无处不在的数据库,每天有数十亿台设备使用,也是有史以来第一个无服务器数据库。惊讶吗?SQLite 在时代如此领先,在该术语获得云服务的内涵之前,它自称为“无服务器”,最初的意思是“不涉及服务器”。

由于 Workers 本身在服务器和客户端之间运行,并受到为客户端构建的技术的启发,SQLite 似乎非常适合我们首次进入数据库。

那么,你可以用 D1 构建什么?真正的答案是“几乎任何事情!”,这可能对激发想象力没有多大帮助,那么现场演示怎么样?

D1 演示:Northwind Traders

您可以通过尝试我们在这里运行的演示:northwind.d1sql.com 来查看 D1 的实际运行示例。

如果你想知道“谁是北风交易员?”,北风交易员就是“你好,世界!”如果你愿意,可以去数据库。微软将与 Microsoft Access 一起提供的示例数据库,用作他们自己的教程。它于 25 年前于 1997 年首次出现,您可以在互联网上找到许多使用它的例子。

这是一个典型的业务应用程序,具有现实的模式,具有许多外键,跨越许多不同的表——这是对数据的真正永恒表示。

Queso Cabrales 最近的订单是什么时候发货的,它在哪艘船上?你可以很快发现。有人打电话来点柴吗?好消息是,Exotic Liquids 仍有 39 台库存,每台仅需 18 美元。

我们欢迎您玩耍和闲逛,并回答您对 Northwind Trading 业务的任何问题。

Northwind Traders 演示还具有仪表板,您可以在其中找到有关幕后发生的 D1 SQL 查询的详细信息和指标。

你可以用 D1 构建什么?

然而,回到演示前的原始问题,您可以使用 D1 构建什么?

虽然您可能没有自己运行 Northwind Traders,但您可能正在某个地方运行一个非常相似的软件。即使在 Cloudflare 服务的核心也是一个数据库。一个充满表格、实例化视图和大量存储过程的 SQL 数据库。每次客户与我们的仪表板交互时,他们最终都会改变该数据库中的状态。

现实是,数据库无处不在。它们在您正在阅读的网页浏览器中,在手机上的每个应用程序中,以及银行交易、旅行预订、商务应用程序的存储空间中。我们使用 D1 的目标是帮助您构建从 API 到丰富而强大的应用程序的任何东西,包括电子商务网站、会计软件、SaaS 解决方案和 CRM。

您甚至可以将 D1 与 Cloudflare Access 相结合,并创建仅安全锁定在您组织中的人员的内部仪表板和管理工具。真的,世界就是你的牡蛎。

D1 开发人员体验

我们将在帖子中进一步讨论功能和即将推出的功能,但其核心是 D1 的优势是开发人员体验:允许您在瞬间从无到有的应用程序。回想一下您使用过的一个工具,它让开发感觉很神奇——这正是我们希望与 Workers 和 D1 一起开发的感觉。

为了让你了解它,以下是 D1 入门的样子。

创建您的第一个 D1 数据库

使用 D1,您只需单击几下即可创建数据库——定义表,插入或上传一些数据,除非您需要,否则无需记住任何命令。

当然,如果命令行是您的果酱,本周早些时候,我们宣布了新的和改进的牧马人 2,这是争吵和部署工人的最佳工具,很快也是您部署 D1 的工具。Wrangler 还将提供原生 D1 支持,因此您可以通过几个简单的命令创建和管理数据库:

从您的员工访问 D1

将 D1 附加到您的 Worker 就像创建新绑定一样简单。您附加到 Worker 的每个 D1 数据库都附加在 env 参数上自己的绑定:

或者,对于稍微复杂的示例,您可以使用路由器和参数化查询安全地将参数从 URL 传递到数据库:

那么,你能从 D1 中得到什么?

首先,我们希望您能够使用 D1 开发,而无需担心成本。

在 Cloudflare,我们不相信将您的数据扣为人质,因此 D1 与 R2 一样,将免费出口费用。我们的计划是通过对基本存储和执行的数据库操作收费来为存储产品定价 D1,就像我们为存储产品定价一样。

但是,同样,我们不希望我们的客户担心成本或如果他们的业务起飞会发生什么,他们需要更多的存储空间或有更多的活动。我们希望您能够构建您梦想的简单或复杂的应用程序。我们将确保 D1 的成本低于可比的集中式解决方案,性能更好。无服务器和像 Cloudflare 这样的全球网络的承诺是由我们的架构驱动的性能和更低的成本。

以下是 D1 中功能的小预览。

阅读复制

使用 D1,我们希望轻松地将整个应用程序的状态存储在一个地方,以便您可以在整个数据集中执行任意查询。这就是关系数据库如此强大的原因。

然而,我们认为强大不应该是繁琐的同义词。大多数关系数据库都是巨大的、整体的东西,配置复制并不微不足道,因此一般来说,大多数系统的设计都使所有读写流回单个实例。D1 采取了不同的方法。

有了 D1,我们希望从您手中取消配置,并利用 Cloudflare 的全球网络。D1 将创建数据的只读克隆,靠近用户的位置,并不断更新更改。

批次

应用程序中的许多操作不只是生成单个查询。如果您的逻辑在用户附近的 Worker 中运行,但每个查询都需要在数据库上执行,那么逐一通过电线发送它们效率极低下。

D1 的 API 包括批处理:无论在哪里可以发送单个 SQL 语句,您也可以提供它们的数组,这意味着您只需要一次 HTTP 往返即可执行多个操作。这非常适合需要原子执行和提交的事务:

嵌入式计算

但我们正在走得更远。使用 D1,可以定义直接在数据库旁边运行的 Worker 代码块,为您提供完全控制和最大性能——每个请求首先击中用户附近的 Worker,但根据操作的不同,可以移交给部署在副本或主 D1 实例旁边的另一个 Worker 以完成其工作。

备份和冗余

很少有比存储在主应用程序数据库中的数据这样重要的事情了,因此 D1 将通过一键恢复过程定期自动将数据库的快照保存到 Cloudflare 的云存储服务 R2。而且,由于我们正在建立持久对象的冗余存储,您的数据库可以根据需要物理移动位置,从而在几秒钟内从最具灾难性的问题中自行愈合。

导入和导出数据

虽然 D1 已经支持 SQLite API,使您可以轻松编写查询,但您可能还需要数据来运行它们。如果您没有创建全新的应用程序,您可能需要从其他来源或数据库导入现有数据集,这就是为什么我们将努力允许您将自己的数据带到 D1。

同样,SQLite 的优势之一是其可移植性。如果您的应用程序有一个专用的阶段环境,例如,您将能够将该数据的快照克隆到本地机器上进行开发。我们将增加更大的灵活性,例如能够为您的 Pages 项目上的每个新拉取请求创建一个带有一组测试数据的新数据库。

下一步是什么?

如果我们没有得出“我们才刚刚开始!”的结论,这不会是 Cloudflare 的公告——这是真的!我们对我们全球网络上的数据库打开的所有强大可能性感到非常兴奋。

您是否已经在考虑要使用 D1 和 Workers 构建什么?一样。告诉我们您的详细信息,我们将尽快为您提供访问权限——从 2022 年 6 月开始,请留意我们的测试版邀请!

网友回复:

注册 强大,cf 可玩性越来越高了

YorkZhao cf 托管 loc 全站指日可待

Tip 很牛逼,免费吗

小混混 这算不算挖下游墙角啊

js 攻城狮 都卖起对象存储了

正文完
 0