【问题标题】:Graph Databases - betting the company on it?图形数据库——把公司押在上面?
【发布时间】:2013-03-15 10:34:26
【问题描述】:

看看 Neo4j,320 亿的关系限制让我担心(想象一下 4000 万用户上传 500 张照片,有 500 个朋友,交 500 个 cmets 等等,不知不觉你已经超过 320 亿)。所以我有一些问题,必须确保我在使用哪个数据库方面做出了最佳选择。

在这里寻找主观答案或辩论 - 即。哪个更好等等 - 相反,由于 我将创业公司的未来押在使用什么图形数据库上,我需要知道不同数据库存在的风险,例如 Neo4j 的关系不超过 320 亿.

现在,有几家公司将他们的图数据库称为“领先的图数据库”。但让我们看看炒作 - 哪家公司拥有最多的资金支持?哪个数据库享有大型社区支持?哪一个背后有坚实的公司提供商业支持?

哪一个最有可能足够成熟,如果您愿意,您可以轻松创建 facebook?

根据技术特性或熟悉度来选择图形数据库很容易 - 但我要寻找的不仅仅是这些 - 我想确保离公司还有几年的时间。我想确保我不会基于炒作和它目前(暂时?)的势头选择使用 Neo4j...

还有哪些其他图表可以与 Neo4gj 抗衡以创建一个类似于 facebook 的成熟社交网络(再次强调,不是在寻找更好的,只是在寻找可靠的竞争对手)。

请不要让这变成主观的 Neo 与 Dex 辩论 - 请提供事实和可靠的答案..

【问题讨论】:

标签: ruby-on-rails graph neo4j social-networking


【解决方案1】:

所以我在去年测试并使用了图形数据库。我认为只有你足够了解你的数据,才能对你是否会有任何需要超过 320 亿个关系的节点做出有根据的猜测。我认为对于大多数人来说,这是一个限制的用例并不多。但这不是绝对的。

Neo4j 是一款出色的产品。有据可查,并且像 maxdemarzi 这样的人撰写了出色的博客文章 - 例如:http://maxdemarzi.com/ - 这将使任何人都能很快了解 Neo4j 的强大功能和复杂性。 (而且他是个好人,如果你有问题,他会回答你的问题)

如果规模是一个问题,我还建议您看看 Titan - http://thinkaurelius.github.com/titan/。这背后的人很聪明,它的目的是大规模的。它不像 neo4j 那样在市场上成熟,但它具有强大的功能,通过让您在 Cassandra、Hbase 和 BerkeleyDB 之间进行选择来进行底层存储,从而为您提供了一些优先级灵活性。

Neo4j 是一家资金雄厚、资金雄厚、收入丰厚的公司。它不会去任何地方。 Titan 较小,但我认为它处于快速上升的曲线中。

事实上,虽然这都是一个新空间。你没有得到像 Postgres、MySql 或 Oracle 的企业实力那样成熟的东西。我们不要自欺欺人。

然而,图形数据库社区相对较小、友好且乐于助人。它举办了很棒的活动——我参加了 Neo4j 的 GraphCon 活动,这很棒,而且我参加了 Titan 家伙的一些很棒的演讲。最终,如果你想成为 Facebook,无论你从什么开始,你最终都会建立自己的基础设施。有规模,然后是你需要拥有数据中心的规模——小国家规模。

最后一个想法。 4000 万用户的问题和您的底层基础设施挑战对于一家资金充足的成熟公司来说是一个问题。您不会获得 4000 万用户,也不会吸引资金或产生必要的收入来资助建设自己的基础设施。你现在绝对可以计划当你有 4000 万用户时。去吧。这就是初创公司早期阶段的乐趣所在。但你更大的问题是达到你的第一个一百万或一千万。对于这种用途,无论哪种数据库都能让您以可靠的产品最快地进入市场。

【讨论】:

  • You're not getting anything as established as Postgres, MySql or the corporate strength of Oracle. 这个。可扩展性很重要,但4000万用户,320亿关系限制……真的吗??让我们变得真实。他应该只使用 mysql 或 postresql。
  • " 为此,使用这些数据库中的任何一个都可以让您以可靠的产品最快地进入市场。" - 一个很好的声明.. 正如你所说,当我们达到 4000 万用户等时,资金将在附近 - 我们现在可以计划,但稍后再为它付费和设计.. 感谢您的见解.. 我会看看在泰坦也是如此
  • 如果您决定研究 Titan,我总是热衷于与其他尝试它的人交谈,所以请随时与我联系...它没有那么多用例示例在网络上,并且仍然是新的,所以很高兴与尝试它的人交谈。
【解决方案2】:

自 2010 年以来,我们一直在与 Neo4j 合作,不仅将我们的公司押注于此,而且还在开源项目上投入了大量时间 (http://www.ohloh.net/p/structr)。 2012 年 2 月有一篇博文,您可以在其中阅读详细信息:

http://structr.org/blog/the-story-behind-structr

诚然,我们公司很小。但是我们已经并且正在使用 Neo4j 完成大约十几个项目,并且对结果非常满意。

Neo4j 背后的社区充满活力、开放且总是非常支持。你应该去参加一个聚会活动来了解一下。 :-)

正如理查德所说,财务事实是毫无疑问的。我觉得最令人印象深刻的是,Neo Technology 的人尽管是一家必须创造收入的商业公司,但他们是真正的狂热者,他们知道并热爱他们所做的事情,并且真正致力于开源模式。

