從Databrick blog 上看到的一篇文章,剛好在提到一些資料處理概念,剛好也可以複習一下相關的知識。
et’s first dive into what exactly incremental ETL is. At a high level, it is the movement of data between source and destination – but only when moving new or changed data. The data moved through incremental ETL can be virtually anything – web traffic events or IoT sensor readings (in the case of append data) or changes in enterprise databases (in the case of CDC).
https://databricks.com/blog
概念上,就是將原始收集到的資料,透過每個階段的ETL job,來整理與清洗資料,並且再存入下一個資料儲存的地方;而每個處理的階段就因組織而異了,但最終目的就是希望真的需要用某些資料時,它已經是處理好在那了。
另外,大量的原始/歷史資料其實就可以存在像Datalake 這類型的地方,以減少儲存成本。
對於Data driven的組織來說,這樣的架構設計可以讓資料的處理更有效率,且大量的原始資料若存放在Datalake 則又可以降低營運成本。
但相對的,也有些負面的取捨如下:
- 每個資料處理階段,可能都會需要額外的ETL pipeline來處理,而這些都會是營運上的成本。
- 當一筆原始資料進入時,對於最下游的服務來說,需要隔一段(ETL處理)時間才會反應再下游服務的資料中,所以對於資料有立即性的需求可能就會不太適合。
- 若要更新原始資料,並且更新所有下游的資料會是非常困難的事情。