文章目录
Step 1. 启动Nebula容器
docker run --rm -ti --network nebula-docker-compose_nebula-net --entrypoint=/bin/sh vesoft/nebula-console:v2.5.0
Step 2. 连接 Nebula Graph 服务器
nebula-console -u root -p 123456 --address=graphd --port=9669
Step 3. 通过nebula命令行创建图的Schema
DROP SPACE Graph500
CREATE SPACE Graph500(vid_type = FIXED_STRING(128))
USE Graph500
CREATE TAG ve(id int)
CREATE EDGE ed()
Step 4. 获取数据集
wget https://www.galaxybase.com/public/download/graph500.zip && unzip graph500.zip
Step 5. 将测试数据集移动到import目录下并删除表头
sed -i '1d' vertex.csv edge.csv
Step 6. 执行如下命令,等待导入完成
docker run --rm -ti -v /data/nlp/jx/nebula-docker-compose/import/graph500/graph500.yaml:/import/graph500/graph500.yaml -v /data/nlp/jx/nebula-docker-compose/import/graph500:/import/graph500/ vesoft/nebula-importer:v2 --config /import/graph500/graph500.yaml
=============================graph500.yaml=====================================
version: v2
description: g500d
removeTempFiles: false
clientSettings:
retry: 3
concurrency: 20
channelBufferSize: 128
space: Graph500
connection:
user: root
password: 123456
address: 10.6.16.96:9669
postStart:
commands: |
DROP SPACE IF EXISTS Graph500;
CREATE SPACE IF NOT EXISTS Graph500(vid_type = FIXED_STRING(128));
USE Graph500;
CREATE TAG ve(id int);
CREATE EDGE ed();
afterPeriod: 5s
preStop:
commands: |
logPath: ./err/g500d.log
files:
- path: vertex.csv
failDataPath: ./err/ve.csv
batchSize: 2048
inOrder: false
type: csv
csv:
withHeader: false
withLabel: false
delimiter: "\t"
schema:
type: vertex
vertex:
vid:
index: 0
tags:
- name: ve
props:
- name: id
type: int
index: 0
- path: edge.csv
failDataPath: ./err/ed.csv
batchSize: 2048
inOrder: false
type: csv
csv:
withHeader: false
withLabel: false
delimiter: "\t"
schema:
type: edge
edge:
name: ed
srcVID:
index: 0
dstVID:
index: 1
===============================================================================
==============================example.yaml==============================
# 连接的Nebula Graph版本,连接2.x时设置为v2
version: v2
description: example
# 是否删除临时生成的日志和错误数据文件。
removeTempFiles:false
clientSettings:
# nGQL语句执行失败的重试次数。
retry:3
# Nebula Graph客户端并发数。
concurrency:10
# 每个Nebula Graph客户端的缓存队列大小。
channelBufferSize:128
# 指定数据要导入的Nebula Graph图空间。
space: student
# 连接信息。
connection:
user: root
password: nebula
address:192.168.11.13:9669
postStart:
# 配置连接Nebula Graph服务器之后,在插入数据之前执行的一些操作。
commands:|
DROP SPACE IF EXISTS student;
CREATE SPACE IF NOT EXISTS student(partition_num=5, replica_factor=1, vid_type=FIXED_STRING(20));
USE student;
CREATE TAG student(name string, age int,gender string);
CREATE EDGE follow(degree int);
# 执行上述命令后到执行插入数据命令之间的间隔。
afterPeriod:15s
preStop:
# 配置断开Nebula Graph服务器连接之前执行的一些操作。
commands:|
# 错误等日志信息输出的文件路径。
logPath:./err/test.log
# CSV文件相关设置。
files:
# 数据文件的存放路径,如果使用相对路径,则会将路径和当前配置文件的目录拼接。本示例第一个数据文件为点的数据。
- path:./student_without_header.csv
# 插入失败的数据文件存放路径,以便后面补写数据。
failDataPath:./err/studenterr.csv
# 单批次插入数据的语句数量。
batchSize:10
# 读取数据的行数限制。
limit:10
# 是否按顺序在文件中插入数据行。如果为false,可以避免数据倾斜导致的导入速率降低。
inOrder:true
# 文件类型,当前仅支持csv。
type: csv
csv:
# 是否有表头。
withHeader:false
# 是否有LABEL。
withLabel:false
# 指定csv文件的分隔符。只支持一个字符的字符串分隔符。
delimiter:","
schema:
# Schema的类型,可选值为vertex和edge。
type: vertex
vertex:
# 点ID设置。
vid:
# 点ID对应CSV文件中列的序号。CSV文件中列的序号从0开始。
index:0
# 点ID的数据类型,可选值为int和string,分别对应Nebula Graph中的INT64和FIXED_STRING
type:string
# Tag设置。
tags:
# Tag名称。
- name: student
# Tag内的属性设置。
props:
# 属性名称。
- name: name
# 属性数据类型。
type:string
# 属性对应CSV文件中列的序号。
index:1
- name: age
type:int
index:2
- name: gender
type:string
index:3
# 本示例第二个数据文件为边的数据。
- path:./follow_without_header.csv
failDataPath:./err/followerr.csv
batchSize:10
limit:10
inOrder:true
type: csv
csv:
withHeader:false
withLabel:false
schema:
# Schema的类型为edge。
type: edge
edge:
# Edge type名称。
name: follow
# 是否包含rank。
withRanking:true
# 起始点ID设置。
srcVID:
# 数据类型。
type:string
# 起始点ID对应CSV文件中列的序号。
index:0
# 目的点ID设置。
dstVID:
type:string
index:1
# rank设置。
rank:
# rank值对应CSV文件中列的序号。如果没有设置index,请务必在第三列设置rank的值。之后的列依次设置各属性。
index:2
# Edge type内的属性设置。
props:
# 属性名称。
- name: degree
# 属性数据类型。
type:double
# 属性对应CSV文件中列的序号。
index:3
===============================================================================