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
  • 选择顶点
  • 选择边

Was this helpful?

  1. INTRODUCTION AND OVERVIEW
  2. GSQL 101

使用内置的SELECT进行查询

你现在有了一个有数据的图!您可以运行一些简单的内置查询来检查数据。

选择顶点

下面的GSQL命令报告person顶点的总数。person.csv数据文件标题行后有7行。

GSQL command
SELECT count() FROM person

类似地,下面的GSQL命令报告friendship边的总数。friendship.csv文件在标题行后也有7行。

GSQL command
SELECT count() FROM person-(friendship)->person

结果如下所示:

GSQL > SELECT count() FROM person
[{
 "count": 7,
 "v_type": "person"
}]
GSQL > SELECT count() FROM person-(friendship)->person
[{
 "count": 14,
 "e_type": "friendship"
}]
GSQL >

边数

为什么有14条边?对于无向边,GSQL实际上创建两条边,每个方向一条

如果您想查看关于特定顶点集的详细信息,可以使用“SELECT *”和WHERE子句来指定谓词条件。以下是一些可以尝试的语句:

GSQL command
SELECT * FROM person WHERE primary_id=="Tom"
SELECT name FROM person WHERE state=="ca"
SELECT name, age FROM person WHERE age > 30

结果是JSON格式,如下所示:

GSQL shell
GSQL > SELECT * FROM person WHERE primary_id=="Tom"
[{
 "v_id": "Tom",
 "attributes": {
   "gender": "male",
   "name": "Tom",
   "state": "ca",
   "age": 40
 },
 "v_type": "person"
}]
GSQL > SELECT name FROM person WHERE state=="ca"
[
 {
   "v_id": "Amily",
   "attributes": {"name": "Amily"},
   "v_type": "person"
 },
 {
   "v_id": "Tom",
   "attributes": {"name": "Tom"},
   "v_type": "person"
 }
]
GSQL > SELECT name, age FROM person WHERE age > 30
[
 {
   "v_id": "Tom",
   "attributes": {
     "name": "Tom",
     "age": 40
   },
   "v_type": "person"
 },
 {
   "v_id": "Dan",
   "attributes": {
     "name": "Dan",
     "age": 34
   },
   "v_type": "person"
 }
]

选择边

以同样的方式,我们可以看到关于边的细节。为了描述一个边,您可以在三个部分中指定顶点和边的类型,并添加一些标点符号来表示遍历方向:

GSQL syntax
source_type -(edge_type)-> target_type

注意,无论是无向边还是有向边,总是使用箭头->。这是因为我们描述的是查询在图中的遍历(搜索)方向,而不是边本身的方向。

我们可以在WHERE子句中使用from_id谓词,从由“from_id”标识的顶点选择所有friendship边。关键字ANY表示允许任何边缘类型或任何目标顶点类型。以下两个查询的结果相同.

GSQL command
SELECT * FROM person-(friendship)->person WHERE from_id =="Tom"
SELECT * FROM person-(ANY)->ANY WHERE from_id =="Tom"

对内置边选择查询的限制

为了防止查询可能返回过多的输出项,内置边查询有以下限制:

1. 必须指定源顶点类型

2. 必须指定from_id条件

用户定义查询没有这样的限制。

结果如下所示:

GSQL
GSQL > SELECT * FROM person-(friendship)->person WHERE from_id =="Tom"
[
 {
   "from_type": "person",
   "to_type": "person",
   "directed": false,
   "from_id": "Tom",
   "to_id": "Dan",
   "attributes": {"connect_day": "2017-06-03 00:00:00"},
   "e_type": "friendship"
 },
 {
   "from_type": "person",
   "to_type": "person",
   "directed": false,
   "from_id": "Tom",
   "to_id": "Jenny",
   "attributes": {"connect_day": "2015-01-01 00:00:00"},
   "e_type": "friendship"
 }

另一种检查图大小的方法是使用管理员工具gadmin的选项之一。从Linux shell中输入命令:

#Linux shell
gadmin status graph -v
#Linux shell
[tigergraph@localhost ~]$ gadmin status graph -v
verbose is ON
=== graph ===
[m1    ][GRAPH][MSG ] Graph was loaded (/usr/local/tigergraph/gstore/0/part/): partition size is 4.00KiB, SchemaVersion: 0, VertexCount: 7, NumOfSkippedVertices: 0, NumOfDeletedVertices: 0, EdgeCount: 14
[m1    ][GRAPH][INIT] True
[INFO  ][GRAPH][MSG ] Above vertex and edge counts are for internal use which show approximate topology size of the local graph partition. Use DML to get the correct graph topology information
[SUMMARY][GRAPH] graph is ready
Previous加载数据Next使用参数化GSQL查询进行查询

Last updated 6 years ago

Was this helpful?