35

看着 Neo4j,320 亿的关系限制让我担心(想象一下上传 500 张照片、有 500 个朋友、发表 500 条评论等的 4000 万用户,不知不觉中你已经超过 320 亿)。所以我有些担心和必须确保我对使用哪个数据库做出了最佳选择。

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

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

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

选择一个关于技术特性或熟悉度的图形数据库很容易——但我正在寻找的不止这些——我想确保离公司还有几年的时间。我想确保我不会基于炒作和它目前(暂时?)的势头选择使用 Neo4j……

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

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

4

7 回答 7

17

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

这里只谈成熟度(不是技术细节)—— Neo Technology作为一家拥有50 多名员工、2500 万美元资金和蓬勃发展的用户群(下载量达 50 万次)、每月运行 3 万个新数据库和活跃的社区的公司不会离开。您还可以查看SO 问题以查看社区活动。

我们在许多领域拥有健康的客户群,从 Adob​​e(在 Neo4j 上运行创意云)、思科(Org-Management、MDM)、Viadeo 等社交网络和许多求职公司(GlassDoor 等)到初创公司,如五十三在 iOS 上发布了流行的“Paper”应用程序。

我们的社区网站 neo4j.org 应该是一个不错的起点,您可以在那里找到介绍性内容以及有关编程语言驱动程序部署的信息,这些信息可以帮助您入门。

Emil、Ian 和 Jim 与 O'Reilly 一起编写了一本关于“图形数据库”的介绍性书籍,目前可免费下载电子书

所以你看到我们不仅关心我们自己的产品,还关心更大的图生态系统,还有许多会议演讲聚会小组(全球 41 个)和对开源生态系统的支持。

希望能帮助你做出决定。

PS关于您的担忧:今年将增加尺寸限制(无论如何都是人为的)。

于 2013-03-25T23:31:28.267 回答
15

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

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

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

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

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

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

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

于 2013-03-25T19:56:34.273 回答
10

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 多个包裹。当包裹从滑槽滑下时,决定是实时做出的。他们于去年秋天上线,圣诞节能够为数以千万计的人举行。还有很多。这是一个采样。

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

菲利普

于 2013-03-25T23:49:30.700 回答
10

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

于 2013-05-02T14:45:12.223 回答
6

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

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

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

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

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

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

于 2013-03-25T22:57:03.263 回答
1

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

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

于 2013-06-20T05:41:59.530 回答
0

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

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

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