📌 Data Ingestion
Data Ingestion은 다양한 data source에서 데이터를 스트리밍, 배치 등의 방식으로 추출하여 data warehouse로 적재하는 것을 의미한다
- Data Source: RDBMS, NoSQL, 스트리밍 데이터 등 다양한 형태로 존재한다
- Raw: data source로부터 추출한 데이터를 의미한다
- Data Warehouse: raw data를 필요한 형식으로 변환하여 적재하는 중앙 데이터 저장소를 의미한다
- raw data는 JSON, CSV 등 형태가 다양하기 때문에 바로 data warehouse로 적재하기 힘들 수 있다. 그래서 적재할 수 있는 형식으로 데이터를 변환하는 과정인
ETL이 필요하다

❓ 왜 data ingestion을 해야 할까
다양한 data source에 위치한 데이터를 하나의 data warehouse로 수집함으로써 데이터 관리가 쉬워지고, 데이터를 분석하기 용이해진다
📌 Challenges
data source는 보통 data ingestion platform과 다른 cloud 및 환경에 위치하여 통제 범위에 벗어나는 경우가 많다. 그래서 데이터 수집을 위해서는 많은 challenge가 존재한다.
1. 시간 효율성
- data source로부터 수동으로 데이터를 추출한다면 data warehouse로 적재하고 데이터를 분석가능한 상태로 만들기까지 많은 시간이 소요될 수 있다. 그래서 data source와 통신이 가능한 상태로 수집 플랫폼을 구성하고, 자동으로 데이터를 추출할 방법을 고민해야 한다.
2. schema 변경
- data source의 schema가 변경(ex. column 추가, table 삭제, data type 변경 등)된다면 ETL 및 datawarehouse로 적재하는 과정에 영향을 미칠 수 있다. schema가 변경되더라도 영향을 주지 않는 data pipeline을 설계할 수 있는 방법을 고민해야 한다.
3. 데이터 일관성
- 수집 pipeline이 동작하지 않는다면 data warehouse에 오래된 데이터가 발생하거나 데이터 손실 또한 발생할 수 있다. data warehouse에 적재된 데이터가 data source와 일관성을 유지할 수 있는 방안을 고민해야 한다.
🔗 참고자료