首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >企业应用中的媒体存储

企业应用中的媒体存储
EN

Stack Overflow用户
提问于 2016-05-08 14:58:58
回答 4查看 71关注 0票数 0

目前,我们使用Oracle在应用程序中存储图像。但我们希望在应用程序中看到大量的图像/视频。我们希望摆脱甲骨文,以便能够轻松地分解和实现高吞吐量。有什么建议吗?

是否有人尝试使用NoSQL数据库,如Couchbase/MongoDB?是否为此目的进行了优化。

我看到Cloudinary为此使用了亚马逊S3。但我正在寻找一些东西,可以部署在我们的数据中心出于隐私考虑。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-08 21:08:32

从您的问题描述,我看不到任何指示pro或相反的NoSQL数据库。

在数据库中拥有像图片、声音或视频这样的媒体意味着只有一个大的未解释的二进制对象。未解释的意思是:数据库可以存储和传递二进制文件,但是不能分析它的属性,把它作为查询的基础,等等(创建数据库是为了什么)。

关系数据库和非关系数据库都为这种BLOB提供数据类型。例如,它们的不同之处在于,

  • 表格和树结构的数据结构--不适用于BLOB,因为它将是一个属性,不管它有多大,
  • 不同类型的事务逻辑(CAP定理)没有被BLOB主题处理。

因此,恐怕您的架构需要在更广泛的范围内决定,而不仅仅是考虑您的媒体数据。你的数据结构是哪一个?您的查询和更新方案是哪些?

票数 2
EN

Stack Overflow用户

发布于 2016-05-09 04:03:34

我看到人们使用Couchbase所做的是将有关图像的所有元数据存储在Couchbase中的JSON文档中,但是宿主图像本身是为文件优化的。你得到了这两个世界的好处。在这种用例中,根据我的经验,NoSQL数据库将比关系数据库好得多。

在管理了包含blobs的非常大的关系数据库和NoSQL数据库之后,IMO在大多数情况下都是一个糟糕的想法,不管数据库类型如何。所以我写了这篇博文就是为了这样的情况。

票数 2
EN

Stack Overflow用户

发布于 2016-05-09 07:29:52

当您在数据中心中寻找私有部署时,您可以考虑使用MongoDB或OpenStack Swift。

我见过人们使用MongoDB gridfs (https://docs.mongodb.com/manual/core/gridfs/)存储图像/视频。使用MongoDB网格资源的优点是:

  1. 您可以使用MongoDB副本集来实现容错/高可用性。
  2. 您可以在不将整个文件加载到内存的情况下访问大文件的一部分。由于MongoDB将文件存储在小块(255 be )中,所以视频文件可以更快地传输。
  3. 您可以使用MongoDB分片进行缩放。

Openstack Swift是一个高度可用的、分布式的、最终一致的对象/blob存储,类似于Amazon,您可以在数据中心中部署它。此外,许多公司都在使用OpenStack Swift,Rackspace的云文件运行Swift。您还可以查看Swift:http://docs.openstack.org/developer/swift/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37101202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档