我目前正在研究使用MapReduce在SQL Server中維護增量視圖構建的可能性。使用SQL Server作爲數據源的MapReduce
基本上,使用MapReduce來創建物化視圖。
我有點卡住atm。考慮如何分配我的map
輸出。現在,我沒有真正的BigData情況,大約50 GB是最大的,但我有很多複雜性和排序 - 隱含的性能問題。我想看看我的這個MapReduce/NoSQL方法是否可以氾濫。
關於MapReduce的事情我目前遇到的問題是分區。由於我使用SQL Server作爲數據源,因此數據局部性並不是我的問題,因此我不需要在整個地方發送數據,相反,每個工作人員都應該能夠檢索數據的一個分區基於map
的定義。我打算通過使用LINQ來完全映射數據,也許像Entity Framework這樣的東西,只是爲了提供一個熟悉的界面,這有點不同,但它是我正在探索的當前路線。
現在,我該如何分割我的數據?我有一個主鍵,我有map
和reduce
在表達式樹(AST,如果你不熟悉LINQ)的定義。
首先,我該如何設計對我來說分裂整個輸入和分區最初的問題(我想我應該能夠利用窗口聚集在SQL Server中,如
ROW_NUMBER
和TILE
)的方式。其次,更重要的是,我該如何確保我逐步完成這項工作?也就是說,如果我添加或更改原始問題,如何有效地確保我最小化需要進行的重新計算量?
我一直在尋找CouchDB的靈感,他們似乎有辦法做到這一點,但我如何利用SQL Server的一些善良?
這個CouchDB是如何關聯的?由於Map-Reduce? –
是的,你可以在這裏閱讀:http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views#Basics –