ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
从源数据导入到数据仓库或者贴源层有两种方式: * 从源数据拉取数据(pull) * 请求源数据推送到数据仓库(push)。 一般来讲,后一种方式需要增加业务系统的功能才能进行推送,这个在现实情况中不大行的通,一方面影响业务系统的性能,另一方面增加开发者的工作量,理论上讲,数据仓库不应该要求对源系统做任何的改造,因此一般都采用拉取数据的方式。 <br/> 确定了数据的抽取方式,还需要确定数据的抽取类型,抽取类型有两种:全量抽取和增量抽取。 <br/> **全量抽取:** (1)即数据按批次导入,并且每次导入都会覆盖上一次导入的数据。 (2)Sqoop提供了`hive-overwrite`参数来完成全量抽取。 (3)如果数据量小并且容易处理,一般采用全量抽取即可。 <br/> **增量抽取:** (1)即每次都是将数据按一定的规则追加到已有数据的后面。 (2)Sqoop提供了两种增量导入方式`append`和`lastmodified`,Sqoop的增量导入一个就如下三个参数: ``` --check-column <column> 增量导入参考的列 --incremental <import-type> 导入类型, 'append' or 'lastmodified' --last-value <value> check-column的最大值,就是数据要追加的规则 比如是日期,则规则就是将数据导入到最后修改时间的数据的后面 ``` (3)如果数据量很大,就只能抽取变化的源数据,即最后一次抽取以来发生了变化的数据。这种数据抽取模式称为变化数据捕获,简称 **CDC**(change data caputer)。