gpt4 book ai didi

graph - 大数据的数据建模

转载 作者:行者123 更新时间:2023-12-02 01:22:09 24 4
gpt4 key购买 nike

enter image description here

我要实现这种类型的数据库圆圈点是各个城市。

人们正从一个城市前往另一个城市。从一个城市到另一个城市旅行的人数由边缘的权重显示。

Circle G:是我的目标城市

我想要实现什么?

  1. 达到“G”的总人数?
  2. 他们遵循什么路径来实现目标“G”?

例如:

  • 200 人从 A->F.. 开始!

  • 100 使用路径 F->A 回到 A

  • 在剩下的 100 名用户中,只有 20 名用户达到了目标“G”

所以,从右边到达“G”的人数是80

我在“G”点需要什么信息

  • 右侧 80 人 = 20(从 A->F->G)+ 60(从 A->D->F->G)

这是一个小图。我想在一个有 1000 多个节点的图上实现这个

现在我正在采取解决这个问题的方法是(使用ArangoDB):

  • 我正在创建 One Vertex 集合和 One Edge 集合。

  • 每个城市(A、B、C、D)都是同一集合中的文档。

  • 我正在为每个旅行的人保存完整的先前路径。

例如 John 从 A->G 出发

  • 我在 F 为 John 保存的详细信息:{"John : A_D_F"}

  • 我在城市 G 为 John 保存的详细信息:{"John : A_D_F_G"}

  • 我正在为每一位旅行的人重复这一点。

简而言之,我想在图中的任何点(城市)实现漏斗。

在 Arango 或其他大数据存储中,对于这种类型的图数据建模的更好方法是什么?哪种大数据存储最好?

谢谢...!

最佳答案

您的结论是正确的,将此问题视为图形问题。无论您想使用哪种技术堆栈,我都建议您按照这些链接中概述的一些最佳实践/示例对您的数据进行建模

https://neo4j.com/developer/guide-data-modeling/

https://www.infoq.com/articles/data-modeling-graph-databases

关于扩展到 1000 甚至 10000 个节点图,有很多经过验证的选择

这是对此建模的一种可能方法:

a] 将城市和人视为节点

b] 然后将城市到城市的路径建模为关系

c] 然后添加 Person-has-travelled-to-City 作为关系

d] 如果你需要对关系进行排序,你可以在 Person-to-City 关系上使用 Properties

下一步是

  • 在您选择的 Graphdb 中创建这些
  • 创建示例数据集
  • 运行您的查询并检查答案
  • 查看是否需要优化模型或数据

    希望对你有帮助

  • 关于graph - 大数据的数据建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39467428/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com