数据仓库即Data Warehouse,简称DW,主要研究和解决从数据中获取信息的问题,为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。
一般在工作当中,使用的都是数仓,尤其使用hive的次数最多。在日常开发中,会遇到这样的情况。比如有些数据需要统计全部的,也就是自上线到当前的,例如用户列表;但有些数据统计的是多少天为一个周期的,例如统计订单,然后根据订单进行数据分析,统计订单这个方面应用更是非常广泛,购物网站、外卖平台、服务行业等等都是需要进行这方面的业务。
全量表正好对应了我上面所提到的统计全部数据的需求,而统计订单可以使用增量表。可能我说全量表和增量表大家都不太熟知,接下来我给大家先介绍下。
全量表
平时我们进行导入数据时,不进行任何操作导入的数据就是全量表。
就例如平时使用sqoop直接导入,或者load加载,不需要任何特殊的操作,就是全量表。
增量表
即记录每天或者是每个周期的增加的数据,这时不需要将周期之外的数据进行统计,这样就大大节约了效率。
在日常业务中,基本上我们都是使用sqoop将来自mysql的数据导入到hive中,然后进行分析。而在sqoop的语句中,有三个附加项:
- - -check-column 后面填根据什么字段进行增量
- - -incremental 这个可以填append和lastmodified,append是直接在后面追加,而lastmodified需要在上面的字段中使用日期类型,不可以使用数值类型。
- - -last-value 在后面指定上次修改后的界限值,对应第一个附加项,即如果第一个填的为user_id,这里设置了4,那么读取的话从id为5的人开始读取。
这样看的话,当我们在实际应用情况下,是不是有点复杂,需要指定last-value的值,不然的话sqoop也不知道从哪里开始读,设置为0的话每次都从最开始来读,这样的话增量表完全没有意义了。
例如: