Sunieve,图数据库

图数据库是用于做什么的?
【Sunieve,图数据库】

Sunieve,图数据库


图数据库是下一个大趋势 。首先,图数据库是一个产品,但成为产品前,经历了很长时间的理论期 。比如欧拉图其实已有超过 200 年历史,数学理论很完整,在图中有很多经典算法,像这两个点之间最短路径是?物流该怎么去优化?社区该怎么划分?它已有很多现成、成熟的算法和科学理论,但从理论到工业界的产品,这里一直存在巨大空白 。
直到 2002 年时,出现一家公司,做了第一代“图数据库”,但他们不想把数据打乱,放到几个表里,而就想存成一个真正的图,所以一个词叫 Native(汉语翻译成“原生图”),就是说:我就是真正用一种图的数据结构来存图,这样我性能会好很多 。但因为是 2002 年前的老技术,那时还没有大数据概念,还没有分布式系统的进展,这家公司做的就是单机版,数据只能在一台机器里跑,你数据量一大,它就没办法 。
但这个公司十几年来就做这么一件事,然后不断教育市场,它现在还很有名,叫 Neo4j 。这是图数据库一代,也叫图 1.0 。然后大概 6、7 年前,因为有 hadoop/MapReduce 和其他开源的分布式系统,又有人做了些开源工具,做了些分布式图数据库,相当是有了一个捷径:你不用从头到尾做一个图数据库了,我用现有分布式存储系统来存数据,但在上头,我做个中间件,模仿一下图的 API,然后给终端用户终端开发者一个图的 API 概念 。
比如说:我朋友的朋友是谁?朋友是谁有哪些类型的节点?有哪些类型的边?这样就号称可以存很多数据,不受一台机器限制,但缺点是性能差,整个过程很慢 。也就是说:第一种性能好,但数据量一大,就没办法;第二种是多机版,它跑得过来,但性能差,没实时处理数据的能力;之后是图 3.0,像全球首家实时图分析平台 TigerGraph 在干的事 。
图 3.0 需要设计既是分布式、又是原生图,跟第一代一样,存储全是自己做,这样性能好,但设计时又是分布式的,所以数据量大也没问题,1 台或几十台机器去跑,没有限制,你都可以跑,这样就可以解决一些数据量超级大的公司,比如以前像支付宝,“单机版”不可能有能力处理,因为数据量实在太大,但是如果你突破到“多机版”,性能还非常好,就解决了很多以前根本没法用图数据库的一些应用场景 。

    推荐阅读