什么是ETL:
在数据库建设过程中有ETL的操作。ETL(Extract-Transform-Load,抽取-转换-存储)的操作,即在数据抽取过程中进行数据的加工转换,然后加载到存储中。ETL是一种对数据进行清洗和处理的操作。
为什么要用ETL :
1.不同系统用存储仓或者是编程类型会不一样。ETL就相当于一个桥梁,把数据从一个数据库Oracle A和数据库MySQL B中统一化格式转到数据仓库里面。
2.系统之间是相互独立的,不建议相互抓取数据。B系统不能直接抓取A系统的数据,A系统也不应该把数据直接更新到B系统。如果相互抓取数据,可能会导致数据被其他系统人员进行了修改。
正确的做法是把A系统数据通过ETL或者其他优秀的汇聚工具转到B系统接口数据表里面。再通过批处理的方式导入到B系统核心表中。这样可以保证B系统数据的完整性。
而每个获取数据的系统也都应该有其自己的系统接口数据表。若在B系统核心数据表中数据有问题,就可以很方便地进行溯源。
ETL一般有什么工具:
应用最广泛的就是Informatics和开源工具Kettle了。
ETL的缺陷:
1.如果采用ETL的模式在传输过程中进行复杂的清洗,会因为数据体量过大和清晰逻辑的复杂性导致数据传输效率降低。
2.对于大数据操作中,ETL模式在清洗过程中只提取有价值的信息进行存储,而是否有价值择基于当前对数据的认知进行判断。但由于我们对数据关系不断被发掘,直接使用ETL很可能会使得一些有价值的数据被清洗掉无法找回。因此企业应该结合自身场景利用其他优秀的汇聚工具,如 Sqoop,DataX,Canal等。