nebula-import 单机导入CSV文件 读取第一行数据时 自动加入ufeff 导致第一行数据不能导入


nebula-import 单机导入CSV文件 读取第一行数据时 自动加入ufeff 导致第一行数据不能导入,nebula-server:v3.6.0 nebula-import:3.6版本

1 个赞

你看下你的 importer 配置文件设置的是有表头还是无表头

无表头的 那种

配置文件贴一贴。btw,nebula-importer 是没有 3.6 版本的,你确认下你用的版本号。

client:
  version: v3
  address: "XXXXXX:9669"
  user: root
  password: XXX
  concurrencyPerAddress: 10
  reconnectInitialInterval: 1s
  retry: 3
  retryInitialInterval: 1s

manager:
  spaceName: SW_IPTV_TOPO
  batch: 128
  readerConcurrency: 50
  importerConcurrency: 512
  statsInterval: 10s
  hooks:
    before:
      - statements:
          - |
            USE SW_IPTV_TOPO;
            CREATE TAG IF NOT EXISTS SWITCH(SPEC_ID int, CITY_ID string, REGION_ID string, NAME string, NM_IP string, NM_NAME string);
        wait: 10s

log:
  level: INFO
  console: true
  files:
    - ../logs/nebula-importer.log

sources:
  - path: ../csv/SWITCH_NWH.csv
    csv:
      delimiter: ","
    tags:
    - name: SWITCH
      id:
       type: "STRING"
       index: 0
    props:
      - name: SPEC_ID
        type: int
        index: 1
      - name: CITY_ID
        type: string
        index: 2
      - name: REGION_ID
        type: string
        index: 3
      - name: NAME
        type: string
        index: 4
      - name: NM_IP
        type: string
        index: 5
      - name: NM_NAME
        type: string
        index: 6

这个 space 是你通过其他客户端已经创建的么?

嗯嗯 我先创建好space 再插入数据

1 个赞

:face_holding_back_tears: 学习了。

昨天我们做测试发现 在没有表头时候 nebula-import 也是读取了第一行 然后将第一行的值 确认成ufeff 后面百度这个字符 啥意思 是null 的意思 所以我分析 这里应该是bug
就是当没有表头时 程序会把表头当作null来处理 如有表头 设置不读取第一行 才时正常的

话说,你加了上面我发的链接的配置没?

加了 没有用 还是报同样的错 昨天我们做了 测试的 最后分析的原因就是我上面说的
当csv确实存在表头时 忽略读取第一含成功
当csv 不存在表头 csv全是数据时 忽略与不忽略读取第一行 都是报错 所以这里的逻辑有问题 应该是当没有表头时直接读取部csv文件