tigergraph

与关系(SQL)数据库或其他种类的NoSQL数据库(文档,宽列等)相比,图形数据库提供了一种更有效的关系和网络建模方法。 最近,在这个领域出现了许多产品,该领域最初是(1999年)Neo4j的唯一省份。

信息世界

TigerGraph,最近才问世,是一个“实时本地并行图形数据库”。 TigerGraph可用于在云中或本地部署,它可以向上和向外扩展,它可以自动在集群中对图形进行分区,符合ACID,具有内置数据压缩功能,并且声称比竞争对手更快。 就像我们将看到的那样,它使用了一种消息传递体系结构,该体系结构固有地是并行的,并且可以随数据的大小扩展。

[ 什么是图形数据库? 一种存储连接数据的更好方法 。 • 为什么要使用图形数据库 。 • 了解Microsoft的图形数据库策略 。 •评论: Neo4j增强图形分析功能 。 | 通过InfoWorld大数据和分析报告时事通讯深入了解分析和大数据。 ]

TigerGraph旨在能够执行深度链接分析以及实时在线事务处理(OLTP)和大容量数据加载。 通过“深层链接分析”,TigerGraph表示跟踪从顶点到整个图形的三个或更多跃点之间的关系并分析结果。 其他大多数图形数据库主要是为OLTP设计的,用于导航和分析少量跃点。 以后添加了任何重要的分析功能。

尽管已经广泛采用了几种开源图形查询语言,例如Cypher,Gremlin和SPARQL,但是TigerGraph具有新的查询语言GSQL。 GSQL结合了类似SQL的查询语法和类似Cypher的图形导航,以及过程编程和用户定义的功能。

我对TigerGraph的新GSQL查询语言有不同的看法。 是的,这是一个不错的设计; 是的,它是可并行化的; 是的,TigerGraph可以为从Neo4j数据库迁移的人们将Cypher转换为GSQL。 但是,每次遇到另一种编程语言时,我都必须问自己,是否值得花时间和精力来全面学习它。

我对产品其余部分的感觉很少。 TigerGraph对新的图形数据库显示出很大的希望。

TigerGraph架构

正如我们在下面的框图中看到的那样,TigerGraph有一个ETL加载器(左),带有查询语言和可视客户端的图形存储和处理引擎以及一个REST API(中),并与许多企业数据基础架构服务集成。 下面的系统流程图清楚地表明,TigerGraph使用Apache Kafka消息队列与图处理和存储引擎进行对话,而Nginx Web服务器则处理来自多个用户的GraphStudio和GSQL请求,并将它们传递给匹配的后端服务器。 。

虎图

TigerGraph Analytics Platform结合了图形存储引擎,图形处理引擎和三种API。 它可以在本地,云或混合配置中运行。

TigerGraph中传递的消息允许在每个顶点和每个边缘级别进行并行处理。 RESTPP(增强的REST API服务器)是任务管理的核心。

根据TigerGraph的说法,该系统每小时可以加载多达150 GB的数据,每台机器每秒每秒遍历数亿个顶点或边,实时将2B每日事件流传输到群集中具有100B顶点和600B边的图形多达20台商用机器,并通过大规模离线数据处理来统一实时分析。

虎图

TigerGraph使用几个流行的开源组件:Nginx用于Web流量,Apache Kafka用于消息队列,以及Apache Zookeeper用于Kafka集群管理。 该平台的其余部分当前使用专有代码。

TigerGraph在Docker上的安装

您可以在各种流行的Linux版本以及Docker和VirtualBox上安装TigerGraph。 我选择使用Docker安装在iMac上。 在开始安装之前,我更新了Docker安装,并将Docker可用的RAM和处理器增加到4 GB和四个核心。 我使用在站点上注册开发人员许可证后收到的电子邮件中的链接,将当前的Docker的TigerGraph映像下载到了本地计算机。

Martins-iMac:Downloads mheller$ docker load < ./tigergraph-developer-2.2.3-docker-image.tar.gz8823818c4748: Loading layer    119MB/119MB19d043c86cbc: Loading layer  15.87kB/15.87kB883eafdbe580: Loading layer  14.85kB/14.85kB4775b2f378bb: Loading layer  5.632kB/5.632kB75b79e19929c: Loading layer  3.072kB/3.072kB2106b49716cb: Loading layer  7.168kB/7.168kBda572f4e0c2f: Loading layer  4.034GB/4.034GB6cd767fef659: Loading layer  338.4kB/338.4kBLoaded image: tigergraph:2.2.3Martins-iMac:Downloads mheller$ docker image lsREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEtigergraph          2.2.3               e1911655f9a7        3 weeks ago         4.11GBhello-world         latest              4ab4c602aa5e        2 months ago        1.84kB

