TigerGraph文档
2.3
2.3
  • TigerGraph 2.3 技术文档目录
  • TigerGraph 版本比较
  • GSQL 图数据库算法库
  • 版本发布, 功能变更
    • 版本发布 - TigerGraph 2.3
      • 版本发布 - TigerGraph 2.2
    • 变更日志
  • INTRODUCTION AND OVERVIEW
    • TigerGraph 入门指南
    • GSQL 101
      • 环境准备
      • 定义一个Schema
      • 加载数据
      • 使用内置的SELECT进行查询
      • 使用参数化GSQL查询进行查询
      • 总结:你学到的东西
    • TigerGraph平台概览
    • Knowledge Base and FAQs
      • TigerGraph 常见问题
      • GSQL 常见问题
    • Kafka Loader用户手册
  • 系统管理指南
    • TigerGraph 管理员指南
      • 硬件及软件配置
      • 安装和配置
        • 安装指南
        • 高可用(HA)集群配置
        • 集群的扩容
        • 软件许可激活
      • 系统权限管理
        • 用户权限及验证
        • LDAP
        • 单点登录(SSO)
      • 数据加密
        • 链接的加密
        • 非活跃数据(Data At Rest)的加密
      • 系统管理
        • 基于Web的管理工具:Admin Portal
        • 使用gadmin工具管理
        • 数据的备份与恢复
        • 系统维护中的常见问题
  • 开发者指南
    • GSQL 语言开发指南
      • 第一部分 数据定义及加载
        • 简介
        • 系统和语言基础
        • 定义一个图模型(Graph Schema)
        • 修改图模型
        • 创建数据加载任务
        • 执行加载作业
        • 附录
          • 关键词和系统预留词
          • GSQL 从开始到结束的整个过程和数据流向
      • 第二部分 查询
        • 简介
        • 创建、安装、执行查询
        • 数据类型
        • 累加器(Accumulators)
        • 运算符,函数和表达式
        • 声明和赋值
        • SELECT语句
        • 控制流语句
        • 数据修改语句
        • 输出语句以及文件对象
        • 异常处理语句
        • 注释
        • 附录
          • 附录A: 一般错误和问题
          • 附录B:查询语言的完整正式语法
          • 附录C. 图查询语言的预留词列表
          • 附录D. 示例
    • RESTPP API 开发指南
      • 简介
      • RESTPP请求
      • 系统预制函数(Endpoints)
      • 系统预制函数请求格式(JSON)
    • 事务处理及ACID支持
  • 图形界面 可视化
    • GraphStudio 用户指南
      • GraphStudio 概述
      • GraphStudio许可证
      • 用户权限管理
      • 设计图模型(Schema)
      • 将数据映射到图
      • 加载数据
      • 探索图数据
      • 编写查询
      • 导入和导出解决方案
      • 已知问题
      • GraphStudio中的专利及第三方软件版权说明
Powered by GitBook
On this page
  • TIGERGRAPH开发者版本和商业版有什么区别?
  • TIGERGRAPH的架构
  • TIGERGRAPH相对于其它常见图数据库有何优势?
  • 系统特性
  • TIGERGRAPH是否支持从HDFS或者RDBMS读取数据?
  • 如何更新TigerGraph Server LICENSE?
  • 如何更新GRAPH STUDIO的LICENSE?
  • 如何查看当前TIGERGRAPH版本?
  • 一台机器可以安装多个TIGERGRAPH吗?
  • TIGERGRAPH是否向前兼容?
  • 如何升级TIGERGRAPH?
  • 一个TIGERGRAPH可以有多个从存储上隔离的图吗?
  • 如何确定机器配置?
  • TIGERGRAPH是否支持JAVA API?
  • TIGERGRAPH是否有内置的算法?
  • GRAPHSTUDIO支持哪些浏览器?
  • 系统使用及配置
  • TIGERGRAPH使用哪些端口?如果冲突怎么办?
  • 为何修改配置后没有生效?
  • 有哪些常用的GADMIN命令?
  • 为何没有GADMIN和GSQL命令?
  • 如何查询节点和边的个数?
  • 如何查询特定的节点或者边?
  • 如何删除节点和边?
  • 如何删除图里的所有节点和边?
  • 如何卸载TIGERGRAPH?
  • 图结构设计技巧
  • 为何不建议频繁的修改SCHEMA?
  • 需要查询某个时间段内的所有交易,总交易数目很大,如何高效设计SCHEMA?
  • 安装GQUERY比较慢,如何优化?
  • 为何启动实时数据更新之后,查询变慢了?
  • 为何查询超时?
  • 常见报错信息
  • 执行GSQL命令时显示CONNECTION REFUSED.,怎么办?
  • 执行GSQL命令时提示FAIL TO LOCK THE CATALOG,怎么办?
  • 执行GSQL命令加载SCHEMA、数据或者安装GQUERY时可以CTRL+C退出吗?
  • 安装GQUERY失败,如何处理?
  • 执行GADMIN START之后GPE或者GSE还是DOWN,怎么办?
  • 执行GADMIN START之后TS3的状态是DOWN,怎么办?
  • 为何打不开GRAPHSTUDIO?
  • 为何GSE、GPE的状态都是NOT_READY?

