无表头配置说明

对于无表头(header)的CSV文件,需要在配置文件里设置withHeaderfalse,表示CSV文件中只含有数据(不含第一行表头),同时可能还需要设置数据类型、对应的列等。

示例文件

无表头的CSV文件示例如下:

  • 点示例

    student_without_header.csv的示例数据:

    1. student100,Monica,16,female
    2. student101,Mike,18,male
    3. student102,Jane,17,female

    第一列为点ID,后面三列为属性nameagegender

  • 边示例

    follow_without_header.csv的示例数据:

    1. student100,student101,0,92.5
    2. student101,student100,1,85.6
    3. student101,student102,2,93.2
    4. student100,student102,1,96.2

    前两列的数据分别为起始点ID和目的点ID,第三列为rank,第四列为属性degree

配置示例

  1. # 连接的Nebula Graph版本,连接2.x时设置为v2。
  2. version: v2
  3. description: example
  4. # 是否删除临时生成的日志和错误数据文件。
  5. removeTempFiles: false
  6. clientSettings:
  7. # nGQL语句执行失败的重试次数。
  8. retry: 3
  9. # Nebula Graph客户端并发数。
  10. concurrency: 10
  11. # 每个Nebula Graph客户端的缓存队列大小。
  12. channelBufferSize: 128
  13. # 指定数据要导入的Nebula Graph图空间。
  14. space: student
  15. # 连接信息。
  16. connection:
  17. user: root
  18. password: nebula
  19. address: 192.168.11.13:9669
  20. postStart:
  21. # 配置连接Nebula Graph服务器之后,在插入数据之前执行的一些操作。
  22. commands: |
  23. DROP SPACE IF EXISTS student;
  24. CREATE SPACE IF NOT EXISTS student(partition_num=5, replica_factor=1, vid_type=FIXED_STRING(20));
  25. USE student;
  26. CREATE TAG student(name string, age int,gender string);
  27. CREATE EDGE follow(degree int);
  28. # 执行上述命令后到执行插入数据命令之间的间隔。
  29. afterPeriod: 15s
  30. preStop:
  31. # 配置断开Nebula Graph服务器连接之前执行的一些操作。
  32. commands: |
  33. # 错误等日志信息输出的文件路径。
  34. logPath: ./err/test.log
  35. # CSV文件相关设置。
  36. files:
  37. # 数据文件的存放路径,如果使用相对路径,则会将路径和当前配置文件的目录拼接。本示例第一个数据文件为点的数据。
  38. - path: ./student_without_header.csv
  39. # 插入失败的数据文件存放路径,以便后面补写数据。
  40. failDataPath: ./err/studenterr.csv
  41. # 单批次插入数据的语句数量。
  42. batchSize: 10
  43. # 读取数据的行数限制。
  44. limit: 10
  45. # 是否按顺序在文件中插入数据行。如果为false,可以避免数据倾斜导致的导入速率降低。
  46. inOrder: true
  47. # 文件类型,当前仅支持csv。
  48. type: csv
  49. csv:
  50. # 是否有表头。
  51. withHeader: false
  52. # 是否有LABEL。
  53. withLabel: false
  54. # 指定csv文件的分隔符。只支持一个字符的字符串分隔符。
  55. delimiter: ","
  56. schema:
  57. # Schema的类型,可选值为vertex和edge。
  58. type: vertex
  59. vertex:
  60. # 点ID设置。
  61. vid:
  62. # 点ID对应CSV文件中列的序号。CSV文件中列的序号从0开始。
  63. index: 0
  64. # 点ID的数据类型,可选值为int和string,分别对应Nebula Graph中的INT64和FIXED_STRING。
  65. type: string
  66. # Tag设置。
  67. tags:
  68. # Tag名称。
  69. - name: student
  70. # Tag内的属性设置。
  71. props:
  72. # 属性名称。
  73. - name: name
  74. # 属性数据类型。
  75. type: string
  76. # 属性对应CSV文件中列的序号。
  77. index: 1
  78. - name: age
  79. type: int
  80. index: 2
  81. - name: gender
  82. type: string
  83. index: 3
  84. # 本示例第二个数据文件为边的数据。
  85. - path: ./follow_without_header.csv
  86. failDataPath: ./err/followerr.csv
  87. batchSize: 10
  88. limit: 10
  89. inOrder: true
  90. type: csv
  91. csv:
  92. withHeader: false
  93. withLabel: false
  94. schema:
  95. # Schema的类型为edge。
  96. type: edge
  97. edge:
  98. # Edge type名称。
  99. name: follow
  100. # 是否包含rank。
  101. withRanking: true
  102. # 起始点ID设置。
  103. srcVID:
  104. # 数据类型。
  105. type: string
  106. # 起始点ID对应CSV文件中列的序号。
  107. index: 0
  108. # 目的点ID设置。
  109. dstVID:
  110. type: string
  111. index: 1
  112. # rank设置。
  113. rank:
  114. # rank值对应CSV文件中列的序号。如果没有设置index,请务必在第三列设置rank的值。之后的列依次设置各属性。
  115. index: 2
  116. # Edge type内的属性设置。
  117. props:
  118. # 属性名称。
  119. - name: degree
  120. # 属性数据类型。
  121. type: double
  122. # 属性对应CSV文件中列的序号。
  123. index: 3

Note

  • CSV文件中列的序号从0开始,即第一列的序号为0,第二列的序号为1。

  • 点ID的数据类型需要和clientSettings.postStart.commands中的创建图空间语句的数据类型一致。

  • 如果没有设置index字段指定列的序号,CSV文件必须遵守如下规则:

    • 在点数据文件中,第一列必须为点ID,后面的列为属性,且需要和配置文件内的顺序一一对应。

    • 在边数据文件中,第一列必须为起始点ID,第二列必须为目的点ID,如果withRankingtrue,第三列必须为rank值,后面的列为属性,且需要和配置文件内的顺序一一对应。


最后更新: June 29, 2021