如上所示,该安装没有任何警报或游览。 本书如下所示进行了启动。

Martins-iMac:Downloads mheller$ docker run -i -t --name tigergraph -p 4142:14240 tigergraph:2.2.3 Welcome to TigerGraph Developer Edition, for non-commercial use only. [RUN    ] rm -rf /home/tigergraph/tigergraph/logs/ALL*.pid[FAB    ][2018-11-30 21:56:06] check_port_of_admin_servers[RUN    ] /home/tigergraph/tigergraph/.gium/GSQL_LIB/service/../scripts/admin_service.sh start/home/tigergraph/tigergraph/bin/admin_server/config.sh=== zk ===[SUMMARY][ZK] process is down [SUMMARY][ZK] /home/tigergraph/tigergraph/zk is ready=== dict ===[SUMMARY][DICT] process is down [SUMMARY][DICT] dict server has NOT been initialized=== kafka ===[SUMMARY][KAFKA] process is down [SUMMARY][KAFKA] queue has NOT been initialized=== gse ===[SUMMARY][GSE] process is down [SUMMARY][GSE] id service has NOT been initialized=== gpe ===[SUMMARY][GPE] process is down [SUMMARY][GPE] graph has NOT been initialized=== nginx ===[SUMMARY][NGINX] process is down [SUMMARY][NGINX] nginx has NOT been initialized=== restpp ===[SUMMARY][RESTPP] process is down [SUMMARY][RESTPP] restpp has NOT been initialized[FAB    ][2018-11-30 21:56:47] launch_zookeepers[FAB    ][2018-11-30 21:57:00] launch_gsql_subsystems:DICT[FAB    ][2018-11-30 21:57:04] launch_kafkas[FAB    ][2018-11-30 21:57:22] launch_ts3s[FAB    ][2018-11-30 21:57:25] launch_gsql_subsystems:GSE[FAB    ][2018-11-30 21:57:28] launch_gsql_subsystems:GPE[FAB    ][2018-11-30 21:57:31] launch_gsql_subsystems:NGINX[FAB    ][2018-11-30 21:57:34] launch_gsql_subsystems:RESTPP[FAB    ][2018-11-30 21:57:38] check_port_of_vis_services[RUN    ] LD_LIBRARY_PATH="/home/tigergraph/tigergraph/bin" home/tigergraph/tigergraph/visualization/utils/start.sh[FAB    ][2018-11-30 21:57:39] check_port_of_admin_servers[RUN    ] home/tigergraph/tigergraph/.gium/GSQL_LIB/service/../scripts/admin_service.sh start home/tigergraph/tigergraph/bin/admin_server/config.sh[RUN    ] /home/tigergraph/tigergraph/dev/gdk/gsql/gsql_server_util START || :=== zk ===[SUMMARY][ZK] process is up[SUMMARY][ZK] /home/tigergraph/tigergraph/zk is ready=== kafka ===[SUMMARY][KAFKA] process is up[SUMMARY][KAFKA] queue is ready=== gse ===[SUMMARY][GSE] process is up[SUMMARY][GSE] id service has NOT been initialized (not_ready)=== dict ===[SUMMARY][DICT] process is up[SUMMARY][DICT] dict server is ready=== ts3 ===[SUMMARY][TS3] process is up[SUMMARY][TS3] ts3 is ready=== graph ===[SUMMARY][GRAPH] graph has NOT been initialized=== nginx ===[SUMMARY][NGINX] process is up[SUMMARY][NGINX] nginx is ready=== restpp ===[SUMMARY][RESTPP] process is up[SUMMARY][RESTPP] restpp is ready=== gpe ===[SUMMARY][GPE] process is up[SUMMARY][GPE] graph has NOT been initialized (not_ready)=== gsql ===[SUMMARY][GSQL] process is up[SUMMARY][GSQL] gsql is ready=== Visualization ===[SUMMARY][VIS] process is up (VIS server PID: 1242)[SUMMARY][VIS] gui server is up[RUN    ] rm -rf ~/.gsql/gstore_gs*_autostart_flagDone.tigergraph@2089c417aa54:~$

至此,我启动了gsql客户端,并完成了一些命令行教程和演示。

tigergraph@2089c417aa54:~$ ls /home/tigergraph/friendship.csv   hello2.gsql  hello.gsql  person.csv  tigergraph  tigergraph_coredumptigergraph@2089c417aa54:~$ gsqlWelcome to TigerGraph Developer Edition, for non-commercial use only. GSQL-Dev > 

TigerGraph的GSQL 101和GSQL示例

GSQL 101教程教您如何创建图模式,加载数据和运行查询。 一切都按广告做。 我对完成某些操作(例如安装自定义查询)所花费的时间感到有些惊讶,但是我看到的时间与文档一致。

