使用apache操縱查詢存儲在aws s3上的JSON數據非常棒,但是對於每個查詢,操練都會從s3獲取新的數據。如何使用apache drill將s3數據保存在內存中?
如何告訴drill將數據保留在內存中以用於下一個查詢?
使用apache操縱查詢存儲在aws s3上的JSON數據非常棒,但是對於每個查詢,操練都會從s3獲取新的數據。如何使用apache drill將s3數據保存在內存中?
如何告訴drill將數據保留在內存中以用於下一個查詢?
我發現的最佳解決方案是使用http://tachyon-project.org/它使用Ramdrive來存儲數據,因此s3中的數據只會被提取一次,稍後apache鑽取將直接從tachyon中讀取數據。首先設置tachyon似乎很複雜,但最終只需要在配置中更改爲6行,然後將tachyon jar複製到鑽取中。
更新2016-07-22
經過一些測試,我發現快速過於複雜。現在我使用s3 sdk的同步工具和linux的& osx上的ramdrive來保持數據的快速訪問,到目前爲止效果很好。
UPDATE 2018年2月9日
在我們使用Linux RAM驅動器解決年底,做工非常不錯
查詢完成後,Apache鑽取不存儲數據。
根據文檔
分佈式緩存:鑽頭採用分佈式緩存來管理元數據(不是數據)跨各種節點和配置信息。存儲在緩存中的示例元數據信息包括查詢計劃片段,查詢執行的中間狀態以及統計信息。 Drill使用Infinispan作爲其緩存技術。
退房 鑽的architecture瞭解更多詳情。