tigergraph安装与使用入门

您所在的位置:网站首页 用户界面又称什么界面 tigergraph安装与使用入门

tigergraph安装与使用入门

2023-06-06 17:30| 来源: 网络整理| 查看: 265

目录 tigergraph安装与使用入门需求Tigergraph安装1.下载2.安装 Tigergraph使用:Gadmin图形化界面管理schema数据导入导出备份解决方案导入管理视图 GSQL1.导入数据2.query

tigergraph安装与使用入门 需求

为了存储知识图谱类型的数据(三元组),可以使用传统的关系型数据库,也可以使用(据称)性能更好的非关系型数据库,如图数据库。 图数据库有Neo4j, OrientDB,Tigergraph等等,根据Tigergraph官方的benchmark,自称性能完爆各种图数据库,为了在选型上节约时间,快速投入应用,决定直接开始使用tigergraph。 当然了,图数据库除了存储三元组类型的数据以外,还适合用于其他更多的场景,此处就不提及了。

Tigergraph安装 1.下载

Tigergraph缺点就是要付费,还好有开发者版本和企业试用版可以用。 开发者版本无任何限制,但是现在好像没有继续再更新了,最新的版本已经是3.9了,开发版还是2.x。 企业试用版可以在这里申请,有50G的存储限制。对于少量的三元组数据而言,50G足够了,Tigergraph提供了高效的数据压缩,普遍可以达到10倍以上的压缩率。例如1TB的数据经过压缩之后,只有100G。 官方自带的示例FAERS数据,里面包含3700万个实体,6600万条边,全部导入大概只用了2G。对知识图谱类型的数据而言,一般实体数量较少,边的数量更多,简单估算了下,50G大概可以存储5000万个实体,10亿个三元组(未验证)。 下面是一些常见的知识图谱的数量级,将这些数据全部塞到试用版也是足够的。

名称数量icd-115万个实体snomed ct30万个实体,700万个三元组PrimeKG2万个实体,400万个三元组 2.安装

下载完成之后,会得到一个类似这样的安装包:tigergraph-3.0.0-.tar.gz,直接解压安装

$ tar -xvzf tigergraph-.tar.gz $ cd tigergraph--offline $ sudo ./install.sh

安装过程中可能会遇到提示sudo需要输入用户密码。一般情况下,直接输入密码即可;如果你是在堡垒机等环境访问你的服务器,此时你并不知道当前用户名密码是多少,又不想去找运维的麻烦,还有一个简单的办法。 网上有很多用sudo -S通过stdin读入密码的方法,一是不安全,二是也不适用这种情况。我们只要在sudoers添加一行即可。

# sudo vi /etc/sudoers user ALL=(ALL:ALL) NOPASSWD:/path/to/script.sh

你可能会疑问,当前用户已经在sudoers里,可以无需密码sudo执行命令;为什么还要验证密码?这是因为使用sudo运行一个脚本,并不意味着这个脚本具有了sudo的权限。当脚本内某一行又出现了sudo的时候,就需要验证密码了。 安装完成之后,会添加一个默认用户tigergraph,密码tigergraph,切换到这个用户,即可执行相关的命令了。同时,可以访问默认端口14240:http://localhost:14240,就能看到GraphStudio可视化界面。

Tigergraph使用:Gadmin

tigergraph用户可以使用gadmin命令,进行一些服务器参数的管理。 安装好之后,可以执行gadmin status,查看各个服务的启动状态。

$ gadmin status [ Info] Welcome to TigerGraph Developer Edition, free for non-production, research, or educational use. +--------------------+-------------------------+-------------------------+ | Service Name | Service Status | Process State | +--------------------+-------------------------+-------------------------+ | ADMIN | Online | Running | | CTRL | Online | Running | | DICT | Online | Running | | ETCD | Online | Running | | GPE | Online | Running | | GSE | Online | Running | | GSQL | Online | Running | | GUI | Online | Running | | IFM | Online | Running | | KAFKA | Online | Running | | KAFKACONN | Online | Running | | KAFKASTRM-LL | Online | Running | | NGINX | Online | Running | | RESTPP | Online | Running | | TS3 | Online | Running | | TS3SERV | Online | Running | | ZK | Online | Running | +--------------------+-------------------------+-------------------------+

这里面的每个服务含义可以参考官网文档。

图形化界面 管理schema

tigergraph使用了一种叫做Multigraph的架构。我理解就是在最上层的是一个共享的Master Graph——Global View,里面可以创建顶点(Vertex)和边(Edge),但是不包含数据;下面的每一个Graph相当于一个database,里面包含具体的数据。一个Tigergraph实例可以包含任意个Graph。每个Graph可以从Global View中引用一些顶点和边,来形成自己Graph的Schema。也可以选择不引用,只创建属于当前Graph的Schema。 如果两个graph共同引用同一个global表,那么数据也是共享的,相当于存到了同一个Vertex/Edge里。 通过Design Schema菜单即可对Schema进行相应的操作。点击在这里插入图片描述添加顶点,点击在这里插入图片描述并选择起止节点来添加边。

