CSV文件导入示例
以下示例将指导您如何使用 Nebula Importer 将 CSV 数据导入到 Nebula Graph 中。在此示例中,Nebula Graph 通过 Docker
和 Docker Compose
安装。我们将通过以下步骤引导您完成该示例:
启动 Nebula Graph 服务
您可以按照以下步骤启动 Nebula Graph 服务:
- 在命令行界面上,进入
nebula-docker-compose
目录。 - 执行以下命令以启动 Nebula Graph 服务:
$ sudo docker-compose up -d
- 执行以下命令把 Nebula Graph 镜像文件下拉到本地:
$ sudo docker pull vesoft/nebula-console:nightly
- 执行以下命令以连接 Nebula Graph 服务器:
$ sudo docker run --rm -ti --network=host vesoft/nebula-console:nightly --addr=127.0.0.1 --port=3699
注意:您必须确保 IP 地址和端口号配置正确。
创建点和边的 Schema
在输入 schema 之前,必须创建一个空间并使用它。在此示例中,我们创建一个 nba 空间并使用它。
我们使用以下命令创建两个标签和两个边类型:
nebula> CREATE TAG player (name string, age int);
nebula> CREATE TAG team (name string);
nebula> CREATE EDGE serve (start_year int, end_year int);
nebula> CREATE EDGE follow (degree int);
准备配置文件
您必须配置 .yaml
配置文件,该文件规定了 CSV 文件中数据的格式。在本例中,我们创建一个名为 config.yaml
的配置文件。
在此示例中,我们按以下方式配置 config.yaml
文件:
version: v1rc1
description: example
clientSettings:
concurrency: 2 # number of graph clients
channelBufferSize: 50
space: nba
connection:
user: user
password: password
address: 127.0.0.1:3699
logPath: ./err/test.log
files:
- path: /home/nebula/serve.csv
failDataPath: ./err/serve.csv
batchSize: 10
type: csv
csv:
withHeader: false
withLabel: false
schema:
type: edge
edge:
name: serve
withRanking: false
props:
- name: start_year
type: int
- name: end_year
type: int
- path: /home/nebula/follow.csv
failDataPath: ./err/follow.csv
batchSize: 10
type: csv
csv:
withHeader: false
withLabel: false
schema:
type: edge
edge:
name: follow
withRanking: false
props:
- name: degree
type: int
- path: /home/nebula/player.csv
failDataPath: ./err/player.csv
batchSize: 10
type: csv
csv:
withHeader: false
withLabel: false
schema:
type: vertex
vertex:
tags:
- name: player
props:
- name: name
type: string
- name: age
type: int
- path: /home/nebula/team.csv
failDataPath: ./err/team.csv
batchSize: 10
type: csv
csv:
withHeader: false
withLabel: false
schema:
type: vertex
vertex:
tags:
- name: team
props:
- name: name
type: string
注意:
在上面的配置文件中,您必须将 IP 地址和端口号更改为您自己的 IP 地址和端口号。
您必须将 CSV 文件的目录更改为您自己的目录,否则,Nebula Importer 无法找到 CSV 文件。
准备 CSV 数据
在此示例中,我们准备了四个 CSV 数据文件:player.csv
、team.csv
、serve.csv
以及 follow.csv
。
serve.csv
文件中的数据如下:
100,200,1997,2016
101,201,1999,2018
102,203,2006,2015
102,204,2015,2019
103,204,2017,2019
104,200,2007,2009
follow.csv
文件中的数据如下:
100,101,95
100,102,90
101,100,95
102,101,75
102,100,75
103,102,70
104,101,50
104,105,60
105,104,83
player.csv
文件中的数据如下:
100,Tim Duncan,42
101,Tony Parker,36
102,LaMarcus Aldridge,33
103,Rudy Gay,32
104,Marco Belinelli,32
105,Danny Green,31
106,Kyle Anderson,25
107,Aron Baynes,32
108,Boris Diaw,36
team.csv
文件中的数据如下:
200,Warriors
201,Nuggets
202,Rockets
203,Trail
204,Spurs
205,Thunders
206,Jazz
207,Clippers
208,Kings
注意:
在
serve
和follow
CSV 文件中,第一列是起始点 ID、第二列是目标点 ID,其他列与config.yaml
文件一致。在
player
和team
CSV 文件中,第一列是点 ID,其他列与config.yaml
文件一致。
导入 CSV 数据
完成上述所有四个步骤后,您可以使用 Docker
或 Go
导入 CSV 数据。
使用 Go-importer 导入 CSV 数据
请参见Nebula Importer。