Was this helpful?

  1. INTRODUCTION AND OVERVIEW
  2. Knowledge Base and FAQs

TigerGraph 常见问题

PreviousKnowledge Base and FAQsNextGSQL 常见问题

Last updated 6 years ago

Was this helpful?

TIGERGRAPH开发者版本和商业版有什么区别?

请参见

TIGERGRAPH的架构

TigerGraph包含如下重要组件:

  1. gadmin: 配置和管理TigerGraph的程序

  2. GPE:Graph Processing Engine,核心组件,负责图计算

  3. GSE:Graph Storage Engine,核心组件,负责图存储

  4. GSQL: 处理GSQL语言编译执行的程序

  5. GraphStudio:图形化展示工具(基于浏览器)

TIGERGRAPH相对于其它常见图数据库有何优势?

系统特性

TIGERGRAPH是否支持从HDFS或者RDBMS读取数据?

如何更新TigerGraph Server LICENSE?

  • 执行 gadmin status license 查看当前license的有效期;

  • 执行 gadmin set-license-key <new_license> && gadmin config-apply && gadmin restart -fy更新license.

如何更新GRAPH STUDIO的LICENSE?

如何查看当前TIGERGRAPH版本?

gsql –version 可以查看gsql版本信息,gadmin version可以查看每个模块的版本信息。

一台机器可以安装多个TIGERGRAPH吗?

只能安装一个,否则可能有多个端口冲突。

TIGERGRAPH是否向前兼容?

兼容的情况,可以直接升级,可以保留图数据库数据以及gquery;不兼容的情况,请先卸载TigerGraph,再安装新版本。

如何升级TIGERGRAPH?

分两种情况:

  1. 单机版本:直接执行install.sh即可,安装脚本会保留旧的配置、数据、schema、查询;

  2. 集群版本:解压缩离线安装包,从中提取 tigergraph.bin,在主节点m1以tigergraph账户上执行、bash tigergraph.bin

一个TIGERGRAPH可以有多个从存储上隔离的图吗?

一个TigerGraph暂时只能有一个图,但是图里可以有多个不联通的子图。也可以使用多图(MultiGraph)。

如何确定机器配置?

TigerGraph支持数据压缩,一般占用内存为原始数据量的40%-60%;考虑到增量数据更新以及执行查询时需要额外申请的内存,建议内存和原始数据量一致(分布式情况下总内存大小和数据量相同即可)。CPU可根据查询的复杂度、QPS以及响应时间综合考虑。

TIGERGRAPH是否支持JAVA API?

TIGERGRAPH是否有内置的算法?

GRAPHSTUDIO支持哪些浏览器?

系统使用及配置

TIGERGRAPH使用哪些端口?如果冲突怎么办?

使用的端口有:

  • 14240(或者44240)

  • 5500

  • 6500

  • 9000

  • 7500,等等。

可以使用命令gadmin –dump-config | grep -i port查看所有的端口,然后修改对应的端口即可,例如修改UI的端口:gadmin –configure nginx.services.port,输入新的端口号,然后依次执行 gadmin config-apply && gadmin restart -fy 即可。

为何修改配置后没有生效?

请确认执行:gadmin config-apply && gadmin restart -fy

有哪些常用的GADMIN命令?

查看服务状态:gadmin status
启动服务: gadmin start
停止服务: gadmin stop -fy
重启服务: gadmin restart -fy
修改配置: gadmin --configure
应用配置: gadmin config-apply
修改runtime变量: gadmin --configure runtime
查看license有效期: gadmin status license
更新license: gadmin set-license-key [new_license]
查看gse log位置: gadmin log -v gse
查看节点和边总个数: gadmin status -v graph

为何没有GADMIN和GSQL命令?

这两个命令都位于目录~/.gium 下,请查看是否有对应的文件,如果有,把该目录加入PATH环境变量即可:export PATH=~/.gium:$PATH

如果没有对应的文件,可能安装过程有问题,请重新安装尝试。

如何查询节点和边的个数?

查看所有节点和边类型的总个数: gadmin status -v graph

