대규모 시스템 설계 6. 빅 데이터 처리

skh951225·2023년 10월 10일
0

Batch Processing & Realtime Processing

Batch Processing은 일정 주기를 가지고 데이터를 처리하는 방식을 말한다. 상황에 따라 최근 데이터만 사용할 수도 있고 전체 데이터를 사용할수도 있다.

Batch Processing의 장점은
1. 지연시간을 신경쓰지 않아도 되 구현하기 쉽다.
2. 처리에 실패하더라도 이전의 batch에 처리된 값이 있기때문에 HA를 갖출 수 있다.
3. 많은 데이터를 한꺼번에 처리하기때문에 효율적이다.
4. 코드를 잘못 구현하더라도 이전의 batch에 처리된 값이 있고 데이터가 없어지는것이 아니기때문에 코드를 고치고 다시 실행하면 되서 Fault Tolerance를 갖출 수 있다.
5. 실시간성을 필요로 하지 않기 때문에 복잡한 연산을 수행할 수 있다.

Realtime Processing은 실시간성이 필요한 작업이 존재할때 활용할 수 있다. 실시간성을 보장하기 위해 복잡한 연산을 하기 힘들다는 단점이 존재한다.

Lamda Architecture

많은 경우에는 Batch Processing과 Realtime Processing 모두 필요하다. 많은 애플리케이션은 Historical한 정보를 토대로 실시간으로 정보를 제공하기 때문이다. 이때 Lambda Architecture를 사용할 수 있다.

Lambda Architecture는 Batch Layer와 Speed Layer, Serving Layer로 나뉜다. Batch Layer에서는 데이터 셋을 관리하며 Batch Veiw를 미리 계산해둔다. Speed Layer에서는 Batch Layer가 다루지 못한 최근 데이터에 대한 insight를 제공한다. Serving Layer에서는 앞선 두 Layer를 정보를 종합하여 최종적인 결과를 산출한다.

0개의 댓글