批量导入/arangoimp
Bulkimport / arangoimp
最终我必须在 aragnodb 实例中加载 35GB 的数据。
到目前为止,我已经尝试过这些方法来仅加载 5GB(但失败了):
正在通过 gremlin 加载。它起作用了,但是花了大约 3 天的时间;这不是一个选项。
bulkimport 具有 import?
API 端点,但我收到以下错误:
...[1] WARNING maximal body size is 536870912, request body size is -2032123904
arangodbimp 命令,但我遇到了两个不同的错误:
- 使用 no/small
--batch-size
会触发
import file is too big. please increase the value of --batch-size
- 更大的
--batch-size
它 returns 与 bulkimport 相同的错误。
谁能告诉我如何修复命令,
或者实际加载这些数据的方法?
谢谢
为@DavidThomas 编辑,规格如下:
- 内存:128G
- CPU:2x Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz
- OS: Linux (ubuntu) 打喷嚏 3.13.0-86-generic
- 硬盘:经典(非固态硬盘)
我希望你没有像 in your link to ArangoImp 那样使用 ArangoDB 2.4? ;-)
为了我们的Performance Blogpost series we imported the pokec dataset using arangoimp。服务器的最大 POST 主体大小为 512MB。
出于性能原因,arangoimp 不解析 json,而是依靠导入文件的一行作为要发送的文档,因此它可以轻松地将其切成有效的 [=36] =].
因此它无法像这样处理 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,因此它具有与原始使用相同的限制。您需要编写 a tiny programm using a stream enabled json parser 并将输出翻译为每行一个文档。然后,您可以直接在脚本中将块发送到服务器,或使用 arangoimp 为您处理分块。
最终我必须在 aragnodb 实例中加载 35GB 的数据。
到目前为止,我已经尝试过这些方法来仅加载 5GB(但失败了):
正在通过 gremlin 加载。它起作用了,但是花了大约 3 天的时间;这不是一个选项。
bulkimport 具有
import?
API 端点,但我收到以下错误:
...[1] WARNING maximal body size is 536870912, request body size is -2032123904
arangodbimp 命令,但我遇到了两个不同的错误:
- 使用 no/small
--batch-size
会触发
import file is too big. please increase the value of --batch-size
- 更大的
--batch-size
它 returns 与 bulkimport 相同的错误。
- 使用 no/small
谁能告诉我如何修复命令, 或者实际加载这些数据的方法?
谢谢
为@DavidThomas 编辑,规格如下:
- 内存:128G
- CPU:2x Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz
- OS: Linux (ubuntu) 打喷嚏 3.13.0-86-generic
- 硬盘:经典(非固态硬盘)
我希望你没有像 in your link to ArangoImp 那样使用 ArangoDB 2.4? ;-)
为了我们的Performance Blogpost series we imported the pokec dataset using arangoimp。服务器的最大 POST 主体大小为 512MB。
出于性能原因,arangoimp 不解析 json,而是依靠导入文件的一行作为要发送的文档,因此它可以轻松地将其切成有效的 [=36] =].
因此它无法像这样处理 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,因此它具有与原始使用相同的限制。您需要编写 a tiny programm using a stream enabled json parser 并将输出翻译为每行一个文档。然后,您可以直接在脚本中将块发送到服务器,或使用 arangoimp 为您处理分块。