如何将OSM数据加载到ArangoDB?
在我尝试使用下一个命令将结果geojson加载到ArangoDB后,从OSM加载了名为luxembourg-latest.osm.pbf
的数据,而不是将其转换为JSON arangoimp --file out.json --collection lux1 --server.database geodb
并获得了hude list错误:
...
2017-03-17T12:44:28Z [7712] WARNING at position 719386: invalid JSON type (expecting object, probably parse error), offending context: ],
2017-03-17T12:44:28Z [7712] WARNING at position 719387: invalid JSON type (expecting object, probably parse error), offending context: [
2017-03-17T12:44:28Z [7712] WARNING at position 719388: invalid JSON type (expecting object, probably parse error), offending context: 5.867441,
...
我做错了什么?
upd:似乎转换器osm2json转换器应该使用选项osmtogeojson --ndjson
运行,该选项生成的项目不是单个Json,而是逐行模式。
答案 0 :(得分:0)
@ dmitry-bubnenkov已经发现,--ndjson
必须为ArangoImp提供正确的输入。
在这里必须知道,ArangoImp需要一个称为JSONL
的JSON子集(因为它不能自行解析json)。
因此,导入后,JSON文件的每一行都将成为集合中的一个json文档。为了最大化性能并简化实现,在将json发送到服务器之前未对其进行完全解析。
它尝试将JSON分成服务器允许的最大请求大小的块。它依靠JSONL行结尾来隔离可能的块。
但是,服务器肯定需要有效的JSON。将切碎的部分与可能不完整的JSON文档一起发送到服务器将导致解析服务器上的错误,这是您在输出中看到的错误消息。