현재 ArangoDB POC에서 작업 중입니다. PyArango를 사용하는 ArangoDB에서 문서 작성에 소요되는 시간이 매우 길다는 것을 알게되었습니다. 300 개의 문서를 삽입하는 데 약 5 분이 소요됩니다.대량 데이터를 ArangoDB로 가져 오는 가장 좋은 방법
with open('abc.csv') as fp:
for line in fp:
dataList = line.split(",")
aaa = dbObj['aaa'].createDocument()
bbb = dbObj['bbb'].createDocument()
ccc = dbObj['ccc'].createEdge()
bbb['bbb'] = dataList[1]
aaa['aaa'] = dataList[0]
aaa._key = dataList[0]
aaa.save()
bbb.save()
ccc.links(aaa,bbb)
ccc['related_to'] = "gfdgf"
ccc['weight'] = 0
ccc.save()
서로 다른 컬렉션은 아래의 코드에 의해 만들어집니다 :
dbObj.createCollection(className='aaa', waitForSync=False)
당신이 [arangoimp] 생각나요 (https://docs.arangodb.com/3.0/Manual/Administration/Arangoimp.html)? 필요한 경우 소스 데이터를 Python으로 사전 처리 할 수 있지만 가져 오기 자체는 효율성을 위해 ArangoDB의 대량 가져 오기 API를 사용하는 arangoimp에 의해 수행되어야합니다. – CoDEmanX
나는 arangoimp를 살펴 봤는데, 데이터가 JSON, CSV 파일의 형태로 존재해야하고 이미 기본 키가있는 것처럼 보입니다. 여기에서 볼 수있는 문제는 이미 DB에있을 수있는 중복 노드를 처리 할 수 없다는 것입니다. 이러한 조건을 처리 할 수있는 특정 옵션이 있습니까? ArangoImp 문서에서 찾을 수 없습니다. – pjesudhas
pyArango는 현재 HTTP keep-alive에 문제가 있습니다. 연결을 다시 사용하지 않아 결국 DNS 조회를 다시 수행하지 않습니다. Google은 현재이 문제의 원인과 해결 방법을 조사하고 있습니다. – dothebart