|
我对分区的理解随着ETL工作的深入,我对分区的理解逐渐发生着变化。在没有开始这个ETL项目之前,我一直认为分区是数据仓库优化的一项手段之一,并且在项目开始时,我也是和客户说在数据抽取到主题表后,也就是ETL过程结束后,配置数据展示的需求,也就是查询的需求,我再进行数据仓库的优化,包括分区、索引。客户也认为这样没什么不对的地方。 为什么要分区?一般都是因为表的数据量大,尤其是数据仓库的表,随着时间的推移数据量不断在膨胀。分区除了可以优化查询速度外,还带来了数据管理的好处。我们可以针对某一个分区的数据进行整理,包括数据的清洗,加载和更新,同时不能处理其他分区中的数据,这样可以节省大量的资源,包括增加和修改索引、约束、主外键时占用的资源消耗。 分区表是好,我却傻了!仔细分析,发现在实现ETL的过程中,有分区和没有分区实现的步骤有很多不同的地方!这意味着程序的大量修改,重新测试!还是不谈这些了:( 一点小想法,还请各位指教! 还有一个更具体的问题:我现在是按照range-list来进行分区的,range是按照地区(共10个),list是按照月份(10年就120个月)。现在想想好像不太对,地区是固定的,月份是不断增加了。所以如果list中的月份不满足了,我就需要modify,增加一个subpartition,那么我所有的range分区都要加,这岂不是自找麻烦吗?如果反过来,range是按照月份,list是按照地区,因为地区是固定的,所以我只要加一个range分区就行了。对吗?这样两种不同的分区对查询会有什么影响呢? 还望各位多多指教,给出你们的经验啊:) Range分区从理解上应该用具有连续值的字段来分,而List分区适用离散字段来分。前者如月份,后者如地区。这仅仅从理解上判断的,具体没有做过。可以介绍一下以前的做法。
责编:姜玲 ![]() 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
热门博文 |
|