OLAP /大数据量全图计算

使用TigerGraph图数据库实现大数据量全图计算(OLAP)

为何要使用图数据库做全图计算

将数据以图的结构存储于数据库中,不仅仅可以更直观的展示数据之间、业务之间的联系,不仅可以在跨度极大的数据集间进行灵活地即席查询,还可以在构建好的拓扑图中寻找大量相似的模式,还可以在数据集间产生大量的高维度特征,还可以图结构的优势高效地进行图算法的计算。

它可以从内部揭示出某个图中的各个实体之间的角色及其关联关系。 例如:某个顶点的位置有多靠中间? 这个顶点对其他顶点的影响力有多大?某些图算法会计算或识别全局特征:例如某个图中的自然社群的分组是什么?图中关联之间的密度是多少?这些算法中有些就已经是非监督的机器学习算法了。

关心数据本身还关心数据之间的联系,才是发挥图数据库巨大潜力和优势的正确方式。

和基于Spark的传统解决方案相比,有什么差异?

Apache Spark是一种流行的通用集群计算框架。该框架的一个重要补充是图计算,由于它在越来越多的用例中证明了其价值,因此图技术正迅速普及。GraphX是Apache Spark的用于图形和图形并行计算的API。 在比较GraphX和TigerGraph时,我们研究了以下四个方面:
  • 图数据存储
GraphX分析的所有数据都存储在其他位工具中,并即时加载以进行查询。相比之下,TigerGraph本身管理一个优化的图数据存储,其中的数据可以通过某些ETL流程进行预加载和/或通过实时事务进行更新。
  • 查询表现力
声明性质的GSQL使编写复杂算法变得容易得多。在GSQL中,用户可以编写声明性查询,甚至将图形算法和模式匹配结合在一起。
  • 支持的工作负载
我们在三个方面对GraphX进行了评估,以评估支持的工作负载:在大型数据集上运行大型查询、实时事务更新(例如,插入、更新和删除顶点和/或边)以及在高QPS下支持亚秒级查询(每次查询第二)。 结论是,GraphX设计用于支持OLAP工作负载,而TigerGraph支持混合事务/分析处理(HTAP)。
  • 可扩展性和性能
GraphX和TigerGraph均可水平扩展以处理非常大的数据集。下图中描述了PageRank算法上GraphX和TigerGraph的性能。GraphX和TigerGraph均可水平扩展以处理非常大的数据集。对于GraphX来说,数据加载和图分区成本是不小的。因此,如果需要进行重复分析,最好将数据预加载到诸如TigerGraph之类的图数据库中。 与TigerGraph相比,GraphX需要大量内存才能运行(每台服务器15GB,而TigerGraph每台服务器0.8GB)。就算法执行时间本身而言,TigerGraph的速度约为GraphX的两倍。

TigerGraph为企业提供什么样的大数据量全图计算能力?

. 高吞吐能力

每小时百GB的批量加载能力、支持流式加载和http post实时插入数据。TigerGraph可以迅速将数据导入数据库中,整装待发。方便灵活的查询方式并且可以达到近万QPS和打满磁盘IO的输出能力,价值输出等待不再。

. 高性能

每秒遍历并计算百万级顶点和千万级边的强大性能,支撑复杂业务查询可以在亚秒甚至毫秒级返回。每秒更新数千个顶点和边的能力也让全图运算可以进行近乎实时的写回能力。查询遍历与写入双通道实时,让整个业务环路没有瓶颈流畅自然。

. 模式匹配

模式匹配是图数据库很重要的能力。快速的判断由给定点展开的拓扑是否为目标模式,或者在全图中寻找全部符合该模式的数据,可以帮助判断模式的准确性、有效性,和与其他大数据分析工具进行集成,迸发更大的价值。

. 图算法

TigerGraph提供5大类、超过20种以上的图算法供用户使用。更重要的是这些算法都以GSQL完成并且开源在Github上,用户可以灵活修改算法的同时,还可以将算法和业务逻辑结合,构建个性化本地化的算法从而针对性解决问题。