修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

搜索
    中文

      背景知识

      Ultipa 介绍

      Ultipa(Ultipa Graph HTAP System,以下简称 Ultipa Graph)是一套超高性能原生图数据库与计算系统。

      Ultipa Graph 产品生态包含:

      1. 业界最高性能的实时图计算引擎;
      2. 高性能、高可用、持久化存储服务;
      3. 简洁、流畅的用户图形操作界面与知识图谱系统;
      4. 功能全面的命令行工具;
      5. 灵活的快速导入导出工具;
      6. 可一键部署的 docker 镜像;
      7. 各种流行编程语言的 SDK、API 开发工具;
      8. 本文所重点讲述的图操作语言(GQL)UQL。

      Ultipa Graph 支持丰富的查询方式、大量的高性能图算法以及对海量数据的实时处理,真正意义上把非常耗时的非实时工作提升为实时(real-time)处理的操作,为用户节省大量时间成本,为图计算产品适用于更广阔的商业和大数据分析场景带来无限可能。

      什么是 UQL

      UQL(或 uQL)全称 Ultipa Query Language,是通用图操作语言 GQL 的一种。UQL 是 Ultipa 独有的高性能查询与管理语言,可供开发人员快速学习、上手使用 Ultipa 图系统。UQL 支持对 Ultipa 图系统的查询、删除、修改、添加、图遍历、子图匹配、schema 管理、属性管理、引擎管理、索引管理、图集管理、各类任务管理、权限管理等功能。用户可以通过 Ultipa CLI(命令行工具)、Ultipa Manager(图形界面)或者 SDK(Ultipa Software Development Kits)运行 UQL,UQL 将很快实现图灵完备,提供给开发者使用。

      UQL 在整体功能与兼容性上与 GQL 国际标准保持同步。GQL 标准预计在 2024 年推出,Ultipa 团队已经开始加入标准化组织,共建标准图查询语言。

      常用术语

      名称
      类型
      GQL Graph Query Language,即图查询语言,也是继 SQL(Structured Query Language)之后唯一会成为数据操作标准的语言。
      UQL (uQL) Ultipa Query Language,属于 GQL 的一种,可以全方位地操作 Ultipa 图系统。
      点 (node) 图领域中用来表示实体的顶点 (vertex),在 Ultipa 图系统中称为节点 (node)。
      边 (edge) 连接两个节点的边,Ultipa 图系统中的边均为有向边(见下面 "入边、出边、左向边、右向边" 的解释)。
      路径 (path) 有确定的起点和终点、由点边交替相连构成的序列称为路径,路径中的点可以重复出现,但边不能重复出现。路径中的点、边序列即可看作路径的唯一标识符。
      环路 (circle) (V4.0) 考察一条路径中的非起点位置上节点,若有节点重复出现则称该路径含有环路成分。
      (V4.1) 当路径的起点、终点非同一点时,只要路径上有重复节点则称该路径含有环路成分;当路径的起点、终点为同一点时,环路判断方法同 V4.0。
      例如:

      (进行路径查询时,含有环路成分的路径在使用查询参数 no_circle() 时会被过滤掉,即不会被返回。)
      最短路径 (shortest) 从起点经过最少的边数(至少一条边)达到终点时,称该路径为该起点到该终点的最短路径。当路径上的边带有权重时,“边数最少”应理解为“边的权重和最小”。
      图 (graph) 由点和边组成的数据集称为图,图可以看成由多条路径组成的数据集合,图的最小单位是点。
      子图 (subgraph) 子图由全图的一部分点和边组成,点查询、路径查询的结果都可以看作是一张子图。
      图数据集 (GraphSet) 一个图数据集(简称为图集)代表一个由点和边构成的数据集,以及在此数据集上创建的索引、用户权限、算法任务等一系列内容。一个 Ultipa 图系统中可以包含多个图集。
      模式 (schema) Ultipa 图系统中,点、边的模式由多个属性构成,用于描述各种点、边的结构和内容,一个点、边只能属于一个 schema。
      属性 (property) 一个属性隶属于某个 schema 并用来描述点、边的结构特征。属性支持各种数据类型,如整形、浮点、字符等,以及一些数据结构,如数组、字典等。
      属性索引 (property index) 索引机制能提高属性的查询效率,创建好的索引树存储到磁盘之上。
      全文索引 (full-text index) 创建全文索引(对文本进行分词)能提高长字符串的查询效率。全文索引支持不同的字典,以便针对不同的数据集作出切词优化。
      引擎索引 (engine index) 通过将属性加载到计算引擎来提升路径查询、深度图检索的效率,通常能使效率提升几个数量级。
      实例 (instance) Ultipa 图系统服务实例,即 Ultipa Server 的运行程序;每个实例一般运行在一台虚拟或者物理主机之上,多个实例可以组成一个集群系统。
      过滤器 (filter) 用于在图操作中对点、边进行过滤。Ultipa Filter 本质上是一个逻辑树,非常类似于编程语言中的 IF,使用各种条件操作符、逻辑操作符、数值运算符等,详见《过滤器》一章。
      LTE Load to Engine,将 property 加载到计算引擎。
      UFE Unload from Engine,从计算引擎移除 property。
      入边 从其它点指向点 a 的边称为 a 的入边,或 a 的入方向的边,可表示为 a<--、-->a
      出边 从点 a 指向其它点的边称为 a 的出边,或 a 的出方向的边,可表示为 a-->、<--a
      左向边 在路径中从后一个点指向前一个点的边称为左向边,可表示为 a<--b
      右向边 在路径中从前一个点指向后一个点的边称为右向边,可表示为 a-->b
      ID ( _id ) 点独有的唯一标识符,用 string 存储,最大长度 128 字节。
      UUID ( _uuid ) 点、边的唯一标识符,用 uint64 存储。
      边起点 ( _from、_from_uuid ) 有向边起点的 ID 或 UUID。
      边终点 ( _to、_to_uuid ) 有向边终点的 ID 或 UUID。
       V4.1  V4.1 版特有的功能。

      语法概述

      UQL 的设计灵感来源于对图的深度理解,并结合了工业界对图的高维性、扩展性等需求。

      链式表达 + 语义组装 + 别名调用

      UQL 示例:

      n(1).e({time > prev_e.time})[3].n(as target)
      group by target.level with count(target) as quantity
      order by quantity desc
      return target.level, quantity limit 10

      说明:

      • UQL 的增、删、改、查功能是由风格为 [命令].[参数].[参数]…链式语句 执行的,即上面示例中的 n(... ).e(...)[3].n(...),一个 UQL 语句可以包含多个链式语句;
      • UQL 的查询结果通过 子句 来进行加工和组装,即上面示例中的 group by ...with ...order by ...return ...limit ...
      • UQL 的查询结果还可以通过 函数 来进行运算,即上面示例中的 count(...)
      • UQL 的各个链式语句、子句之间通过 自定义别名 来进行数据临时存储和传递调用,即上面示例中的 targetquantity,需使用关键词 as 先定义再调用;
      • 多步模板内部可通过 系统别名 prev_nprev_e 来传递和调用数据,即上面示例中的 ...time > prev_e.time...
      • UQL 语句中支持转义符 \、制表符 \t、回车换行符 \r\n 以及注释符 ///**/

      UQL 设计逻辑:

      • 可以返回并使用多维结果
      • 支持子图、路径、点、边、属性、数组、表格等高级数据结构,且定义清晰
      • 可以轻松描绘子图过滤,直接对接、适配高性能图计算引擎
      • 易读,易写,易学,与人脑思维模式保持一致
      • 链式表达 + 语义组装,支持各种功能扩展,“链”本身就是一条路径
      • 函数式风格更符合如今复杂的数据处理需求,可以提供无限的扩展空间
      • 函数式风格甚至可以允许用户自定义扩展语言语法特性,满足复杂图操作的需求

      UQL 不使用 SQL like 作为基础的原因:

      • 无法明确表达高维数据,以及其组合,如:路径,点,边,属性,聚合运算结果的集合
      • SQL 方式的路径过滤过于复杂低效,如:路径搜索,模板搜索,图遍历
      • SQL 阅读起来与人脑呈相反逻辑,理解难度大,如:嵌套语句,连表搜索等

      UQL 语法特性

      UQL 具备 DQL、DDL、DML、DCL 语法特性:

      • DQL:数据查询语法,如点、边、路径查询;
      • DDL:数据定义语法,可以对图集的内容进行增、删、改、查;
      • DML:数据运维语法,如增删图集、修改 schema、引控制等;
      • DCL:访问控制语法,主要用于操作数据库的权限设置,如用户管理、角色管理、赋权与撤销等。

      保留字 (Reserved Words)

      分类
      保留字
      系统属性 _id_uuid_from_to_from_uuid_to_uuid
      系统表名 _graph_nodeSchema_edgeSchema_nodeProperty_edgeProperty_nodeIndex_edgeIndex_nodeFulltext_edgeFulltext_statistic_top_task_policy_user_privilege_algoList_extaList
      系统别名 thisprev_nprev_e
      子句关键词 innincontainsxorasgroup byorder byasc, descskiplimitreturnwithwhere,, uncollectunion, allcall
      函数关键词 casewhenthenelseend
      UQL 前缀 exec taskoptional
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写