为了让您对GSQL有所了解,以下自定义查询演示了如何使用累加器,嵌套查询和安装自定义查询。

USE GRAPH socialCREATE QUERY hello2 (VERTEX<person> p) FOR GRAPH social{  OrAccum  @visited = false;  AvgAccum @@avgAge;  Start = {p};  FirstNeighbors = SELECT tgt                   FROM Start:s -(friendship:e)-> person:tgt                   ACCUM tgt.@visited += true, s.@visited += true;  SecondNeighbors = SELECT tgt                    FROM FirstNeighbors -(:e)-> :tgt                    WHERE tgt.@visited == false                    POST_ACCUM @@avgAge += tgt.age;  PRINT SecondNeighbors;  PRINT @@avgAge;}INSTALL QUERY hello2RUN QUERY hello2("Tom")

GSQL演示示例涵盖了其他领域,包括协作过滤,PageRank,产品推荐和最短路径算法。 这些也值得研究和运行,尽管您一次只想一步一步就可以了解它们在做什么,而不是成批运行所有提供的文件。 由于开发人员许可每个数据库只允许一个图形,因此您需要运行DROP ALL来删除在GSQL 101练习中创建的社交图形。

GSQL图形算法库实现标准图形算法并将其作为GSQL查询进行测试。 您可以从GitHub下载该库 。 就像您将看到的那样,基本算法与安装脚本结合在一起为您的图形生成定制的算法。 该算法当前包括紧密度中心度,连接的组件检测,社区检测,PageRank,最短路径和三角形计数。

GraphStudio和TigerGraph测试驱动器

除了用于GSQL的命令行界面外,TigerGraph还有一个称为GraphStudio的GUI。 您可以通过浏览到localhost:4142在本地实例上运行它,如下所示。

IDG

TigerGraph的GraphStudio GUI使设计方案,加载数据和浏览图形变得容易。 编写查询是在GSQL中完成的。

但是,出于学习目的,您可能需要探索TigerGraph试驾演示 。 这些是只读的图形数据库,其中包含一些预定义的参数化查询。 您还可以编写自己的查询。

具有大数据集(数十亿条边)的三个测试驱动器用例使用Amazon EC2 r4.4xlarge(16个vCPU,122 GiB RAM)实例。 具有小型数据库的两个测试驱动用例使用更经济的Amazon EC2 t2.xlarge(4个vCPU,16 GiB RAM)实例。 以我的经验,即使对于具有44亿边缘的反欺诈演示图(如下所示),性能也相当不错。

IDG

使用GraphStudio对大型(44亿条边)用户,设备和交易图执行欺诈检测查询。 GraphStudio和TigerGraph都在Amazon EC2 r4.4xlarge实例上运行。

TigerGraph基准测试

TigerGraph一直在吹捧一些基准测试 ,以将其性能与其他几个图形数据库(Neo4j,Amazon Neptune,JanusGraph和ArangoDB)进行比较,以测试数据加载时间和图形分析查询时间,所有这些都是TigerGraph可以并行化操作的任务。 毫不奇怪,考虑到基准测试的建立偏向于TigerGraph的优势,TigerGraph在所有测试中均获胜,有时是巨大的因素。 令我印象深刻的唯一基准是TigerGraph-only群集可伸缩性测试,该测试在八台计算机上运行时的速度提高了6.7倍。

要问自己的问题是“我的图形数据库主要用例是什么?” 如果答案涉及在线事务处理(OLTP),那么您甚至可能不在乎批量加载和多跳分析查询性能。 最终,真正重要的衡量标准是数据库对于您的应用程序的行为,这就是为什么在采用新技术时花时间进行概念验证如此重要的原因。

IDG

TigerGraph集群可伸缩性测试,以图形方式显示。 使用八台机器时,速度提高了6.7倍。 如果可扩展性是完美的,那将是一条直线,并且将有8倍的加速。

云中的TigerGraph

在我进行本审查的研究时,TigerGraph宣布了一项托管云产品,该产品将于2019年在AWS上开始试用。这是TigerGraph当前为AWS和Azure云提供的自带许可证单实例映像的一个受欢迎的补充,以及执行手动设置集群的当前要求。

翻译自: https://www.infoworld.com/article/3328438/tigergraph-review-a-graph-database-designed-for-deep-analytics.html

tigergraph

