具有聚集列存储索引的表不支持游标——如何查询
一.问题描述
SQL Server 2014引入了聚集列存储索引,但是导致select语句不能直接进行查询,当想要通过sqoop工具(spark同理)从sqlserver往hive仓库中抽数时,只能整表抽,不能做一些字段的筛选。
二.解决办法
- 方法一:
select top 100 * from student
; 查询前100条 - 方法二:
select top 100 percent * from student
;查询100%
这个方法可以完美解决SqlServer中查询问题,在关系型数据库往hive数仓做数据迁移时,可以有针对型的对字段进行筛选。
三.知识拓展
以下部分有时间可以看。
微软在SQL Server 2012引入了列存储技术,使得OLAP和Data warehouse场景性能提升10X,并且数据压缩能力超过传统表7X。这项技术包含三个方面的创新:列存储索引、Batch Mode Processing和基于Column Segment的压缩。但是,SQL Server 2012列存储索引的一个致命缺点是列存储索引表会进入只读状态,用户无法更新操作。SQL Server 2014引入了可更新聚集列存储索引技术来解决列存储索引表只读的问题,使得列存储索引表使用的范围和场景大大增加。
名词解释
SQL Server 2014使用聚集列存储索引来解决列存储索引表只读问题的同时,引入了几个全新的名称。
Clustered Column Store Index</