nebula-flink-connector求助

是的,没有语言级别的回滚

哦哦, 好的, 了解, 请问下支持自定义函数吗?? 存储过程等等??? 我在官网上暂时没有找到

不支持

1 个赞

你看下连接的服务, 要读取的space/tag是否存在

1 个赞

这个已经解决, 谢谢哈, 请教你一下下面这个问题

请教下有关Flink的导入Nebula, 我看你们的demo是用的source是一个list然后sink写到Nebula中, 但是实际场景中肯定不是list的source, 我请教下我这里是kafaka的source的话, 这块应该是如何写的呢?

我也是可以自己吧kakfa中的数据处理成一条消息对应假如50行记录, 就是咨询下你, 在用Flink对接Nebula的话, 一条消息是一行记录和多行记录, 它的这写入速度有区别吗??? 最后这个到底是一条一条的写入Nebula还是批量写???


  1. 首先关于Kafka的source demo这个要去参考flink-kafka-connector, 给个传送:flink/flink-connectors/flink-connector-kafka at master · apache/flink · GitHub
  2. 关于Nebula 给出的demo使用list作为source只是为了构造出一个datastream,用于将该datastream写入Nebula,实际使用过程中可以使用任意flink 的source。
  3. datastream写入Nebula是批量写的,有个batch的配置setBatch()可以控制批量大小。

flink的kafka-source, 这个没问题, 我这边没问题, 我的疑问就是不知道一条消息放多少行记录合适,既然你刚刚有说明这setBetch这个参数可以设置入库的数据量, 那我理解每条消息放一行记录也没我问题,
我们是打算吧关系数据路的数据读出来放在kafka中去, 然后再往nebula写,

一条消息是一行数据,这里的batch是指积累多少条消息才向Nebula发送一次请求,多条数据的写入非事务。
如果你的数据不足batch数,也可以写入的,当你的dataStream全部处理完成后会调用close,close之前会将未满batch的数据写入。

1 个赞

完全明白, 感谢 :+1: :+1: :+1:

你好, 我在往Nebula中查数据的时候发现, 刚开始很快, 过了200W就变慢了, 我刚看了下kafka中已经有400W+ 跳数据了, 肯定是大于消费的速度的, 为啥呢??

image

image

image

image

写入过程中磁盘io有关注么,看是不是写入瓶颈在磁盘写

你好,
这个绝对不会是机器的问题, 我们用的是生产的机器, 性能很高的SSD , IOPS测试能达到10W+
你看着监控太低了
image

image

image

你好, 我刚刚有重新开始导入,
你看这个速度正常吗??? 我setbatch=50, CPU=8core (env.setParallelism(8) 这个并发就是写入的并发数吗???)
image

是的,parallelism是写入并发度。 你的batch太小了,可以调大到1000-2000来提高写入速度。

你好, Nebula有没有直接导入关系型数据库(oracle, mysql等等) 方法, 不经过kafka???

Exchange工具本身就支持mysql 数据源直接导入NebulaGraph啊
https://docs.nebula-graph.com.cn/2.0.1/nebula-exchange/use-exchange/ex-ug-import-from-mysql/

哦哦, 其实我们的数据源在GaussDB中(华为的分布式关系型数据库), 不过支持直接从neo4j中导入, 我们可以试试速度

亲问下, 这个null怎么导入??? 有的字段是字符串"null", 这个时候我想导入这个字段是null, 但是发现这样写不行

NebulaGraph 2.0是支持NULL值的。针对字符串数据,如果对应的值是null(空),导入到NebulaGraph中则是NULL; 如果对应的值是“null”(非空,是字符串“null”),导入到NebulaGraph中的则是“null”值。

当你的字符串值是“null”时,你期望的结果是什么,是null还是“null”?

我希望是这个