列式存储是数据分析性能杀手锏.doc
《列式存储是数据分析性能杀手锏.doc》由会员分享,可在线阅读,更多相关《列式存储是数据分析性能杀手锏.doc(3页珍藏版)》请在三一文库上搜索。
1、列式存储是数据分析性能杀手锏看似非常简单的一条 SQL,如下图,我们求解的无非就是月总销售量SELECT OrderMonth, SUM( OrderAmount) AS AmountFROM FctOrderSales WITH(NOLOCK)WHERE OrderMonth BETWEEN 2017-01-01 AND 2018-12-31GROUP BY OrderMonth一旦 FctOrderSales 的数据量增长,恐怕不等个半把个小时,是出不来的。再加上,我们的用户不会那么轻易的放过折磨我们 IT 工程师的机会,就仅仅围绕月份来做统计,可能还会加上,产品类型,地区等等维度。这样一
2、来,就更加麻烦了,眼珠子恨不得贴到屏幕上,一分一秒的看着时间的流逝,可惜了青春啊事实上,大家肯定会出一定的方案来解决这种效率奇慢的查询,比如:1 加个索引2 加个分区3 ETL 先算好聚合数据4 。解决方案总是有的。在这里我们来看看另一种玩法,列式存储。上图中,表格中的数据,就是典型的row-based data page 行式存储数据页。一行相邻一行的存储在一个数据页上,一列肩并着一列存储在一行上。而 Columnar Storage Layout 就是列式存储, 每一个列的数据都被存在一个数据文件中,比如date_key 按照顺序存储在 date_key file 中,Product_sk
3、 也一样,按照二维表中的顺序,存储在 product_sk 文件中。每个列式存储文件中,对应行号上存储的数据,都是表结构中相应行号的列数据。即要获取原表结构中,第20行的数据,那么要分别从这些列式存储的文件中,取得各自的第20行数据,集合起来!考虑以下场景,比如我们就要分析 2013年,每个月,某两个品种,69,31 的销量:SELECTgetMonth(date_Key) AS MonthgetProductName(product_sk) AS ProductSUM(quanTIty) AS QuanTItyFROM FctSalesOrdinaryGROUP BY getMonth(da
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 数据 分析 性能 杀手锏
链接地址:https://www.31doc.com/p-3393302.html