标签: graph-databases

neo4j - 图形数据库以及关系数据库?

这是一个关于最佳实践的问题,我知道有很多不同的选择可以做到这一点,但我想你的意见如何解决这个问题.请将其视为在此系统中性能至关重要,换句话说,可扩展.

我最近发现了图形数据库的奇迹,所以我想出了一个公司想要管理它的客户关系的理论情况,为了做到这一点,他们将使用neo4j,这是伟大的,并允许真正伟大的管理客户,不同员工及其关系,这一切都很棒,但公司现在想要创建一个需要身份验证的基于Web的界面,neo4j数据库中的任何人都应该能够登录系统才能看到它们如何与公司数据库中的其他人相关联,因此每个用户必须具有与其姓名相关联的密码/电子邮件/ ID.

所以我的问题是,在这种情况下,最好将password_hash/password_salt/id/email存储在mysql数据库中,然后根据节点在mysql数据库中查找它.或者将password_hash/password_salt/id/email存储在节点内的哈希表中更好.

此外,每个商店都有1000多种产品,它们可以存储在图形数据库中,或者我可以将产品存储在mysql数据库中,然后在那里查找产品,并在那里进行更改,因为产品彼此无关,所以没有必要将它们存储在图形数据库中,那么它们是否应该存储在那里以提高性能?

所以我的问题归结为:大型项目最好是使用图形数据库以及更常见的rdms数据库,如mysql?如果没有,那么你开始使用这两个数据库系统的重点是什么?

因缺乏有关数据库术语的知识而提前道歉.

rdbms neo4j nosql graph-databases

8
推荐指数
1
解决办法
2038
查看次数

图表数据库的变更管理?

我最近接触过图形数据库的世界.对于像我这样的老式关系狗来说,这是一个非常有趣的范式转换.

最近,我一直在修补liquibase,它是管理数据库的一个很好的工具.

因此,两个世界发生冲突,我只是想知道是否有任何工具可以对图形数据库进行类似liquibase的变更管理.我特别感兴趣neo4jorientdb.

neo4j graph-databases

8
推荐指数
2
解决办法
1513
查看次数

用于原型设计的轻量级图形数据库

为了进行原型设计,我正在寻找一个轻量级的图形数据库 - 本质上是Memcached,Redis或SQLite的等效图形; 使用和部署的东西很简单(在JavaScript/Ruby/Python/Go/...环境中).

虽然Neo4j提供了我想要的一切,但对于我的目的而言,它有点重量级.

我发现的最接近的是HeliosJS,虽然它使用的是Gremlin,而我更喜欢Cypher.

任何建议将不胜感激.

graph-databases

8
推荐指数
1
解决办法
2343
查看次数

Neo4j - 在图表中存储医疗症状

我正在使用Neo4j图数据库来存储医学症状和疾病.这背后的目的是提供一个人可以从用户进入系统的症状中获得疾病的建议.现在我存储了如下各种症状.医疗症状

这是一个非常基本的图形结构,我通过密码查询匹配模式来检索疾病,例如发烧,头痛和流感的原因交集.我想要实现的是构建一个涉及位置和年龄因子等的复杂结构,并编写各种算法以通过有效遍历来检索连接最多的节点.我无法在互联网上找到如此复杂的结构,所以任何建议都会受到赞赏.尽管问题编码不多,但请提出一些建议,因为它只是一个大学项目,我必须更进一步.

graph non-relational-database neo4j graph-databases cypher

8
推荐指数
1
解决办法
1096
查看次数

图表数据库更适合最短路径算法吗?

我的目标是为道路网络编写最短路径算法.

目前我的架构是这样的:我将所有数据存储在启用PostGIS的PostgreSQL数据库中.我做了一个SELECT * FROM ways,在一个有100,000个边缘(方式)的表上花了不到3秒钟,然后我将(Java,Ruby或任何基于任何东西的)最短路径算法应用于已经驻留在内存中的图形.在具有100,000个边缘的图形上,第二个操作可能需要大约1.5秒.

所以,它需要:

  • 2-3秒将数据库中的所有路径加载到内存中并创建图形(节点以方式(边缘)存储在一个表中);
  • 1-1.5秒计算已经在内存中的图形上的最短路径.

