nebula从neo4j导入数据,部分属性带回车,拼insert报错,有什么好办法解决吗?

nebula从neo4j导入数据,neo4j label中部分顶点的属性中带换行,导致拼成nebula的insert语句报错,例如下面这条neo4j数据,导入时就会报语法错误。


我目前采用的办法是抠出这条数据的id(n),然后在exec中跳过这条数据,但是由于数据量比较大,这类数据还不少,导入经常中断,效率十分低,请教有什么好办法解决吗。

用的什么导入工具,可能是换行符没有做转义的bug

@nicole

Nebula Graph Exchange

这种数据我看日志里拼成nebula语句时就是下面两行,然后就报了语法错误
NebulaGraphClientWriter:167 - INSERT VERTEX addrInfo(vid) values(“address_20200216_wtw34r_stella
cao”)

一些label数据少的话,我还能通过exec: “match (n:addrInfo) where id(n) <> 240982540 xxx” 跳过这条数据,但是一次导入几千万 甚至上亿的数据,中间总能遇到带回车的数据,每次导入一部分出错停掉,扣数据,再导入,非常麻烦。

还有的数据是字符串就带 " 也会报错,比如昵称就叫 "王某某,属性string内的数据如果带了 换行回车,或者 " 等都没有进行转义,直接拼的insert,这样导入时失败率很高。

感谢反馈,我们让开发看看

你在Neo4j里面是用反引号的?

Exchange1.0中没有对字符串中的特殊字符做转义,我们考虑支持一下

数据"王某某是string类型,从neo4j中读出来再插入nebula就会变成 values("“王某某”)

请问这块支持的话,大概需要多久?是随2.0版本一起发布吗,还是小版本更新迭代?Q4有希望能用上不?

不随2.0一起发布。

感谢回复,neo4j迁移nebula的需求应该还是很多的,ETL是关键的第一步,期待Exchange支持转义。

1 个赞

有更新,在exchange内部支持了\n换行的转义,你可以用这个代码先处理:
https://github.com/vesoft-inc/nebula-java/pull/203

3 个赞

:+1: