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

來源:互聯網
上載者:User

標籤:

半個月前看到部落格園有人說.NET不行那篇文章,我只想說你們有時間去抱怨不如多寫些實在的東西。

 

 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學習目錄

 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、多伺服器、多庫架構

        因為把壓力分攤各個節點所在伺服器,所以可以輕鬆處億級以上資料,節點伺服器越多處理的資料量就越大,就越快,就算是T級資料,秒查也不是事兒,只需N台廉價的PC。 

     

 2、用法

       1、引用SqlSugar.dll

       2、配置連接字串

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

        

       2、添、刪、改用法

       

              3、啟用分散式交易

                 伺服器需要開啟MSDTC等服務

                    

 

 

            4、Taskable是所有分散式運算的底層核心

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

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

              

 

           5、使用Taskable進行分組查詢

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

               

             6、使用Taskable擴充函數,讓你處理多庫運算更加方便。

          

 

 

            7、分布式分頁

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

          

 

 

 

 

 

至於原理我就不多講了,一個貼子也說不完,有幸趣的朋友可以加群: 225982985 討論

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

 


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

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.