使用文件系统(非数据库!)进行无架构数据 - 最佳实践

时间:2010-11-15 23:32:55

标签: database filesystems nosql relational-database schemaless

在阅读了我的另一个问题Using a Relational Database for Schema-Less Data后,我开始怀疑文件系统是否比关系数据库更适合存储和查询无模式数据。

为什么不直接将数据保存到文件系统,而不仅仅是在MySQL之上构建文件系统?需要计算索引,但现代文件系统非常稳定,具有复制,快照和备份功能等强大功能,并且可以灵活地存储无模式数据。

但是,我找不到使用文件系统而不是数据库的人的任何示例。

在哪里可以找到有关如何将无模式(或“面向文档”)数据库实现为文件系统顶层的更多资源?是否有人使用现代文件系统作为无模式数据库?

4 个答案:

答案 0 :(得分:15)

是的,文件系统可以作为类似NOSQL的数据库系统的特例。在任何设计决策中都可能会考虑一些限制:

优点:   -   - 简单,直观。

  • 利用多年的调优和缓存算法
  • 轻松备份,可能很容易群集
需要考虑的事情:

  • 元数据的丰富性 - 什么类型的 数据存储,它是如何存储的 你查询它们,你能拥有吗? 分层或多值属性

  • 查询元数据的速度 - 并非全部 fs特别优化 除了大小,日期以外的任何东西。

  • 无法加入查询(但是 这对NoSQL而言非常普遍)

  • 低效的存储空间使用(除非文件 系统执行块子分配, 你通常会每件4-16K 存储,无论大小)

  • 可能没有那种缓存算法 你想要它的目录结构
  • 往往不太可调,等等。
  • 备份解决方案可能有问题 取决于你如何存储东西 - 太深,每个节点的项目太多, 等 - 这可能会消除一个明显的 这种结构的优点。 锁定LOCAL文件系统的工作原理 当然,如果你打电话给 正确的惯例,但不一定 对于网络基础fileesytem(那些 问题已经解决了 方式,但它肯定是一种设计 问题)

答案 1 :(得分:1)

欢迎您查看我们的Solid File System,这是一个虚拟文件系统产品,内置支持文件元数据和搜索此数据的类似SQL的搜索机制。另请阅读article,其中介绍了在不同类型的存储中存储不同类型数据的好处。

答案 2 :(得分:0)

您可能需要考虑的一件事是Oracle的BFILE数据类型,它是指向磁盘上文件的指针。也许这可能是两个世界中最好的? Microsoft SQL服务器似乎不提供此功能。

答案 3 :(得分:0)

亚马逊S3的实施有一个很好的例子。

http://aws.amazon.com/s3/

这种实现是许多公司正在向前迈进的地方,因为它从根本上比关系数据库更好地扩展。这种方法很简单,而且有效,对于某些问题,它是一个很好的解决方案。对于亚马逊的S3,如果您不想担心自己存储数据的麻烦,那么它对于云存储尤其有用。