【问题标题】:Storing media in Enterprise Application [closed]在企业应用程序中存储媒体 [关闭]
【发布时间】:2016-09-03 05:28:58
【问题描述】:

目前我们使用 Oracle 在应用程序中存储图像。但我们希望在应用程序中看到很多图像/视频。我们希望远离 oracle,以便能够轻松分片并实现高吞吐量。有什么建议吗?

有没有人为此尝试使用 NoSQL 数据库(例如 Couchbase/MongoDB)?它们是否为此目的进行了优化。

我看到 Cloudinary 为此使用了 Amazon S3。但我正在寻找一些可以部署在我们的数据中心中以解决隐私问题的东西。

【问题讨论】:

    标签: oracle mongodb amazon-s3 couchbase cloudinary


    【解决方案1】:

    根据您的问题描述,我看不出任何支持或反对 NoSQL 数据库的迹象。

    在数据库中拥有图片、声音或视频等媒体意味着只有一个大型未解释的二进制对象。未解释的意思是:数据库可以存储和交付二进制文件,但不能分析它的属性、将其作为查询的基础等等(数据库的用途)。

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

    • 表格结构与树结构数据结构 - 不适用于 BLOB,因为无论它变得多大,它都是一个属性,

    • BLOB 主题未解决的不同类型的事务逻辑(CAP 定理)。

    因此,恐怕您的架构需要在更广泛的范围内做出决定,而不仅仅是考虑您的媒体数据。你的数据结构是什么?您的查询和更新场景有哪些?

    【讨论】:

    • 感谢您的回复。目前我们确实有一个关系数据库,它存储一些关于图像的元数据。该关系数据库还存储有关数百万其他事物的信息。所以现在真的很难摆脱它。我真正想要的是一种优化的文件存储机制,可以轻松扩展以适应大容量。并将其与我当前的 RDB 结合使用。由于这仅用于存储图像,因此事务不是一个大问题。 2PC协议没问题。
    • 你看过像 Nuxeo 这样的解决方案吗?
    【解决方案2】:

    我看到人们使用 Couchbase 所做的是将有关图像的所有元数据存储在 Couchbase 中的 JSON 文档中,但托管图像本身是针对文件优化的。您将获得两全其美的好处。在您提到的这种用例中,根据我的经验,NoSQL 数据库将比关系数据库好得多。

    在管理包含 blob 的非常大的关系数据库和 NoSQL 数据库后,IMO 在大多数情况下这是一个糟糕的主意,无论数据库类型如何。所以我wrote up this blog post就是针对这种情况。

    【讨论】:

    • 感谢您的回复。实际上,我在发布此问题之前阅读了您的博客文章。这是一本非常有趣的书。目前我们确实有一个关系数据库,它存储一些关于图像的元数据。此关系数据库存储有关数百万其他事物的信息。所以现在真的很难摆脱它。我真正在寻找的是一种优化的文件存储机制,它可以轻松扩展以适应大容量。并将其与我当前的 RDB 结合使用。
    【解决方案3】:

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

    我见过有人使用 MongoDB gridfs (https://docs.mongodb.com/manual/core/gridfs/) 来存储图像/视频。 使用 MongoDB gridfs 的优势:

    1. 您可以使用 MongoDB 副本集来实现容错/高可用性。
    2. 您可以访问大文件的一部分,而无需将整个文件加载到内存中。由于 MongoDB 将文件存储为小块 (255KB),因此可以更快地流式传输视频文件。
    3. 您可以使用 MongoDB 分片进行扩展。

    Openstack Swift 是一种高度可用、分布式、最终一致的对象/blob 存储,可与 Amazon S3 相媲美,您可以将其部署在您的数据中心中。 许多公司也在使用 OpenStack Swift,Rackspace 的 Cloud Files 运行 Swift。你也可以看看 Swift : http://docs.openstack.org/developer/swift/

    【讨论】:

      【解决方案4】:

      S3 对隐私有着非常坚定的承诺。您对 S3 有什么顾虑?另外,您打算从 Oracle 的存储中移除哪个数据中心?

      【讨论】:

        猜你喜欢
        • 2013-05-21
        • 1970-01-01
        • 2013-07-04
        • 2017-01-22
        • 2020-01-08
        • 1970-01-01
        • 1970-01-01
        • 2012-07-09
        • 1970-01-01
        相关资源
        最近更新 更多