Bulkimport / arangoimp

时间:2016-06-10 15:09:06

标签: import arangodb

最终我要在aragnodb实例中加载35GB的数据 到目前为止,我已经尝试过这些方法只加载5GB(并且失败):

  • 通过gremlin加载。它奏效了,但花了3天时间;这不是一个选择。

  • bulkimport有一个import? API端点,但我收到以下错误:
    ...[1] WARNING maximal body size is 536870912, request body size is -2032123904

  • arangodbimp命令但最终我遇到了两个不同的错误:

    • 没有/小--batch-size它会发光 import file is too big. please increase the value of --batch-size
    • 使用较大的--batch-size,它会返回与bulkimport相同的错误。

有人能告诉我如何修复命令, 或者实际加载这些数据的方法?

由于

为@DavidThomas编辑,这里有规格:
- RAM:128G
- CPU:2x Intel(R)Xeon(R)CPU E5-2420 0 @ 1.90GHz
- 操作系统:Linux(ubuntu)sneezy 3.13.0-86-generic
- HDD: classic (非SSD)

1 个答案:

答案 0 :(得分:1)

我希望您没有将ArangoDB 2.4用作in your link to ArangoImp? ; - )

对于我们的Performance Blogpost series,我们导入了pokec dataset using arangoimp。服务器的最大POST主体大小为512MB。

出于性能原因,arangoimp不解析json,而是倾向于导入文件的一行是要发送的一个文档,因此它可以很容易地将其切成有效的json位。

因此无法处理json转储中的分块,如下所示:

[
{ "name" : { "first" : "John", "last" : "Connor" }, "active" : true, "age" : 25, "likes" : [ "swimming"] },
{ "name" : { "first" : "Lisa", "last" : "Jones" }, "dob" : "1981-04-09", "likes" : [ "running" ] }
]

因此将尝试立即发送整个文件;如果超过指定的批量大小,您将收到import file is too big错误消息。

但是,如果您的文件每行包含一个文档:

{ "name" : { "first" : "John", "last" : "Connor" }, "active" : true, "age" : 25, "likes" : [ "swimming"] }
{ "name" : { "first" : "Lisa", "last" : "Jones" }, "dob" : "1981-04-09", "likes" : [ "running" ] }

它可以处理--batch-size上每行的分块,最小尺寸为32kb。

因此,您需要沿着上面的指导线准备转储,以便使用arangoimp。

由于arangoimp也使用导入API,因此它具有与使用raw相同的限制。您需要编写a tiny programm using a stream enabled json parser并将输出转换为每行一个文档。然后,您可以直接在脚本中将块发送到服务器,或使用arangoimp为您处理块。