所以是的,我有偏见,但并非没有理由。 :-)

【讨论】:

  • 爱好者 +1 - 如果您对图形数据库感兴趣,我强烈建议您参加 neo4j 聚会 - 团队很棒
【解决方案3】:

免责声明:我为 Neo4j 工作/与 Neo4j 一起工作

这里只谈成熟度(不是技术细节)——Neo Technology 作为一家拥有超过 50 employees, $25M funding 的公司和拥有 50 万次下载量、每月运行 3 万个新数据库和活跃社区的蓬勃发展的用户群将获胜不要走开。您也可以查看SO questions 以查看社区活动。

我们在许多领域都有一组健康的customers,来自 Adob​​e(在 Neo4j 上运行创意云)、思科(Org-Management、MDM)、Viadeo 等社交网络和许多求职公司(GlassDoor 和其他人)给像五十三这样的初创公司,他们在 iOS 上发布了流行的“Paper”应用程序。

我们的社区网站 neo4j.org 应该是一个不错的起点,您可以在那里找到 introductory content 以及有关 programming languagesdriversdeployments 的信息,这些信息应该可以帮助您入门。

Emil、Ian 和 Jim 与 O'Reilly 一起编写了一本关于“图形数据库”的介绍性书籍,目前可通过 free ebook download 获取。

因此,您看到我们不仅关心我们自己的产品,还关心更大的图生态系统,还有许多 conference talksmeetup groups(全球 41 个)和对开源生态系统的支持。

希望能帮助你做出决定。

附:关于您的担忧: 大小限制(无论如何都是人为的)will be increased this year

【讨论】:

  • 我应该注意的另一件事...neo4j 家伙反应迅速且易于使用,因此这是对他们的一个很大的点头 :-)
【解决方案4】:

Michael 打败了我,但让我补充一下,回答 Neo4j,并让其他人回应其他技术。

以下链接包含有关 Neo4j 社区状态、产品采用情况以及产品背后的公司的各种事实:

http://blog.neo4j.org/2013/01/2012-year-in-review-happy-2013-it-looks.html

下面的链接介绍了今年的路线图,其中包括取消当前的大小限制。限制只是一种空间性能优化,当性价比略有不同时选择回来。今年我们会做一些工作来增加一些指针大小,并在接下来的几个月里发布一个没有实际上限的版本:

http://blog.neo4j.org/2013/01/2013-whats-coming-next-in-neo4j.html

在一个 Neo4j 集群中,有一半的 Facebook 社交图谱的生产安装在高度活跃的网站的背后。我所知道的唯一跨区域 Amazon 数据库集群(对于任何数据库管理系统)是在 Neo4j 上运行的:10 个实例分布在美国、亚洲和欧洲之间。世界上最大的包裹递送服务之一使用 Neo4j 完成所有包裹路由,峰值时每秒路由 2000 多个包裹。当包裹滑下滑槽时,决定是实时做出的。他们于去年秋天上线,圣诞节能够为数以千万计的人举行。还有很多。这是一个样本。

欢迎来到令人敬畏的图表世界!无论您最终选择哪种解决方案,我们都很高兴您成为图形数据库社区的一员。

菲利普

【讨论】:

    【解决方案5】:

    我的建议是在 Blueprints 等标准 API 上构建您的应用程序。主蓝图页面列出了各种可用的实现。这样,您就不会被锁定,可以根据您的需求(规模、速度、价格)和当时的市场状况选择最佳实施方案。

    【讨论】:

      【解决方案6】:

      要增加出色的响应,您还需要考虑许可。如果你的项目是完全开源的并且满足 GPLv3 的要求,那么像 neo4j 这样的东西是一个很好的选择。但是,如果您在专有系统中使用它,则需要购买 neo4j 企业许可或使用许可限制较少的其他数据库(MIT 或 Apache 2 许可),例如 Titan。

      这是查看许可证的绝佳资源:http://en.wikipedia.org/wiki/Graph_database

      【讨论】:

      • 好点 - 我们计划购买企业版.....这并不意味着我们不会考虑任何其他系统..
      • 我不是律师,但我很确定这不是 GPL 的运作方式。据我了解,您的应用不一定必须是 GPL 才能使用 neo4j,原因有很多: * 首先,neo4j 提供了 GPL 未涵盖的 REST 接口,它专门讨论链接对象代码。 * 其次,GPL 真的是关于软件的分发。按照我的理解,如果你下载一个 GPL C++ 库并将其链接到你的二进制程序中,那么在你与其他人共享该二进制程序而不提供源代码之前,你并没有违反 GPL。
      【解决方案7】:

      你的要求和你应该关注的是两件不同的事情。

      虽然以下内容不能回答您的问题,但我希望它可以帮助您和其他开发人员考虑这里的真正作用:

      • 要求和目标并不总是很明确 - 没关系。事情发生了变化,您的产品应该能够随着这些变化而滚动。这就是初创企业的本质。因此,我建议:关注产品,而不是实施。换句话说,构建一个数据库实现的抽象(例如 Blueprint - Neo4j 实现),而不是实际的实现,这样您就不会被锁定或被许可问题所阻碍。如果需要,您将能够轻松切换数据库实现。将来,您将更清楚地了解您最初决定的正确性。最重要的是,准备好在需要时进行更改。

      【讨论】:

        猜你喜欢
        • 2016-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-22
        • 2012-05-27
        • 2013-07-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多