歡迎光臨
每天分享高質量文章

ASP.NET + SqlSever 大資料解決方案 PK HADOOP

來自:孫凱旋

鏈接:https://www.cnblogs.com/sunkaixuan/p/5046517.html

1、SQLSERVER優點和缺點?


優點:支持索引、事務、安全性以及容錯性高

缺點:資料量達到100萬以上就需要開始優化了,一般我們會對 表進行水平拆分,分表、分割槽和作業同步等,這樣做大大提高了邏輯的複雜性,難以維護,只有群集容錯,沒有多庫負載均衡並行計算功能。


2、SQLSERVER真的不能處理大資料?


答案:當然可以的,打個比方:操作單一資料庫稱為一維操作,如果操作相同結構,分佈在多個服務器上的多個資料庫這個可以稱為二維操作。 我們只需要對這個二維操作進行一層封裝,讓他支持並行運算,把服務器壓力分散開,我們不需要寫太多東西,SQL已經為我們封裝了很多,它就好比是一個巨人,而我們只需要站在他的肩膀上,就可以輕鬆實現針對WEB的大資料處理。


3、hadoop適不適合.NET,他有哪些缺點?


(1)、資料同步慢

(2)、事務處理難

(3)、異常捕獲難

(4)、很難與ASP.NET結合,無論是學習學成本,還是自身的支持方面

(5)、 需要安裝,適合離線大資料處理,但未必適合WEB


4、什麼是SqlSugar框架?


SqlSugar是一款基於SqlSever的輕量級高性能ORM框架,除了具有和ADO.NET匹敵的性能外,現在已經支持多庫並行計算。

優點:

(1)、適合海量資料的無延遲查詢

(2)、支持分佈式事務

(3)、讓JOIN飛起來,告別大資料NOJOIN

(4)、C#.NET自家語法和大量封裝函式

(5)、隨機儲存,也就是說可以儲存在任意一個節點資料庫,做到真正正的負載均衡,而不是以往主從樣式的讀寫分離。


缺點:

SqlServer授權費太貴,適合有錢的公司或者不交授權費的創業小企業 

SqlSugar學習目錄

0、功能更新

1、SqlSugar基礎應用

2、使用SqlSugar處理大資料

3、使用SqlSugar實現Join  待更新

4、使用SqlSugar實現分頁+分組+多列排序 待更新

5、節點故障如何進行主從調換

》》》》2、使用SqlSugar處理大資料《《《

1、SqlSugar的原理

Insert:隨機儲存到某個節點資料庫(每個節點可以配置處理的機率,如果設置為0表示該節點不會有新資料添加進來)


Update、Delete:異步請求所有資料庫節點同步彙總處理結果


Search:對分頁前X頁、後X頁和PageCount<1000(1000這個值可以在程式中設置)的資料進行了特殊優化,其它資料進行了異步節點演算法同步對結果進行匯,性能在多服務器架構中可以完美的體現出來,在單服務器架構需要註意保證足夠IO,避免全表掃描,否則起不到優化效果。


1、單服務器、單硬碟、多庫架構:


適合低併發,資料量在1億以下,響應速度有較高要求,建議資料量最好不要超過1000W,在查詢中避免全表掃描,充分利用io性能,讓異步的優勢體現出來。


如圖:


對部署在同一臺PC機上的10個同結構庫進行了模糊搜索

name建了全文索引,id和num建立了複合索引

十個庫加起來總共有540萬條資料 ,普通機械硬碟 只用了0.3秒的時間。



2、單服務器、多硬碟或陣列:


可以使用LIKE等進行全表掃描,性能有明顯的提升


3、多服務器、多庫架構


就按單台PC機10個庫540萬0.3秒的來算,如果有10台PC機那就可以處理5000萬,時間預算在0.3秒-0.5秒之間。

這10台PC換成10台服務器又能處理多少呢?

總結:節點越多、服務器越多處理能力就越強。


Landa


2、用法


1、取用SqlSugar.dll


2、配置連接字串


其中rate是Insert時儲存到某節點的機率,0表示不會有新資料添加到該節點,下麵設置都為1表示我一點都不偏心

       

3、添、刪、改用法

4、啟用分佈式事務


服務器需要開啟MSDTC等服務

                   

 

5、Taskable是所有分佈式計算的底層核心


分頁、分組等複雜的查詢都從這裡展開,支持DataTable、T:Class、值型別 三種型別,能夠方便的把多庫的結果同步彙總到一個容器中。


使用Taskable需要註意每個節點獲取的資料量都不能很大,通過少取,記憶體運算,在取在運算的方式處理複雜資料的查詢。

             

 

6、使用Taskable進行分組查詢

統計類報表類的查詢,查詢結果集不會太大,完全可使用Taskable進行處理,Merge方法能夠將所有庫查詢的結果集合併到一個新的集合

                     

       

7、使用Taskable擴展函式,讓你處理多庫運算更加方便。

 

8、分佈式分頁


考慮了分庫機制,主鍵建議使用GUID來保證獨一,只有主鍵唯一才可以使用該分頁函式

          

 

分頁是通過 節點數 每頁顯示條數 當前頁碼 等算出一個初步的索引,然後取出這個索引位置所在的資料,在算出這個資料的真實索引 與 page begin比較在算出一個新的索引直到找到精準位置在把資料讀出來。原理是這樣子的。

 

碼地址:https://github.com/sunkaixuan/SqlSugar

 

哈哈  我已經儘力了, 不管好壞為了給個贊哈


●編號161,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

Web開發

更多推薦18個技術類公眾微信

涵蓋:程式人生、演算法與資料結構、黑客技術與網絡安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

赞(0)

分享創造快樂