ASP.NET + SqlSever 大数据解决方案 PK HADOOP

Posted DotNet程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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秒的时间。


ASP.NET + SqlSever 大数据解决方案 PK HADOOP


2、单服务器、多硬盘或阵列:


可以使用LIKE等进行全表扫描,性能有明显的提升


3、多服务器、多库架构


就按单台PC机10个库540万0.3秒的来算,如果有10台PC机那就可以处理5000万,时间预算在0.3秒-0.5秒之间。

这10台PC换成10台服务器又能处理多少呢?

总结:节点越多、服务器越多处理能力就越强。


ASP.NET + SqlSever 大数据解决方案 PK HADOOP


Landa


2、用法


1、引用SqlSugar.dll


2、配置连接字符串


其中rate是Insert时存储到某节点的机率,0表示不会有新数据添加到该节点,下面设置都为1表示我一点都不偏心

       

ASP.NET + SqlSever 大数据解决方案 PK HADOOP


3、添、删、改用法


ASP.NET + SqlSever 大数据解决方案 PK HADOOP


4、启用分布式事务


服务器需要开启MSDTC等服务

                   

ASP.NET + SqlSever 大数据解决方案 PK HADOOP

 

5、Taskable是所有分布式计算的底层核心


分页、分组等复杂的查询都从这里展开,支持DataTable、T:Class、值类型 三种类型,能够方便的把多库的结果同步汇总到一个容器中。


使用Taskable需要注意每个节点获取的数据量都不能很大,通过少取,内存运算,在取在运算的方式处理复杂数据的查询。

             

ASP.NET + SqlSever 大数据解决方案 PK HADOOP

 

6、使用Taskable进行分组查询

统计类报表类的查询,查询结果集不会太大,完全可使用Taskable进行处理,Merge方法能够将所有库查询的结果集合并到一个新的集合

                     

ASP.NET + SqlSever 大数据解决方案 PK HADOOP

       

7、使用Taskable扩展函数,让你处理多库运算更加方便。


ASP.NET + SqlSever 大数据解决方案 PK HADOOP

 

8、分布式分页


考虑了分库机制,主键建议使用GUID来保证独一,只有主键唯一才可以使用该分页函数

          

 

分页是通过 节点数 每页显示条数 当前页码 等算出一个初步的索引,然后取出这个索引位置所在的数据,在算出这个数据的真实索引 与 page begin比较在算出一个新的索引直到找到精准位置在把数据读出来。原理是这样子的。

 

 

哈哈  我已经尽力了, 不管好坏为了给个赞哈



●编号161,输入编号直达本文

●输入m获取文章目录

推荐↓↓↓

Web开发

更多推荐

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、ios开发、C/C++、.NET、Linux、数据库、运维等。

以上是关于ASP.NET + SqlSever 大数据解决方案 PK HADOOP的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 大学场地预约系统

在 ASP.Net 中使用 SQL Server 2012 地理数据类型 - DataReader.GetFieldType(x) 返回 null

asp.net大文件上传解决方案

我们可以在 ASP.Net 中使用大数据概念吗?

asp.net 查询大数据量(百万条以上)如何快

Ext.Net学习笔记06:Ext.Net DirectEvents用方补充