TigerGraph no code 查询——图分析演进的下一阶段
简介
经过团队一年多的努力,近日TigerGraph推出了3.0 Beta试用版。该版本TigerGraph图平台对服务管理架构、计算引擎、查询语言和可视化开发及运维工具进行了全面升级。如果说TigerGraph 1.0版本实现了原生并行图从无到有的突破,2.0版本完成了从单机高性能图向企业级分布式图的跨越,那么3.0版本则标志着TigerGraph图平台走向成熟。
可视化查询构建器(Visual Query Builder)是众多TigerGraph 3.0的新功能中非常值得被关注的一个。该功能的推出标志着TigerGraph可视化开发工具填补了无代码图查询(no code graph querying)的业界空白,通过与GraphStudio的整合打通了图建模、数据映射与加载、图查询、图可视化的完整无代码图分析(no code graph analytics)路径。可以预见的是图技术入门门槛进一步被降低。图技术的用户将不再局限于少数领域工程师和数据科学家,更多的工程师、数据科学家、数据分析师、业务人员和决策人员也将把图分析技术作为解决其一般业务需求和数据分析需求的常用工具。
GraphStudio
GraphStudio是TigerGraph平台的可视化开发工具,为用户提供了可视化建模、可视化数据映射、数据加载进度监控、交互式图数据浏览和GSQL查询IDE的全栈可视化图业务开发环境。尽管业界已有图建模工具(如gra.fo)、数据映射工具(如Mulesoft)、图数据浏览工具(如Linkurious)和图查询IDE(如DataStax Studio),但据我们所知GraphStudio是业界第一个全栈可视化图开发环境。GraphStudio不仅被TigerGraph的广大企业用户所喜爱(某企业客户高管这样评价GraphStudio:It is magical!)。
可视化建模
图模型(graph schema)由节点类型和边类型组成。每个节点类型描述了问题域里的一种实体,而每个边类型描述了不同实体类型之间的一种关系。在GraphStudio中,用户可以可视化地创建、修改或删除节点类型和边类型,并为它们配置位置、颜色和图标。
可视化数据映射
数据映射(data mapping)用于描述不同数据模型之间的对应关系。在GraphStudio中,用户可以将不同的数据源文件(如本地CSV文件或S3上的数据文件)添加到工作面板,并配置每个数据源文件的每个字段(如表列)与节点主键、边的起止节点,以及它们的属性之间的对应关系,为之后的数据加载做准备。
数据加载进度监控
在这个页面上用户可以加载部分或全部数据源,控制加载的启停,并监控加载进度。
交互式图数据浏览
用户可以在GraphStudio中交互式地搜索节点,扩展节点的一步和多步邻居子图,查找节点之间的连接路径,或运行已经安装的GSQL查询。在检索过程中用户可以根据节点或边的属性设置过滤搜索条件,也可以配置表达式实现可视化增强效果(如改变节点大小和颜色、边的颜色和粗细),保存查询结果,加载之前的查询结果以便在此基础上进行进一步的图分析,改变布局,以及对节点和边直接进行增删改操作等等。
GSQL查询IDE
对于复杂的图业务需求,用户可以在GSQL查询IDE中编写图算法实现。IDE提供了GSQL自动补全和语法高亮,用户可以在解释执行模式下快速验证GSQL查询逻辑,也可以安装GSQL查询提高运行效率。如果查询结果包含了子图结构,结果将默认被可视化,否则结果将以JSON格式展示。
GSQL vs. GQL
GSQL是TigerGraph平台的图查询语言。尽管借鉴了很多SQL语法,但GSQL与SQL最大的区别在于它是一个图灵完备的图查询语言,而它的图灵完备性是通过引入累加器、控制流、循环和递归调用实现的。由于这个原因,GSQL理论上可以实现任何图算法。这里举一个用GSQL实现的最小生成树(minimum spanning tree)算法的例子:
CREATE QUERY mst (VERTEX source) FOR GRAPH social {
/* Minimum Spanning Tree (MST)
Given an undirected graph, and a source vertex, print out a MST for the connected
subgraph which contains the source vertex.
1. Start with a set MSTNodes = {source vertex}
2. For all vertices in MSTNodes, find another vertex y in the graph but not
MSTNodes which is connected to a vertex x in MSTNodes such that the weight
on the edge e(x,y) is the smallest among all such edges from a vertex in MSTNodes
to a vertex not in MSTNodes. Add y to MSTNodes, and add the edge (x,y) to MST
3. Repeat 2 until MSTNodes has no edge linking to any other vertex in the graph.
The ACCM version shows display by default.
*/
TYPEDEF TUPLE<VERTEX toV, EDGE their_edge, FLOAT weight> EDGE_WEIGHT;
//only need to keep the minimal tuple
HeapAccum<EDGE_WEIGHT>(1, weight ASC) @@chosen_edge;
SetAccum<EDGE> @@mst;
OrAccum @chosen;
MSTNodes = {source};
// initialize the source vertex
Current = SELECT s
FROM MSTNodes:s
ACCUM aaa@qq.com = true;
WHILE (Current.size() > 0) DO
Current = SELECT t
FROM MSTNodes:s -(Coworker:e) -> :t
WHERE aaa@qq.com == false
ACCUM @@chosen_edge += EDGE_WEIGHT(t, e, e.weight)
POST-ACCUM IF t == @@chosen_edge.top().toV THEN
aaa@qq.com = TRUE
END
HAVING aaa@qq.com == true;
IF @@chosen_edge.size() > 0 THEN
@@mst += @@chosen_edge.top().their_edge;
END;
@@chosen_edge.clear();
MSTNodes = MSTNodes UNION Current;
END;
PRINT MSTNodes;
PRINT @@mst;
}
更多GSQL图算法实现请参考GSQL图算法库文档。
随着TigerGraph赢得越来越多领域的企业客户,GSQL查询语言也在这些企业内部被广泛的学习和接受,有些企业甚至将GSQL/TigerGraph作为图算法工程师和数据科学家的招聘要求。目前国际上逐渐形成了Cypher、Gremlin和GSQL三种图查询语言三足鼎立的趋势。
为了推动图数据库领域形成统一的查询语言标准,结束多种图查询语言群雄混战的局面,国际标准化组织(ISO)联合Oracle、Neo4j、TigerGraph等厂商共同推动图查询语言(GQL)标准的制订。
目前来看GQL将是一款结合Cypher、GSQL、PGQL、G-Core以及SQL等多种查询语言特点的标准图查询语言,但距其落地实施被业界所应用还有一段时间。
no code查询 可视化查询构建器
尽管GSQL拥有强大的表达能力,并且对有SQL经验的工程师和数据科学家比较友好,但它仍然有一定的技术门槛。而且由于标准图查询语言尚未落地,有些潜在用户不希望在尚未验证图技术是否能为其带来价值的阶段投入过多的时间学习一门新的图查询语言。对于其他领域的数据科学家、数据分析师和业务人员来说,学习GSQL更是对他们的技术能力提出了很高的要求。然而如何快速让这些图领域之外的人意识到图的巨大价值,是图技术走出自身细分市场,成为数据分析主流技术的关键。因此基于与GraphStudio可视化开发环境相同的思路,我们将图分析路径上最后一环也是技术要求最高的一环进行了可视化,可视化查询构建器(Visual Query Builder)由此而生。据我们所知这是目前图领域唯一的可视化查询构建器。
我们以上文GraphStudio截图中的图模型为例,这是一个基于Crunchbase 2013公开数据集建立的图模型。这个模型描述了数据集中人(person)、大学(university)、公司(company)、产品(product)、融资(funds,funding_rounds, IPO)等实体以及它们之间的关系。
我们将以在这个模型上提出的5个图分析问题说明可视化查询构建器是如何工作的。
如果你希望加入TigerGraph 3.0 Beta用户项目并亲自尝试下面这些例子,请发送邮件给aaa@qq.com。
例1 查找10个名叫Bob的人
我们寻找的是firstname为Bob的person节点,并且需要所有结果中的10个。位于中间面板的可视化查询非常直观的反映了我们的需求,而运行这个查询我们找到了10个名叫Bob的人显示在下方的面板中:
例2 查找在2008年到2009年间被谷歌收购的公司
我们寻找谷歌公司出发的收购关系,并且在收购关系上添加时间限制。
运行这个查询得到以下结果,可以看到收购时间确实全部发生在2008年到2009年之间。
例3 查找拥有最多的就职于优秀创业公司的毕业生的10所学校,优秀创业公司的条件是至少在IPO中获得一百万美元融资
我们建立一条从学校到人到就职公司到IPO的路径,对IPO添加一百万美元融资额的限制。对每个满足条件的学校我们统计毕业生人数,根据总人数从高到低排序,并选择前10名作为结果输出:
运行这个查询我们得到了10所学校,可以看到确实都是美国的顶尖名校。我们利用GraphStudio的可视化增强效果根据毕业生人数统计结果对学校节点大小进行调整,可以看到在该数据集中斯坦福大学拥有最多的就职于优秀创业公司的毕业生。
例4 查找所有这样的公司A、B、C,其中A曾投资B,B曾投资C,而A收购了C
这个查询被下面这个三个公司组成的三角形关系直观的表述出来:
运行这个查询,我们在整个数据集中找到了唯一一组这样的关系:
例5 查找10个曾就读于斯坦福大学但不曾在脸书工作的人
这个 查询非常的直观,我们查询曾就读于斯坦福大学的人,并从中减去曾在脸书工作的人,返回其中10个人作为结果。
查询的运行结果为:
由于篇幅限制,这里就不介绍可视化查询的构建过程了。可视化查询的构建也是点击拖拽式的,非常简单易用,具体请观看视频或阅读我们的官方文档。
自然语言问答 图分析的未来方向
人机交互的终极形式应该是脑机接口。只要在大脑里想到什么,通过脑机接口传递给计算机,计算机就能直接做出响应并把结果返回给大脑。比较有名的如伊隆·马斯克的Neuralink公司正在这个领域里持续探索。但是可以预见这一技术至少需要数年到十余年才能达到成熟。而现阶段人机交互比较成熟的前沿技术是自然语言处理(natural language processing)和语音识别(speech recognition)。无论是针对个人用户的苹果Siri系统、谷歌Google Assistant,还是在危险边缘节目大放异彩的IBM Watson问答系统,都是对这些技术的生动诠释。
与自然语言问答结合是图分析的一个重要方向。随着图技术的普及,我们观察到越来越多企业的高级别管理层希望能亲自从图平台中获得洞察,而自然语言问答无疑为企业高管提供了从图平台获得洞察的途径。事实上已经有企业用户开始基于TigerGraph平台开发自然语言问答系统。
自然语言与一般程序设计语言的一个重要区别在于程序设计语言是无歧义的,但是自然语言充满了歧义和模糊性。可视化查询本质上是一种程序设计语言,它无歧义性,但是比一般的程序设计语言更加直观易懂,因此可以作为自然语言的消歧工具。当用户以自然语言输入一个图查询,问答系统可以生成该问题的可视化查询的表示供用户确认和编辑,从而提高问答系统的准确性,避免答非所问的情况出现。我们初步认为与传统问答系统相比,基于图的问答系统可以在图模型定义的问题域内回答结构更加复杂的问题,而且由于可视化查询的辅助其准确性会更高。但这个假设依赖于未来的科研和工程实践的支撑。
总结
随着图技术开始在越来越多的行业的落地,如何进一步降低图技术入门门槛,实现快速的概念验证和业务逻辑迭代成为摆在所有图技术提供商面前的问题。无代码图分析无疑将在图技术推广方面发挥举足轻重的作用。TigerGraph图应用团队将在这个方向上持续创新探索,让图技术成为一项人人可用、人人爱用的大数据分析技术。
相关资源
● TigerGraph 3.0 官宣新闻稿
● TigerGraph 图解新型疫情传播
● no code介绍页:适用于所有人的可扩展图分析
● Visual Query Builder官方文档
关于作者
宋壬初
TigerGraph图应用团队工程经理
团队负责可视化开发和运维工具GraphStudio,、Visual Query Builder和AdminPortal的研发
上一篇: Windows用户和组管理