这与pgRouting非常相似(根据我的知识,它使用C Boost将图形存储在内存中),除了pgRouting总计大约需要2秒来计算同一数据集上的最短路径(是的,它很快,但是对我来说这是一个黑盒子,所以我需要自己的).

但最近我发现了Graph数据库和Neo4j.在他们的网站上,他们声称"仍然能够在数百万道路和航路点的图表上以亚秒速度进行这些计算,这使得在许多情况下放弃使用K/V存储预先计算索引的正常方法并且能够将路由放入关键路径,可以适应现场条件,建立高度个性化和动态的空间服务."

所以问题是:对于我的特定问题,图表数据库会更快吗?

该问题具有以下属性:

  • 数据库由一个表(方式)组成;
  • 对数据库的唯一查询是获取进入内存的所有方法(构建图形);
  • 我不需要可伸缩性,即图形可能不会增长.

database graph shortest-path neo4j graph-databases

7
推荐指数
1
解决办法
4091
查看次数

从用户的关注者计算用户的重要性或"中介中心性"?

我想知道如何在用户帐户之间找到有趣的关系,例如最多连接或最有价值的用户,这些用户基于他们与他人的连接.

下面我有我使用的两个表.一个拥有所有用户,另一个拥有他们关注的用户的密钥.

User
{
    id,
    name
}

Follows {
    user_id -> user.id,
    following_id -> user.id
}
Run Code Online (Sandbox Code Playgroud)

我在寻找什么类型的算法?

假设不重要的人很少或没有粉丝,我怎样才能找到图中心的人?我认为他们会很重要,因为他们有重要的人跟随他们.

更新

正如大卫和史蒂夫指出的那样,给定节点的接近程度,子社区形成的节点以及连接最多的用户都是可以从此模式中提取的有用数据的示例.

由于现在许多站点都使用了这种"跟随者"设计,因此我希望获得一些可能对各种各样的人有用的可靠的SQL或编程语言实现.

值得注意的是,虽然某些算法的结果令人着迷,但其他算法(例如查找相关节点)对我们网站的用户来说是值得的,因为我们可以向他们推荐.

php rdbms data-mining graph-databases

7
推荐指数
1
解决办法
1325
查看次数

在图数据库中保留节点和关系历史记录

我正在尝试使用带有节点和关系的Graph DB来实现解决方案.需要用户可能希望对节点的历史数据运行报告(查询),或检查历史关系.

Graph DB是否支持开箱即用的功能?或者,如果可以实现某些备用机制来持久保存为图DB中的节点/关系更改启用的历史审计日志记录?

我们可以考虑的一些想法......?

neo4j graph-databases

7
推荐指数
1
解决办法
2385
查看次数

ArangoDB:(1个带有多个边缘定义的图形)Vs(每个图形1个边缘定义)

我想知道在一个单独的图形中具有多个边缘定义是否有任何优势Vs具有多个图形,每个图形具有单个边缘定义.

谢谢你的帮助,

nosql graph-databases arangodb

7
推荐指数
1
解决办法
158
查看次数

Cosmos DB图形的可视化工具

有人知道可视化在Cosmos DB Graph中创建的图形的工具吗?

我正在寻找类似Gephi(https://gephi.org/)或OrientDB或Neo4j使用的工具。

我正在寻找可以“连接”到数据库的东西。Gephi似乎需要导出,然后使用导出的文件。OrientDB和Neo4j的工具将连接到服务器实例并提供查询的图形结果。

顺便说一句,我目前正在使用Azure Cosmos DB模拟器。因此,我需要可以在本地开发网站(本地主机)上运行的工具。

graph-databases graph-visualization azure-cosmosdb

7
推荐指数
1
解决办法
3027
查看次数

GraphQL是否否定了对图形数据库的需求

使用图形数据库的大多数原因似乎是关系数据库在进行图形查询时很慢.

但是,如果我将GraphQL与数据加载器一起使用,那么我的所有查询都会使用数据加载器进行展平和组合,因此您最终会进行更简单的SELECT * FROM X类型查询,而不是进行任何繁重的连接.我甚至可能使用No-SQL数据库,这种数据通常在这些平面查询中非常快.

如果是这种情况,当与GraphQL结合使用时,是否还有Graph数据库的用例?Neo4j似乎正在推广 GraphQL.我想了解其中的优势.

relational-database neo4j graph-databases graphql

7
推荐指数
2
解决办法
1920
查看次数