文檔DB我目前正試圖(使用pydocumentdb LIB)將數據發送到一個蔚藍的文檔數據庫收集的蟒蛇。 其實我必須發送約100 000個文件在這個集合,這需要很長時間(約2小時)。將數據發送到在python
我使用一個發送的每個文檔之一:
for document in documents :
client.CreateDocument(collection_link, document)
我做錯了,有另一種更快的方式做到這一點,或者需要很長時間,它只是正常的。
謝謝!
我不認爲這是什麼,比如批量插入。有一種方法可以在dotnet中做一些你想做的事情。看看這個答案! https://stackoverflow.com/questions/41744582/fastest-way-to-insert-100-000-records-into-documentdb – crazyglasses
我的猜測是CosmosDB Python SDK操作都是同步的。這意味着對'client.CreateDocument()'的一次調用必須完成其全部往返行程才能進入循環中的下一個文檔。這是非常低效的。您需要在往返行程中獲得更多的並行或更大的批次。不知道你如何在Python中完成前者,但是後者可以通過使用存儲過程來完成,在該過程中,您可以將JSON文檔(並非全部100,000個,但一次可能有1,000個)發送到sproc文件。 –
另一種選擇是繞過CosmosDB Python SDK並直接進行REST調用。以下是您如何製作一批並行請求:https://stackoverflow.com/questions/9110593/asynchronous-requests-with-python-requests。這種方法的困難通常是編寫身份驗證令牌,但是您可以從Python SDK中提取該消息,或者找到解釋此問題的其他SO解決方案。 –