tigergraph_TigerGraph评论:专为深度分析而设计的图形数据库相关推荐

  1. TigerGraph评论:专为深度分析而设计的图形数据库

    与关系(SQL)数据库或其他类型的NoSQL数据库(文档,宽列等)相比,图形数据库提供了一种更有效的关系和网络建模方法. 最近,这个领域出现了许多产品,该领域最初是(1999年)Neo4j的唯一省份. ...

  2. ​NLP产业应用实战,评论观点抽取与分析和文本语义检索深度详解

    人工智能时代,越来越多的企业正在应用AI技术开展智能化转型.其中,NLP技术拥有非常广泛的行业应用场景,包括信息检索.推荐.信息流.互联网金融.社交网络等.通过NLP技术的应用,可以支持情感分析系统对 ...

  3. 基于深度学习的汽车行业评论文本的情感分析

    使用卷积神经网络对汽车行业评论文本进行情感分析. dateset 爬取汽车之家车主口碑评论文本,抽取口碑中最满意以及最不满意评论文本,分别作为正向情感语料库和负向情感语料库. 爬虫技术视频链接:htt ...

  4. 波士顿大学研究生计算机科学专业排名,波士顿大学计算机科学排名2020年专家资讯深度分析...

    原标题:波士顿大学计算机科学排名2020年专家资讯深度分析 波士顿大学的所在位置是属于新英格兰地区New England,此区为美国独立革命的发源地,也是欧洲教徒最早登陆新大陆的地点,此区共有56所大 ...

  5. 中国数据中心行业深度分析

    中国数据中心行业深度分析 https://mp.weixin.qq.com/s/GfjhlWVUeDP9ciwa5dw5yA 艾瑞咨询 架构师技术联盟 今天 数据中心(Data Center,简称DC ...

  6. 软件方法(下)分析和设计第8章连载[20210816更新]分析 之 分析类图——知识篇

    墙上挂了根长藤,长藤上面挂铜铃 <长藤挂铜铃>:词:元庸,曲:梅翁(姚敏),唱:逸敏,1959 您在阅读<软件方法>时如果发现错误,欢迎通过微信umlchina2告知.如果作者 ...

  7. 软件方法(下)分析和设计第8章连载[20210723更新]

    墙上挂了根长藤,长藤上面挂铜铃 <长藤挂铜铃>:词:元庸,曲:梅翁(姚敏),唱:逸敏,1959 您在阅读<软件方法>时如果发现错误,欢迎通过微信umlchina2告知.如果作者 ...

  8. 05.数据的深度分析(数据挖掘、机器学习)--《数据科学概论》

    前言:基于人大的<数据科学概论>第五章,数据的深度分析(数据挖掘.机器学习).主要是机器学习与数据挖掘.具体的算法.主流工具.特征选择的内容. 文章目录 一.机器学习与数据挖掘 (1)什么 ...

  9. 基于IMDB评论数据集的情感分析

    文章目录 前言 一.大型电影评论数据集介绍 二.环境配置 三.实验模型及流程 1.实验模型 2.实验流程 四.实验代码 1.多层感知器模型代码 2.递归神经网络模型代码 3.长短期记忆模型代码 五.实 ...

最新文章

  1. Hessian 原理分析--转
  2. 如何使用 jMeter Parallel Controller - 并行控制器以及一些常犯的错误
  3. 95-872-064-源码-CEP-CepOperator源码
  4. MyBatis学习总结(24)——Mybatis常见问题汇总
  5. Coding Problem 模拟
  6. 怎么在win10服务器上搭建网站,win10怎么搭建web服务器 win10搭建web服务器的方法...
  7. 【嵌入式开发】STM8S103F3P6单线半双工串口通信
  8. win7安装OneNote
  9. Android 10.0 TV板 强制app横屏显示
  10. 文本表示(Representation)
  11. 百度违规屏蔽关键词工具
  12. view-ui中select全选实现
  13. WordPress中文汉字用户名不能注册怎么办?
  14. Linux下mysql数据库从服务器A只迁移DATA文件夹到服务器B
  15. C# QRCode生成二维码,支持中文,有utf
  16. 嵌入式中SIM卡接口电路设计
  17. 神经网络中的偏置值什么意思
  18. Linux下的软件Mysql完全卸载(包括其依赖和库等残留文件)
  19. Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法
  20. videojs+hls+rtmp网页播放

热门文章

  1. vuejs视图不能及时更新的问题 ,深入响应式原理
  2. vue 回车查询 按钮_vue之在页面中监听键盘的Enter键来触发某个按钮事件
  3. Java Springboot之数据库监控与预警
  4. 计算机专业英语cpu,计算机专业英语CPU词汇
  5. 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant
  6. 创造与魔法游戏服务器无限金币,创造与魔法无限金币版
  7. POCO::Net 简单的HTTPS程序
  8. vue 动态获取的图片路径不显示_Vue 动态图片加载路径问题和解决方法
  9. 汉字 Unicode编码范围及 计算文本的中文英文字数
  10. 电动车电池管理系统结构