|
本帖最后由 buptdream 于 2013-1-22 15:56 编辑
1、SQL Server 2012使用何种数据存储技术,如何处理上百T的数据量?
SQL Server 数据库引擎中的列存储索引可用于显著加快常见数据仓库查询的处理时间。 典型的数据仓库工作负荷涉及汇总大量数据。 在数据仓库和决策支持系统中通常用于提高性能的技术包括预先计算的汇总表、索引视图、OLAP 多维数据集等。 尽管这些技术可极大提高查询处理的速度,但这些技术可能不灵活、难于维护并且必须针对每个查询问题进行专门设计。例如,请考虑一个具有维度键列 dk1 和 dk2 的事实数据表 F1。 让 M 成为聚合函数,如 SUM。 请勿在每次运行引用 M(dk1) 的查询时针对列 dk1 计算 M,而是可以创建并使用一个摘要表 F2(dk1, M),以便可预先计算结果并且更快地执行查询。 但是,如果需要一个引用 M(dk2) 的新查询,则必须使用此信息创建新的摘要表 F3(dk2, M)。 当表中的列数增加并且有许多可能的函数时,此方法会变得难于维护,且不易涵盖所有需要的查询。
这一开销对用户来说很大。 通过使用 SQL Server 列存储索引,用户可以减少其他解决方案的开销。 列存储索引还使查询能够快速计算结果,以致无需预先计算。
SQL Server 列存储技术的主要特征如下所示:
- 分列数据格式 – 与传统的基于行的数据组织方式(称为“行存储”格式)不同,在具有列存储索引的分列数据库系统(如 SQL Server)中,每次对一个列的数据进行分组和存储。 SQL Server 查询处理可以利用新的数据布局,并显著改进查询执行时间。
- 加快查询结果 – 列存储索引由于以下原因而可更快地生成结果:
- 只必须读取需要的列。 因此,从磁盘读到内存中、然后从内存移到处理器缓存中的数据量减少了。
- 列经过了高度压缩。 这将减少必须读取和移动的字节数。
- 大多数查询并不会涉及表中的所有列。 因此,许多列从不会进入内存。 这一点与出色的压缩方法相结合,可改善缓冲池使用率,从而减少总 I/O。
- 高级查询执行技术以简化的方法处理列块(称为“批处理”),从而减少 CPU 使用率。
- 键列 – 列存储索引中没有键列的概念,因此,索引中的键列数限制 (16) 不适应于列存储索引。
- 聚集索引键 – 如果基表为聚集索引,则聚集键中的所有列必须出现在非聚集列存储索引中。 如果在 CREATE INDEX 语句中未列出聚集键中的某列,该列将自动添加到列存储索引中。
- 分区 – 列存储索引使用表分区。 无需对表分区语法进行更改。 针对分区表的列存储索引必须与基表实现分区对齐。 因此,如果分区列为列存储索引中的一列,则非聚集列存储索引只能在已分区表上创建。
- 记录大小 – 索引键记录大小限制(900 字节)也不适应于列存储索引。
- 查询处理 – 除列存储索引之外,SQL Server 还引入批处理以利用数据的分列方向。 列存储结构和批处理都会提升性能,但考察性能问题时远不止考虑其中一个因素那么简单。
- 表无法更新 – 对于 SQL Server 2012,无法更新具有列存储索引的表。
2、在日常工作中,你会遇到哪些大数据带来的挑战,通常会怎么处理?
大数据,给人的第一个感觉就是数据的存储量非常大,但大数据在不同的发展阶段有着不同的概念。前几年上T级的数据量就算非常庞大 数据。近几年,随着互联网的发展,P级别的数据库存储量开始更加普遍。首先大数据就是数据存储量非常大,在这样的数据量上做数据分析,数据挖掘比较困难,所以大数据往往意味着技术要求更高,分析数据的困难行。再者,大数据,往往也代表着并发用户非常巨大,大家都在这个数据库中获取到自己所需要的信息,这种类型的公司主要是电子商务网站。随着这几年数据挖掘技术的发展,很多互联网公司开始分析人的行为,购买习惯,生活信息,爱好等一些信息来转化为商机,这样就需要把人在网上的行为记录下来存入数据库中用作分析,这些数据是非常巨大的。这就造成了数据存储的变大和处理的难度加大。近几年出现的hadoop,nosql,分布式都是随着大数据的发展而发展起来的,每个技术的发展都是为解决一个问题而研究出来。总之,就目前这个阶段来说,大数据意味着数据量大,并发用户量大,数据包含的类型比较多,用户行为量比较大。
3、谈谈你对SQL Server 2012的大数据特性的了解?
自云计算和大数据概念被提出后,针对该市场应运而生的解决方案层出不穷,软硬件一体化设备作为大数据解决方案中的一员,扮演着重要的角色。微软并行数据仓库一体机,将多种先进的数据存储与处理技术结合为一体,是微软大数据战略的重要组成部分。
微软大数据提供的大数据解决主要包括:
1: 前端使用大家所熟悉的微软Office Excel, IE, SharePoint等工具, 同时可以使用多种设备,包括笔记本,移动终端等,从任何数据中随时获得所需要的信息,以提供决策支持。
2:随时与全球的数据互连,从而发现隐藏的价值,将内部与公用的数据和服务相结合。
3:通过支持任何数据的现代数据管理平台,处理任意大小和种类的数据,不仅具有Windows的易用性,同时兼具云的弹性和可扩展性。
4:为了帮助企业快速部署大数据解决方案,兼容当前最为流行的非结构化数据体系Hadoop,微软在Microsoft Windows Azure平台上提供了基于云的HDInsight服务,同时在Windows Server上提供了基于私有云的HDInsight Server。微软HDInsight解决方案100%与Apache的Hadoop标准兼容,可帮助企业从任何结构化及非结构化数据中获得业务洞察力。Windows Azure进一步简化了Hadoop的部署难度,用户可以在10分钟内在云端部署Hadoop集群,并能通过Microsoft System Center实现轻松管理。
另外微软的合作伙伴Hortonworks将负责Hadoop分布式架构,它可以运行在Windows Server上,用户可以构建企业内部部署的大数据解决方案,也可以在Windows Azure平台上使用基于云的Hadoop服务。
4、除了Hadoop,你最期待SQL Server中支持哪种大数据技术或工具?
希望sql server能够支持Flurry,Flurry是移动应用统计分析领域里的标杆,正因为在行业内独特的优势,它每年的营收高达一亿美元。Flurry拥有非常全面的功能,不仅仅只是帮助开发者构建移动应用,它还帮助开发者分析所有的数据,进而产生更大的效益。其实数据也支撑了该公司的广告网络,他们通过数据分析可以帮助开发者推送准确的广告到需要的用户面前。不过单纯从移动应用的数据统计功能来看,Flurry绝对是处于领先地位。其功能模块设置合理,分析维度全面,分析流程也易于理解。
希望能够组合一些nosql 的组件,可以融合一些非关系的数据转化为sql server中进行数据融合,进行进一步的数据分析。
|
|