目前,我们使用Oracle在应用程序中存储图像。但我们希望在应用程序中看到大量的图像/视频。我们希望摆脱甲骨文,以便能够轻松地分解和实现高吞吐量。有什么建议吗?
是否有人尝试使用NoSQL数据库,如Couchbase/MongoDB?是否为此目的进行了优化。
我看到Cloudinary为此使用了亚马逊S3。但我正在寻找一些东西,可以部署在我们的数据中心出于隐私考虑。
发布于 2016-05-08 21:08:32
从您的问题描述,我看不到任何指示pro或相反的NoSQL数据库。
在数据库中拥有像图片、声音或视频这样的媒体意味着只有一个大的未解释的二进制对象。未解释的意思是:数据库可以存储和传递二进制文件,但是不能分析它的属性,把它作为查询的基础,等等(创建数据库是为了什么)。
关系数据库和非关系数据库都为这种BLOB提供数据类型。例如,它们的不同之处在于,
因此,恐怕您的架构需要在更广泛的范围内决定,而不仅仅是考虑您的媒体数据。你的数据结构是哪一个?您的查询和更新方案是哪些?
发布于 2016-05-09 04:03:34
我看到人们使用Couchbase所做的是将有关图像的所有元数据存储在Couchbase中的JSON文档中,但是宿主图像本身是为文件优化的。你得到了这两个世界的好处。在这种用例中,根据我的经验,NoSQL数据库将比关系数据库好得多。
在管理了包含blobs的非常大的关系数据库和NoSQL数据库之后,IMO在大多数情况下都是一个糟糕的想法,不管数据库类型如何。所以我写了这篇博文就是为了这样的情况。
发布于 2016-05-09 07:29:52
当您在数据中心中寻找私有部署时,您可以考虑使用MongoDB或OpenStack Swift。
我见过人们使用MongoDB gridfs (https://docs.mongodb.com/manual/core/gridfs/)存储图像/视频。使用MongoDB网格资源的优点是:
Openstack Swift是一个高度可用的、分布式的、最终一致的对象/blob存储,类似于Amazon,您可以在数据中心中部署它。此外,许多公司都在使用OpenStack Swift,Rackspace的云文件运行Swift。您还可以查看Swift:http://docs.openstack.org/developer/swift/
https://stackoverflow.com/questions/37101202
复制相似问题