在QlikView中使用Neo4j处理图形数据

日期: 2012-06-18 作者:孙瑞 来源:TechTarget中国

在我们开始介绍本文之前,先来看看维基百科对图形数据库(Graph Database)的定义:图形数据库是使用带有节点、边缘和属性的图结构来对数据进行存储和展现。许多场景中,我们都能够很好地使用图形数据库来解决相应的问题。

  图形数据库专家Ralf Becher(http://twitter.com/TIQView)近日在他的博客中探讨了在QlikView中使用Neo4j的相关话题,为我们解读了如何在BI解决方案中使用图形数据来进行分析。

  Neo4j是一个高性能NoSQL图形数据库,它的功能和特性在NoSQL领域属于相对成熟与健壮的。Neo4j是由Neo Technology公司开发的一个基于Java的开源项目,DBA可以去公司官网上阅读更多关于Neo4j的知识,也可以参考该ppt

  目前Neo4j中自带JDBC驱动器,我们可以使用QlikView 的JDBC连接器和Cypher查询语言(相当于Neo4j的SQL)来对图形数据进行高效地查询。由于Cypher同我们所熟悉的SQL语言有较大的区别,所以在开始使用Neo4j之前,一定要先熟读Cypher的技术文档:

  通过以下语句可以连接到Neo4j图形数据库:

CUSTOM CONNECT TO “Provider=JDBCConnector_x64.dll;jdbc:neo4j://localhost:7474/?connector.driverClass=org.neo4j.jdbc.Driver;XUserId=MfJbFYD;XPassword=IYRXBVD;”;

  以下一些语句,是我在QlikView中经常会用到的Cypher查询:

  1、读取所有节点以及一些节点的属性:

  SQL START n=node(*)
  RETURN ID(n) as NodeID, n as NodeText, n.__type__? as NodeType, n.name? as NodeName, n.biography? as Biography, n.birthplace? as Birthplace, n.birthday? as Birthday, n.title? as MovieTitle, n.releaseDate? as ReleaseDate;

  2、读取所有关系和一些关系的属性:

  SQL START r=relationship(*)
  RETURN ID(r) as RelID, r as RelText, r.__type__? as RelType,
  r.name? as RelName, type(r) as RelLabel;

  3、读取所有路径(节点和关系序列):

  SQL START n=node(*)
  MATCH n-[r]->m
  RETURN ID(r) as RelID, ID(n) as Node1_ID, Type(r) as Label, ID(m) as Node2_ID;

  在加载脚本中创建一个QlikView数据模型。如下图,Graph表需要有一个路径(path)

  

  得到的结果可以展现在一个交互QlikView分析应用中,你可以使用各种UI元素来对图形数据中的相关信息进行探索。在下面的图中,你可以看到《星际迷航》电影中所有的相关信息:

   点击放大

  这里使用了Google Chart API对图形进行了可视化的处理,下一步我们还会使用更炫的QlikView Extension Object。

  下一步,我们会使用QlikView的关联搜索功能对Spock船长进行搜索:

   点击放大

  我们会找到扮演Spock船长的所有演员,并呈现其相关联的子图形:

   点击放大

  除此之外,我们还可以做一些业务分析,比如我们可以创建一个图表,来计算一下每部电影的演员及其电影发行时他们的平均年龄。最左边的是最年轻的演员和电影名称:

   点击放大

  我希望通过上面的一些演示能够让你对使用图形数据进行交互分析有一些了解,如何将以下的各个元素联系起来,比如图形数据与关系型数据,NoSQL数据库与BI,Java OSS与属性等。

  下载 Neo4j QlikView示例:QVNeo4j.qvw

  Neo4j样本数据:http://example-data.neo4j.org/files/cineasts_movies_actors.zip

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

孙瑞
孙瑞

相关推荐