查看每种节点类型的个数:
curl -H 'Content-Type:application/json' -X POST 'http://localhost:9000/builtins' -d '{"function":"stat_vertex_number","type":"*"}'
查看每种边类型的个数:
curl -H 'Content-Type:application/json' -X POST 'http://localhost:9000/builtins' -d '{"function":"stat_edge_number","type":"*"}'

如何查询特定的节点或者边?

查询节点:
curl -sX GET "http://localhost:9000/graph/[graph_name]/vertices/[vertex_type]/[vertex_id]"

或者

查询节点:
gsql -g [graph_name] 'select * from [vertex_type] where primary_id == "[vertex_id]"'

查询边:

curl -sX GET "http://localhost:9000/graph/[graph_name]/edges/[src_vertex_type]/[src_vertex_id]/[edge_type]/[dest_vertex_type]/[dest_vertex_id]"

请替换其中的graph_name/vertex_type/vertex_id为自己的图名称/节点类型/节点ID.

如何删除节点和边?

删除某个节点:
curl -sX DELETE "http://localhost:9000/graph/[graph_name]/vertices/[vertex_type]/[vertex_id]"
删除某条边:
curl -sX DELETE "http://localhost:9000/graph/[graph_name]/edges/[src_vertex_type]/[src_vertex_id]/[edge_type]/[dest_vertex_type]/[dest_vertex_id]"
删除某种类型的所有节点和边:
curl -sX DELETE "http://localhost:9000/graph/[graph_name]/vertices/[vertex_type]"

请替换其中的graph_name/vertex_type/vertex_id为自己的图名称/节点类型/节点ID. 删除节点之后,依附于该节点的边会自动删除。

如何删除图里的所有节点和边?

可以执行命令 gsql 'CLEAR GRAPH STORE -HARD',这会删除所有的节点和边;

如何卸载TIGERGRAPH?

依次执行如下命令即可:

gadmin stop -fy
pkill ts3svc
pkill gadmin_server
rm -rf ~/tigergraph ~/tigergraph_coredump ~/.gium ~/.gsql ~/.gsql_fcgi ~/.syspre ~/.venv

分布式环境下,需在其它节点上分别执行后面三条命令。

图结构设计技巧

为何不建议频繁的修改SCHEMA?

会影响性能。

Schema动态修改的功能提供了便利性,但是使用不好也可能引入性能问题。例如,删除节点中的某个属性,虽然表面上看节点没有这个属性了,但是从物理上看,该属性占用的存储还在,只是图引擎访问到它时故意忽略了它。因此,推荐的操作是,在Schema设计之初,就统筹想好需要用到的数据、属性、关系,以及在当前Schema设计之下能否高效的实现所有的查询逻辑,而尽量避免后续修改Schema。

需要查询某个时间段内的所有交易,总交易数目很大,如何高效设计SCHEMA?

gquery查询的性能和查询过程中需要访问的节点和边的个数线性相关。

直觉的做法是,激活所有的交易节点,然后判断其时间属性,在指定的时间区间则作为结果输出。但是这种做法在总交易数目比较大的时候,需要激活的节点比较多,性能会比较差。推荐的做法是,建立虚拟的日期节点(例如,“20181015”),把所有发生在这一天的交易关联到相应的日期节点下。这样,遍历时只要先访问日期节点再访问相关联的交易节点即可,需要激活的节点会大大减少。

安装GQUERY比较慢,如何优化?

安装gquery时,需要把gquery代码翻译成C++代码,然后编译进入libudf.so并动态加载,最后注册为Restful接口,大概需要一分钟左右。

如果需要安装多个gquery,可以批量安装,也就是:

每个gquery里不加入install query xxx语句或者执行gsql 'install query xxx',调用gsql依次编译每个gquery,最后执行 gsql -g [YourGraph] 'install query *'即可(请替换语句中的YourGraph为您定义的Graph名称)。

为何启动实时数据更新之后,查询变慢了?

有两种可能:

  1. 实时数据更新有很多删除节点、新建节点操作。过多的删除节点会影响性能,建议修改为更新节点属性。

为何查询超时?

系统缺省的timeout时间为16s,可通过如下命令修改:

修改timeout时间
gadmin --configure timeout
# 修改除GraphStudio.WebSocket.Timeout之外的timeout为3600(一小时)或者更长的时间
Test servers with supplied settings? [Y/n]
# 保存配置,输入y
Save settings? [y/N] y
gadmin config-apply
gadmin restart -fy

如果查询时间有可能超过2小时(例如,跑社区发现算法),则还需要修改tigergraph/config/nginx/nginx_[1-n].conf中的fastcgi_read_timeout、fastcgi_send_timeout(各两处)。该文件的个数和节点的个数相同,也就是说一个节点一个nginx.conf配置。

常见报错信息

