Data Engineering 개요
DataEngineering 이란?
Data Engineering은 고급 레스토랑에서 음식을 서빙하는 것 이랑 유사하다고 생각합니다.
- 매일 아침 4시 새벽에 식자재를 식당 뒷문으로 들여옵니다.
- 막내들이 식자재를 손질합니다.(ex,조개 해감, 야채 씻기)
- 밑준비를 합니다. 준비가 된 재료들을 용기에 담아놓습니다
- 사수 한테 검사를 맡습니다. 그리고, 혼납니다.
- 오픈 시간이 되면서, 헤드 셰프가 오더를 하기 시작합니다.
- 준비된 재료를 이용해서 테이블로 나갈 요리를 만듭니다.
- 플레이트에 요리를 담고 요리가 테이블로 나갑니다.
Coursera에선 이것이 토목 공사 과정과 유사하다고 했지만, 저는 공부를 위해서 다른 예제를 들어서 생각을 해보았습니다.
Data Engineering Process를 4단계로 나눌 수 있게 됩니다.
- Data를 수집해서 한 곳에 모은다.
- Data를 가공을 한다.
- Data를 ML,Anayltics 등 여러 사용처에 보낸다.
- 감독한다.
DataLake 란?
DataLake란 Data가 모이는 공간을 지칭하는 개념입니다. DataLake는 Data의 모든 특징 을 잡을 수 있어야 합니다. 그러기 위해 ,Data는 raw format으로 저장됩니다.,보통 object blobs(binary object blob) 이나 file 형태로 저장이 됩니다. Datalake는 이를 위해서 모든 형식의 파일을 지원합니다. 모든 수집되는 데이터를 저장할 수 있기 위해 Update 에 특화되어있습니다.
Data Warehouse란?
DataWarehouse는 정제가 된 데이터 들이 모이는 곳입니다. 즉, 쓸만한 데이터 데이터들만이 Data Warehouse로 loading이 될 수 있습니다. 여기서 모인 정제된(processed,transformed,organized) 데이터들은 Analytics,ML..etc등등 다양한 곳에서 사용이 되어집니다. Data Warehouse의 schema는 consistent 하고 이 schema들은 다른 downstream들 data analyts, data scientist, 에서 같습니다 .Data Warehouse의 data들은 structured data 이거나 semi-structured data입니다. 그리고 , organized 되어 있습니다. 위와 같은 특징을 갖는 이유는 , 즉각적이고 쉽게 query와 analytics를 하기 위함입니다.
DataLake vs DataWarehouse
DataLake와 Data Warehouse를 비교해보면 아래와 같습니다.
DataLake | Data Warehouse |
---|---|
모든 형식의 데이터 | sturctured, semi-structured |
Update 에 특화 | query 와 analytics 에 특화 |
Data의 모든 특징을 잡음 | processed, transformed,organized 된 쓸만한 데이터,consistent schema |
Goolge Cloud Platform에서의 Data Engineering
GCP(Google Cloud Platform)에서는 Data Engineering을 각 단계별로 위 service들을 이용해서 처리를 합니다.
Storage에서 가장 특징 적인 것은 Cloud Storage입니다. Cloud Storage는 *모든 format의 데이터*를 저장할 수 있습니다. 반면에, 예를들어 *Cloud SQL*은 *relational data*만 저장이 가능합니다.
마무리
필자는 이것들에 대해서 이론적으로는 알지만, 실제로 파이프라인을 구축하면서 써본적은 없습니다.
진짜 클라우드에서의 실력적으로 강점을 가질려면, 이론 뿐만 아니라, 실제로 사용 했을때, *이 service들을 적재적소에 사용하는 능력*이라고 생각합니다.
Leave a comment