大数跨境

Blob 存储作为数据库:愚蠢的想法还是被低估的技巧?

Blob 存储作为数据库:愚蠢的想法还是被低估的技巧? 索引目录
2025-10-30
2
导读:关注「索引目录」公众号,获取更多干货。副标题:我为什么尝试将结构化数据存储在 Blob 中以及实际发生了什么1. 钩子大家都劝我不要把 Azure Blob 存储当作数据库来用。

关注「索引目录」公众号,获取更多干货。

副标题:我为什么尝试将结构化数据存储在 Blob 中以及实际发生了什么


1. 钩子

大家都劝我不要把 Azure Blob 存储当作数据库来用。但我还是决定试一试。

我遇到一个用例,它并不需要搭建 SQL 或 Cosmos DB,只需要以低成本持久化一些结构化的、半静态的 JSON 数据,并允许全局访问。Blob 存储看起来太简单了,不容忽视。

所以我问自己:我能否让 Blob 存储像数据库一样运行?剧透一下:它在某种程度上奏效了。


2. 概念

基本思路如下:

  • 每个记录都是一个数据块(例如,一个 JSON 文件)。
  • 每个容器都是一个逻辑表
  • blob 名称充当主键(例如users/user-123.json)。
  • Blob 版本控制让你可以免费进行时间旅行或查看历史记录。

一个简单的 .NET 示例:

var blob = containerClient.GetBlobClient($"users/{userId}.json");
await blob.UploadAsync(BinaryData.FromObjectAsJson(user));

你之后可以再读一遍:

var blob = containerClient.GetBlobClient($"users/{userId}.json");
var data = await blob.DownloadContentAsync();
var user = data.Value.Content.ToObjectFromJson<User>();

没有模式,没有迁移,没有 SQL。只有数据块。


3. 好处(为什么它并非完全愚蠢)

  • 价格低得离谱
    :每 GB 仅需几分之一美分。
  • 全球复制
    :可与 CDN 集成。
  • 模式灵活
    :可存储任何 JSON 结构。
  • 内置版本控制
    :blob 版本控制类似于记录历史记录。
  • 非常适合静态或很少变化的数据
    :配置、静态数据集、日志或预先计算的 AI 输出。

实际应用案例:我将预渲染的仪表盘快照存储在 Blob 存储中,并通过 CDN 直接提供服务。加载速度极快,无需计算,也无需数据库调用。


4. 痛点(为什么这有点蠢)

  • 没有查询引擎
    :必须加载所有内容才能进行筛选或搜索。
  • 不进行事务处理
    或并发处理。
  • 高延迟
    :每次读写操作都是一次网络调用。
  • 有限的原子操作
  • 元数据扩展
    :列出数据块数万个之后,速度会变慢,成本也会增加。

当数据量达到 5 万左右时,列表性能明显下降。最终,我添加了一个轻量级的 Redis 索引来跟踪数据块的键。


5. 混合技巧

接下来事情变得有趣起来了。

如果 Blob 存储不是数据库,而是一个单独的层呢?

例如:

App -> Redis index -> Blob for data payload -> CDN edge cache

这种混合方法效果非常好:

  • Redis 存储键和元数据,以实现快速查找。
  • Blob 存储用于保存大型、不可变的有效负载。
  • CDN负责全球缓存。

现在,您拥有了快速、廉价且可靠的解决方案,而无需假装 Blob 存储是 SQL Server。


6. 判决

Blob 存储不会取代你的关系型数据库。它并非为动态查询、事务或实时更新而构建。

但作为冷存储层仅追加日志版本化配置存储库,它的表现却出奇地优雅。而且,当与内存索引或 CDN 缓存结合使用时,它的性能远超其自身规模。

Blob 存储并不笨,只是被误解了。

如果使用得当,它可以使您的架构更简单、更便宜、更具可扩展性。


7. 可选附加项目

如果你想进一步了解:

  • 测试上传/下载速度,包括.OpenReadAsync()并行上传。
  • 使用 Azure Functions 自动索引 Blob 元数据。
  • 探索 Blob 存储版本控制,实现不可变事件溯源。

最后想说的话

我不建议初创公司使用 Blob 构建核心数据库。但如果你拥有结构化、不经常更改且不需要查询的数据,那么这可能是Azure 中最被低估的技巧之一。


关注「索引目录」公众号,获取更多干货。


【声明】内容源于网络
0
0
索引目录
索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
内容 444
粉丝 0
索引目录 索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
总阅读12
粉丝0
内容444