1. Nginx的日志可以通過Flume抽取到HDFS上。
2. Mysql的數據可以通過 Sqoop 抽取到 Hive 中,同樣 Hive 的數據也可以通過 Sqoop 抽取到 Mysql 中。
3. HDFS上的一些數據不規整,有很多垃圾信息,可以用Hadoop或者Spark 進行處理并重新存入HDFS中。
4. Hive的表也可以通過 Hive 再做一些計算生成新的 Hive 表。
這些都算是ETL,其中 1 和 2 都比較典型,它們把數據從一個存儲引擎轉移到另一個存儲引擎,在轉移的過程中做了一定的轉換操作。
3 和4也同樣是ETL只是它們更側重的是數據的加工。
到了這一步,我們不再糾結于具體的ETL概念是什么,僅從自己的直觀理解上來定義ETL,不管嚴謹不嚴謹,反正這些活ETL工程師基本都要干。
ETL是對數據的加工過程,它包括了數據抽取、數據清洗、數據入庫等一系列操作,大部分和數據處理清洗相關的操作都可以算是ETL。