我的工作涉及大量的數據處理以及來自各種數據源的數據流和處理,這些數據往往耗費大量數據。我對所有的東西都使用Python,並想知道爲了優化和構建批處理管道,我應該研究哪些Python領域?我知道Spotify已經創建了一些像Luigi這樣的開源變體,但我現在認爲這對我來說有點矯枉過正。到目前爲止,我唯一知道的是研究生成器和懶惰的評估,但想知道我可以在python中使用哪些其他概念和庫進行高效的批處理。一個示例場景是讀取大量json格式的文件,並在使用盡可能少的內存填充到數據庫之前將它們轉換爲csv。 (我需要使用SQL標準數據庫而不是NoSQL)。任何建議將不勝感激。Python數據流水線和流式傳輸
3
A
回答
1
您提到的讀取大量文件,翻譯然後填充數據庫的例子讓我想起了我編寫的一個信號處理應用程序。
我的應用程序(http://github.com/vmlaker/sherlock) 利用多核CPU來並行處理大塊數據(圖像)。我使用了兩個模塊來實現一個乾淨的實現:MPipe用於彙編多級併發流水線,numpy-sharedmem用於在進程之間共享NumPy數組。
如果你想最大限度地提高運行時的性能,並具有多個核心可用,您可以到舞臺你給的例子類似的工作流程:
讀取文件 - >翻譯 - - >更新數據庫
讀取json文件是I/O綁定的,但多處理可能會讓您在翻譯和數據庫更新中加快速度。
相關問題
- 1. 帶有流水線的結構化流式傳輸
- 2. Restlet流式傳輸數據
- 3. WCF和流式傳輸大數據
- 4. 使用kinesis流和流水線對流數據進行排序
- 5. 流水線輸入/輸出
- 6. 流水線數據路徑
- 7. 使用Python和Python子流程進行Hadoop流式傳輸
- 8. 使用ws和websocket流在node.js中流式傳輸數據
- 9. Hadoop輸出和流水線寫入
- 10. Python:將Excel數據直播流式傳輸到數據框
- 11. Wowza和Android流式傳輸
- 12. 流水線或以其他方式在語言之間實時傳輸數據
- 13. 多項式流水線
- 14. 流水線工作流程和變量
- 15. 流水遊戲多比特流式傳輸錯誤
- 16. BigQuery使用insertAll流式傳輸數據
- 17. 如何從mongodb流式傳輸數據?
- 18. 使用WCF流式傳輸數據
- 19. 將數據流式傳輸到opentsdb
- 20. 音頻數據以HTML5流式傳輸
- 21. 使用Django流式傳輸json數據
- 22. 流到mysql的流水線
- 23. Redis流水線
- 24. 在流水線
- 25. 與流水線
- 26. 流水線vs
- 27. Bitbucket流水線
- 28. HTTP BOSH和HTTP流水線
- 29. 流式傳輸WebRadio
- 30. DotNetZip流式傳輸
我沒有太多的數據庫經驗,但如果你必須做大規模的數學計算,numpy肯定有一些優秀的特性。正確使用時,可以獲得與編譯語言幾乎相同的速度。 – RoBDoG 2014-10-09 22:26:56
您可以隨時編寫自己的模塊。我工作的地方處理大量數據。但在我們的情況下,我們知道我們獲得的數據的類型(只有3種格式)。所以我們開發了一個有很多工具的小型圖書館來處理這一切。這需要時間,但一旦完成,它爲我們在未來的項目中節省了大量時間 – Beginner 2014-10-09 22:34:16