大数据的数据建模
Posted
技术标签:
【中文标题】大数据的数据建模【英文标题】:Data Modelling for Big Data 【发布时间】:2016-09-13 10:10:06 【问题描述】:我有这种类型的数据库要实现 圈出的点是各个城市。
人们从一个城市前往另一个城市。 从一个城市到另一个城市的人数用边缘的权重表示。
G 圈:是我的目标城市
我想达到什么目标?
-
达到“G”的总人数?
他们遵循什么路径达到目标“G”?
例如:
200 人从 A->F..!
100 使用路径 F->A 回到 A
从剩下的 100 个用户中,只有 20 个用户达到了目标“G”
所以,从右侧到达“G”的人数是 80
我在“G”点需要什么信息
80 people from right side = 20(from A->F->G) + 60 (from A->D->F->G)
这是一个小图表。 我想在具有 1000 多个节点的图上实现此功能?
目前我正在采取的方法是(使用 ArangoDB):
我正在创建一个顶点集合和一个边缘集合。
每个城市(A、B、C、D)都是同一个集合中的文档。
我正在为每个旅行的人保存完整的先前路径。
例如,约翰从 A->G 出发
我在 F 中为 John 保存的详细信息:"John : A_D_F"
我在 G 市为 John 保存的详细信息:"John : A_D_F_G"
我对每个旅行的人重复这一点。
简而言之,我想在图表中的任何点(城市)实现漏斗。
在 Arango 或其他大数据存储中对此类图进行数据建模的更好方法是什么?哪种大数据存储最好?
谢谢..!
【问题讨论】:
在我看来,您示例中的数据不足以计算路径。 IE。你怎么知道去 F->A 的 100 人是来自 200 个去 A->F 的人,而不是来自那些去 D->F 的人 @MoshaPasumansky 是的,你说得对,但在实际情况下,就像“F”城市有 300 人,其中 100 人回到了“A”城市。这些人可能来自两个城市真实场景中的路径(A->F,A->D->F)。好的..!为了简单起见,现在让我们假设相同的图表,但这次是非循环和单向的(即向下流动)......,然后如何为此类数据建模,什么工具最适合解决这些问题..?谢谢..! @MoshaPasumansky 让我们也考虑回去的人(F->A)是死人(或被淘汰..) 这个faculty.cas.usf.edu/mbrannick/regression/Pathan.html能帮我解决上述问题吗? 【参考方案1】:您的结论是正确的,可以将其视为图形问题。无论您要使用哪种技术堆栈,我都建议您按照这些链接中列出的一些最佳实践/示例对数据进行建模
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 中创建这些 创建示例数据集 运行查询并检查答案 查看是否需要优化模型或数据希望对你有帮助
【讨论】:
欢迎来到 Stack Overflow!虽然这在理论上可以回答这个问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。以上是关于大数据的数据建模的主要内容,如果未能解决你的问题,请参考以下文章