执行GSQL命令时显示CONNECTION REFUSED.,怎么办?

请执行gadmin status gsql查看服务状态,

  • 如果状态是down,请执行gadmin start admin && gadmin start gsql尝试启动服务;

  • 如果之后gsql还是down,请执行bash -x /home/tigergraph/tigergraph/dev/gdk/gsql/gsql_server_util START查看错误信息

  • 也可联系售前协助。

执行GSQL命令时提示FAIL TO LOCK THE CATALOG,怎么办?

请执行gadmin status查看服务状态,

  • 如果有部分服务是down,请执行gadmin start启动服务;

  • 否则,可能有其它终端在执行gsql命令,请等待对方执行完成。

  • 如果确认无需等待,可以执行gadmin restart gsql -fy强制重新获取控制权

(注意,gadmin restart gsql -fy会导致对方的gsql命令执行失败)。

执行GSQL命令加载SCHEMA、数据或者安装GQUERY时可以CTRL+C退出吗?

不建议,可能导致部分服务状态异常。如果出现异常状态,可以执行gadmin restart -fy重启服务。

安装GQUERY失败,如何处理?

请根据终端打印出的错误信息修改代码;

此外,请查看文件~/tigergraph/dev/gdk/gsql/logs/GSQL_LOG,可能含有额外的错误信息。

由于该文件是append方式写入的,可以在安装gquery之前删除该文件,安装失败之后再在该文件中搜索error,以保证错误信息都是本次安装相关的。

执行GADMIN START之后GPE或者GSE还是DOWN,怎么办?

请查看对应的log文件:

gadmin log gse/gpe可以显示gse/gpe的log文件;使用gadmin log -v gse/gpe可以显示对应文件的最后10行。

执行GADMIN START之后TS3的状态是DOWN,怎么办?

请执行 gadmin start ts3

为何打不开GRAPHSTUDIO?

GraphStudio对应的端口为14240或者44240,请使用命令netstat -nlpt | grep 4240确认。找到端口后,执行curl -v ‘127.0.0.1:14240’或者 curl -v ‘127.0.0.1:44240’验证结果是否正常;

如果curl命令正常,但是浏览器打不开,请检查网络配置或者防火墙配置。如果没有对应的端口被打开,请使用gadmin status查看状态,或者使用gadmin restart -fy重启服务试试。

为何GSE、GPE的状态都是NOT_READY?

可能有两种情况:

  1. 图数据库中没有数据,导入schema和数据即可

  2. 系统刚启动,还在加载数据至内存;可通过top命令查看内存占用,不再增长时即可

TigerGraph是C++开发的分布式图数据库,支持数据压缩,单机加载速度可以达到90GB/h(SSD)或者60GB/h(机械硬盘),支持6000TPS以上的实时数据更新,且几乎不影响查询性能;分布式环境下并行加载速度、实时数据更新、查询速度,和节点个数呈弱线性增长。支持百亿节点和千亿条边,TB级的数据量。这里是,报告中使用的脚本等文件可以在上获得,欢迎重复试验。

支持,请参考

如果GraphStudio证书过期,打开或者页面时会有对话框提示,点击“update”;在弹出的页面中箭头1处输入新的license,点击箭头2处的update,然后在箭头3处可以看到新的有效期。

TigerGraph的版本号分为三个字段major.minor.revision(例如,2.2.2),如果是major版本号更新,不支持兼容;如果是minor版本号更新,可能兼容,请咨询;如果是revision版本号更新,肯定兼容。

没有内置的Java API,但是TigerGraph支持RESTful接口,可以使用Java调用RESTful接口。参见

参见

参见

如果只是想删除某个子图下的节点和边,建议使用 “”按类型一个个删除。

磁盘IO问题:如果磁盘是机械硬盘,请优先考虑这种情况。top命令查看cpu和内存的利用率,iostat查看磁盘IO。如果cpu利用率不高,但是磁盘IO很高,那么瓶颈很可能在后者。如果有多个磁盘,可以把~/tigergraph/gstore/、~/tigergraph/kafka/、~/tigergraph/logs/放置到不同的目录;如果磁盘数据多于4个,可以考虑建立LVM,使用striped模式。参考. 当然,如果可以换为SSD最好;

可以在加载数据之前,这样的话重启会更快一些。

一份TigerGraph和Neo4J、Neptune、JanusGraph、ArangoDB的性能测试对比报告
这个GitHub链接
tg-connect
support@tigergraph.com
RESTPP API User Guide
GSQL图数据算法库
LVM Linear vs Striped Logical Volumes
删除某种类型的所有节点和边
修改timeout
TigerGraph 版本比较
硬件及软件配置
TigerGraph 架构
Graph Studio License 更新