ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

知识图谱:【图数据库Nebula(五)】——Nebula Importer导入数据

2021-10-24 16:33:53  阅读:336  来源: 互联网

标签:index false 图谱 Nebula Step Importer csv type


文章目录

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
===============================================================================

标签:index,false,图谱,Nebula,Step,Importer,csv,type
来源: https://blog.csdn.net/u013010473/article/details/120935723

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有