试图使用python批量插入4千万个点 但只有10万个点被录入

  • nebula 版本:2.6.2
  • 部署方式:单机
  • 安装方式:利用tar包安装
  • 是否为线上版本:N
  • 硬件信息
    • 磁盘( 推荐使用 SSD)
      200T
    • CPU、内存信息
      CPU:64核intel处理器,Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz
      内存 :MemTotal: 230231724 kB

在学校的CENTOS8服务器上使用nebula2-python包(nebula2.6.2)。在小数据集上的测试一切都没有问题。当试图导入一个大概4千万个点的数据,发现当导入到10万个点后,后台统计值始终停留在10万,不再接受新的值传入。
python代码如下

config = Config()
config.max_connection_pool_size = 30
n=0
nsql=[]
with open('./unique_data/Papers_unique_journal.txt','r')as f:
    for line in f:
        tmp = line.strip('\n').split('\t')
        n+=1
        flash_print(n)
        doi = tmp[2] if tmp[2].strip() else 'NA'
        nsql+=['%s:(%s,%s,)'%(tmp[0],tmp[11],tmp[7])]
        if n%10**6==0:
            sql='insert vertex paper(jid, year,) values '+','.join(nsql)+';'
            connection_pool = ConnectionPool()
            ok = connection_pool.init([('127.0.0.1', 9669)], config)

            # option 2 with session_context, session will be released automatically
            with connection_pool.session_context('root', '123456') as session:
                session.execute('USE mag')
                result = session.execute(sql)
            # close the pool
            connection_pool.close()

这是看导入的数据条数么?

已经解决了,是python代码的问题,其中的变量名写错了

1 个赞

:joy: 那你勾选你自己的这条回复为解决方案吧。优秀的 debug 能力

我最后发现的问题是,当我每次导入10^5时,最后总会有一些数据没有插入进去,最后只有88900000,还剩56114条记录死活导入不了。然后我试了试把剩下的56114条记录,每次分别导入10^4 到,查看后台又可以导入了。

要不看看 result会不会有失败的?

我又试着录入边,还是遇到同样的问题,每次如果录入10^6条,最多就能到10万就停止了。而且确认不是延迟的问题。等了5分钟,还是只有10万条录入。这时候我设置每次录入10^4条,就又可以继续插入数据。result没有失败。

你这个。。。。不够数量就不写了?

你也可以试着交给chatgpt帮你检查下代码逻辑。


2 个赞

您好,我的问题不是您说的这个。我的问题如标题,就是我每次试图批量导入数据的时候,当我把每批次导入的数量特别多的时候( 比如10^7,10^6),他在录入10万条的时候就停止录入了,有的时候甚至不录入,通过nebula explorer 查看统计情况也是一直停在10万条。当我设置每批次1万的时候,它又可以继续录入了,通过explorer可以看到录入的节点数量在继续增长。这个问题在我录入边信息的时候同样存在。

说了你的代码有错

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。