在创建图模式之后,下一步是将数据加载到其中。这里的任务是指导GSQL加载程序如何将一组数据文件中的字段关联到我们刚才定义的图模式的顶点类型和边类型中的属性。
您应该有两个数据文件。person.csv和friendship.csv在本地磁盘上的csv。它们可以不在当前的文件夹中。
如果您出于任何原因需要退出GSQL shell,您可以通过输入“quit”(不带引号)来实现。输入gsql以再次进入。
定义一个数据加载的任务
下面的加载作业假设您的数据文件位于文件夹/home/tigergraph中。如果它们在其他地方,则在下面的加载作业脚本中替换“/home/tigergraph/person”。csv和“/ home / tigergraph/friendship.csv"和它们对应的文件路径。假设您(回到)GSQL shell中,输入以下命令集:
GSQL commands to define a loading job
Copy USE GRAPH social
BEGIN
CREATE LOADING JOB load_social FOR GRAPH social {
DEFINE FILENAME file1="/home/tigergraph/person.csv";
DEFINE FILENAME file2="/home/tigergraph/friendship.csv";
LOAD file1 TO VERTEX person VALUES ($"name", $"name", $"age", $"gender", $"state") USING header="true", separator=",";
LOAD file2 TO EDGE friendship VALUES ($0, $1, $2) USING header="true", separator=",";
}
END
让我们来看看这些命令:
开始……结束: 表明多行模式。GSQL shell将把这些标记之间的所有内容视为一个语句。这些只用于交互模式。如果运行存储在命令文件中的GSQL语句,命令解释器将研究整个文件,因此不需要开始和结束提示。
创建加载任务: 一个加载作业可以描述从多个文件到多个图对象的映射。每个文件必须分配给文件名变量。字段标签可以按名称或位置进行标记。名称标签需要源文件中的标题行。逐位标签使用整数表示源列位置0,1,…在上面的示例中,第一个LOAD语句按名称引用源文件列,而第二个LOAD语句按位置引用源文件列。请注意以下细节:
当您运行CREATE LOADING JOB 语句时,GSQL将检查语法错误,并检查指定位置中的数据文件。如果没有检测到错误,它将编译并保存您的作业。
Copy GSQL > USE GRAPH social
Using graph 'social'
GSQL > BEGIN
GSQL > CREATE LOADING JOB load_social FOR GRAPH social {
GSQL > DEFINE FILENAME file1="/home/tigergraph/person.csv";
GSQL > DEFINE FILENAME file2="/home/tigergraph/friendship.csv";
GSQL >
GSQL > LOAD file1 TO VERTEX person VALUES ($"name", $"name", $"age", $"gender", $"state") USING header="true", separator=",";
GSQL > LOAD file2 TO EDGE friendship VALUES ($0, $1, $2) USING header="true", separator=",";
GSQL > }
GSQL > END
The job load_social is created.
创建加载任务
一个加载任务可以描述从多个文件到多个图对象的映射。每个文件必须分配给文件名变量。字段标签可以按名称或位置进行标记。名称标签需要源文件中的标题行。逐位标签使用整数表示源列位置0,1,…在上面的示例中,第一个LOAD语句按名称引用源文件列,而第二个LOAD语句按位置引用源文件列。请注意以下细节:
当您运行CREATE LOADING JOB 语句时,GSQL将检查语法错误,并检查指定位置中的数据文件。如果没有检测到错误,它将编译并保存您的作业。
Copy GSQL > USE GRAPH social
Using graph 'social'
GSQL > BEGIN
GSQL > CREATE LOADING JOB load_social FOR GRAPH social {
GSQL > DEFINE FILENAME file1="/home/tigergraph/person.csv";
GSQL > DEFINE FILENAME file2="/home/tigergraph/friendship.csv";
GSQL >
GSQL > LOAD file1 TO VERTEX person VALUES ($"name", $"name", $"age", $"gender", $"state") USING header="true", separator=",";
GSQL > LOAD file2 TO EDGE friendship VALUES ($0, $1, $2) USING header="true", separator=",";
GSQL > }
GSQL > END
The job load_social is created.
运行一个加载的工作
现在可以运行加载作业,将数据加载到图中:
Copy RUN LOADING JOB load_social
结果显示如下:
Copy GSQL > run loading job load_social
[Tip: Use "CTRL + C" to stop displaying the loading status update, then use "SHOW LOADING STATUS jobid" to track the loading progress again]
[Tip: Manage loading jobs with "ABORT/RESUME LOADING JOB jobid"]
Starting the following job, i.e.
JobName: load_social, jobid: social_m1.1528095850854
Loading log: '/home/tigergraph/tigergraph/logs/restpp/restpp_loader_logs/social/social_m1.1528095850854.log'
Job "social_m1.1528095850854" loading status
[FINISHED] m1 ( Finished: 2 / Total: 2 )
[LOADED]
+---------------------------------------------------------------------------+
| FILENAME | LOADED LINES | AVG SPEED | DURATION|
|/home/tigergraph/friendship.csv | 8 | 8 l/s | 1.00 s|
| /home/tigergraph/person.csv | 8 | 7 l/s | 1.00 s|
+---------------------------------------------------------------------------+
注意加载日志文件的位置。本例假设您在默认位置/home/tigergraph/中安装了TigerGraph。在您的安装文件夹中是主要的产品文件夹,tigergraph。在tigergraph文件夹中有几个子文件夹,如日志、文档、配置、bin和gstore。如果您安装在一个不同的位置,例如/usr/local/,那么您将在/usr/local/tigergraph找到产品文件夹。