数据导入

在创建好Schema之后,即可导入数据。 通过Map data to graph菜单,上传csv格式的数据文件,并选择文件与相应的顶点/边进行映射。 如果一个数据文件对应一个实体,可以直接auto mapping;否则,还需要添加data filter,通过条件筛选过滤。 此处data filter生成的条件与GSQL语法一致,可以稍后使用GSQL直接创建数据导入任务。 导入任务配置完成后,到Load Data菜单点击开始任务,即可开始数据导入。

导出备份

点击左上角的Graphstudio,回到首页。 选择Export current solution,即可将当前Schema、数据导入任务与GSQL查询语句打包导出(不含数据)

解决方案导入

以官网的starterkit为例,找到Healthcare Graph (Drug Interaction/FAERS),数据集healthcare-data.tgz和schema文件healthcare-solution.tar.gz两个文件需要同时下载。schema文件的版本需要符合tg server版本。

选择Import An Existing Solution,选择healthcare-solution.tar.gz无需解压直接导入,导入会清空当前实例上的所有数据,并创建对应的graph schema。 导入schema之后,将healthcare-data.tgz解压,到Map data to graph菜单即可看到当前缺失的数据文件。找到同名的数据文件,上传,再到Load Data菜单点击开始任务,完成导入。

管理视图

点击右上角的Admin,可以切换到Adminportal,在这里可以查看运行状态,license信息等。

GSQL 1.导入数据

graphstudio配置数据导入脚本比较繁琐,我们可以用更加简单的gsql命令行方式创建数据导入任务。

$ su - tigergraph [tigergraph ~]$ gsql Welcome to TigerGraph Developer Edition, free for non-production, research, or educational use. GSQL-Dev > use graph testgraph Using graph 'testhelp basicgraph' GSQL-Dev > CREATE LOADING JOB load_datafile FOR GRAPH testgraph { DEFINE FILENAME file1 = "/home/tigergraph/drug.csv"; DEFINE FILENAME file2 = "/home/tigergraph/disease.csv"; LOAD file1 TO VERTEX Drug VALUES($0, $1, $2, $4, $5) WHERE ($2 == "药品" AND $3 == "DRUG") USING SEPARATOR=",", HEADER="true", EOL="\n"; LOAD file2 TO VERTEX Disease VALUES($0, $2, _, $6, $8) WHERE ($2 == "疾病" AND $3 == "DISEASE") USING SEPARATOR=",", HEADER="true", EOL="\n"; }

其中,占位符代表的是你的CSV文件中的第几列。例如第一个LOAD代表从CSV中取第1、2、3、5、6列,赋值给Drug实体,Drug实体有几个属性就取几列。一般第一列都是实体ID,剩下的是实体属性。 如果实体的某个字段有默认值,或者想留空,不对其赋值,那也要写出来,用下划线“ _”表示。例如第二个LOAD代表从CSV中取第1、3、7、9列,赋值给Disease实体的首尾4个属性。Disease实体的第三个属性留空。 Where条件则是简单的筛选过滤。HEADER代表数据含有标题,SEPARATOR代表CSV文件的分隔符

2.query

为了全面利用GSQL的数据探索与计算能力,需要创建并编译一段QUERY。下面这些简单操作直接在GSQL shell就可以执行,不需要编译。

SELECT *|attributeName ### Select a set of vertices. FROM vType [WHERE conditions] [ORDER BY attribute1,attribute2...] [LIMIT k] GSQL-Dev > select * from Drug where primary_id=="DEURSIL" ### 表名区分大小写 [{ "v_id": "DEURSIL", "attributes": { "drugname": "DEURSIL", "prod_ai": "URSODIOL" }, "v_type": "Drug" }] SELECT count() ### Report how many vertices or edges are in the selected set. FROM vType | from_vType -(eType)-> to_vType GSQL-Dev > select count(*) from Drug [{ "count": 249050, "v_type": "Drug" }]

其中,需要注意的是如果查询条件是主键,那么不需要写实际的字段名,而是改用primary_id代替。例如主键的字段名是drug_id,那么在查询时不应该写drug_id,而是primary_id==“XXXX”。如果查询条件是某个属性,那么使用字段名即可。

复杂的query需要create——install——run的过程。

CREATE [OR REPLACE] QUERY query_name (parameters...) FOR GRAPH graphname [RETURNS return_type] [API("vnum")] { [typedefStmts] [accumDeclarations] [otherDeclarations] [exceptionDeclarations] [queryBodyStatements] } INSTALL QUERY query_name1, query_name2, ... INSTALL QUERY ALL ### Install the given query(ies) INSTALL QUERY -OPTIMIZE ### 不需要输入Query name,自动优化所有已安装的query。在未来的版本可能会被废除。 RUN QUERY query_name (param1,param2,...) ### Run the given query, using these parameter values


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3