您希望图数据库执行哪类操作?某些图平台纯粹适合大规模处理 (OLAP),例如 PageRank 或社区检测。优秀的 OLAP 图数据库应该具备高度并行的处理设计和良好的可扩展性。某些图数据库专为“点查询”而设计,从一个或几个点开始若干步遍历。但是,要成为真正的事务数据库(用于 OLTP),它应该支持 ACID 事务、并发性和很高的每秒查询量 (QPS)。如果事务包括数据库更新,则必须做到实时更新。极少有图数据库能同时满足上述要求,这就是混合事务 / 分析处理 (HTAP) 数据库。
可以进行“点查询”的事务型图数据库在处理大数据量的全图算法上捉襟见肘,而一般OLAP图平台虽然具有计算大规模数据的批量计算的能力,但缺少将计算结果直接写回数据源的能力。因为他们一般是内存型的,且不具有事务能力。此外,还要考虑导入全图分析平台和结果写回的时间成本,和相应的复杂流程,而这也限制了全图计算的结果可以实时地作用于生产环境,从而造成了延迟。混合事务和分析处理的图数据库可以突破这一限制,并释放数据真正的力量。
传统的解决方案一般会形成应用、数据库、分析平台的三层结构,数据需要在这三层之间传输,尤其是最后这两层之间的数据传输,数据量大、延迟高、产生数据冗余等等。尤其在分析任务有所变更的情况下,代价更大。
然而当今业务日趋争分夺秒,无论是及时发现模式、标记核心程度、防止欺诈行为,还是可以高效地为使用者提供准确及时的推荐、进行交叉营销和消费升级,都期待可以突破T+1日的桎梏,走向更加实时的响应。甚至在数据库中进行机器学习,都成为了最近炙手可热的话题。
混合事务和分析处理的数据库,不仅让分析结果更加精准,更让分析出来的具有价值的数据可以更加快速的投入生产,为企业减少损失提高收益。
一个功能完备的图数据库需要不仅支持高效的图读取,还要支持图写入(数据插入、更新和删除)。也就是说, 它应该不仅支持联机分析处理 (OLAP),还要支持联机事务处理 (OLTP)。一个事务数据库要保证,当用户将一个操作块定义为一个事务时,那么该事务要全部完成(或完全不完成)而且不会与可能同时正在处理的任何其他事务交互。
实时更新意味着数据库更新(添加、删除或修改)可以与数据库上的其他查询同时进行,而且更新可以很快完成(提交)和可用。常见的图更新操作包括插入 / 删除新点 / 边以及更新现有点 / 边的属性。 理想情况下,实时更新应与并发控制相结合,以便多个查询和更新(事务)可以同时运行,但最终结果与事务按顺序运行时相同。大多数非原生图平台(例如,GraphX、DataStax DSE Graph)不支持实时更新, 因为其数据存储系统(HDFS、Cassandra)不可变。
我们在基准测试研究中测试了通用的 PageRank 算法。此算法是对图的计算和通信速度的严格测试,因为它遍历每个关联、计算每个点的分数并重复迭代几次遍历与计算过程。当图分布到八台服务器时,与单台服务器相比, PageRank 查询的完成速度接近快七倍。
Anna Veronika Dorogus
Machine Learning Expert
Anna Veronika Dorogush graduated from Lomonosov Moscow State University and Yandex School of Data Analysis. She used to work at ABBYY, Yandex, Microsoft and Google on Machine Learning infrastructure and Machine Learning frameworks. In 2017 she published the open-source library CatBoost, which is now one of top-3 most popular Gradient Boosting libraries, and the top 7-th most used Machine Learning framework in the world according to Kaggle 2021 review.