본문 바로가기
데이터베이스 기초

DevOps Day 17 (3.29) 데이터베이스_배치 작업에 따른 성능 저하

by Jackykim 2023. 3. 31.

배치 작업에 따른 성능 저하 스트림 처리
Data Batch Processing : 데이터 배치작업을 데이터 일괄처리작업이라고 칭하기도 합니다. 이름에서 있듯이 유입되는 데이터를 특정량 또는 특정기간 모아서 한번에 처리한다는 의미입니다.

 

배치의 특징 :
-
대량의 데이터 처리
-
특정 시간에 프로그램 실행
-
일괄적으로 처리

 

배치 작업의 단점
예약된 일이 순차적으로 실행되기 때문에 앞선 프로그램의 실행이 끝나야지만 뒤에 등록된 데이터가 실행이 됩니다. 대량의 배치작업을 한꺼번에 진행하게 되면 특정시간대에 I/O 몰리게 되어 서버에 갑작스러운 부하가 일어나 성능이 저하 있습니다.

DB 효율적으로 처리하는 방법
지체를 줄이기 위해서는 자주 처리를 실행해야 합니다. 시간을 초단위, 밀리초 단위로 해서 데이터를 처리하거나, 또는 고정된 시간이 아닌 단순히 이벤트가 발생할 때마다 처리를 해야 합니다. 방법이 스트림 처리의 기본개념입니다.

 

데이처 배치 처리 vs 테이터 스트림 처리

데이터 스트림
스트림 처리는 데이터가 생성되는 즉시 연속 스트림을 처리하는 것을 의미합니다.

 

테이터 스트림 특징
-
시간에 민감함 : 테이터 스트림의 요서는 타임 스탬프를 전달합니다. 데이터 스트림은 시간에 민감하며 특정 시간이 지나면 중요성을 잃게 됩니다.
-
연속성 : 스트리밍 데이터에는 시작도 끝도 없습니다.
-
다양성 : 스트림 데이터는 지리적으로 멀리 떨어져 있을 있는 수천 개의 서로 다른 소스에서 오는 경우가 많습니다
-
불완전성 : 소스의 다양성과 데이터 전송 메커니즘의 차이로 인해 데이터 스트림에 데이터 요소가 누락되거나 손상될 있습니다.
-
휘발성 : 많은 최신 시스템은 데이터 스트림의 기록을 유지하므로 현재 액세스할 없더라도 나중에 분석할 있습니다.

 

데이터 스트림을 처리하기 위해서는
- 짧은 대기 시간 : 스트림 프로세서는 연속적인 데이터 스트림에서 빠르게 작동해야 합니다.
- 확장성 : 스트리밍 데이터의 양이 항상 같지는 않습니다. 데이터의 양은 예측할 없기 때문에 프로세서는 필요한 경우 많은 양의 데이터를 처리할 있도록 확장되어야 합니다.
-
가용성 : 스트림 프로세서는 가동 중지 시간을 감당할 없습니다. 스트림 데이터는 연속적이며 실시간으로 도착합니다.

 

테이터 스트림 처리의
-
사물 인터넷: IoT에는 센서를 사용하여 데이터를 수집하고 실시간으로 데이터 프로세서에 전송하는 수많은 장치를 포함하고 있습니다. 워치와 같은 웨어러블 건강 모니터, 가정 보안 시스템, 교통 모니터링 시스템, 생체 인식 스캐너, 연결된 가전제품, 사이버 보안 개인 정보 보호 시스템은 실시간으로 데이터를 생성하고 스트리밍합니다.
- 실시간 주식 시장 모니터: 실시간 금융 데이터는 종종 스트림 형식으로 전송됩니다.
- 활동 트랜잭션 로그: 인터넷은 실시간 스트림 데이터의 주요 소스이기도 합니다. 사람들이 웹사이트를 방문하거나 링크를 클릭하면 브라우저는 활동 로그를 생성합니다.
- 프로세스 모니터: 모든 회사는 내부 시스템에서 수십억 개의 데이터 포인트를 생성합니다. 기업은 데이터를 스트리밍하고 실시간으로 처리함으로써 시스템 상태를 모니터링하고 상황이 확대되기 전에 조치를 취할 있습니다.

 

이벤트
이벤트란 시스템 하드웨어 또는 소프트웨어 상태가 변화다는 것을 의미합니다. 또는 중대 사건의 발생을 의미하기도 합니다.

 

이벤트 기반 아키텍처
- 이벤트 기반 아키텍처는 이벤트 생성자와 이벤트 소비자로 구성되어 있습니다. 이벤트 생성자는 이벤트를 감지하며 메시지로 해당 이벤트를 나타냅니다.
- 이벤트가 감지된 후에는 이벤트 처리 플랫폼이 이벤트를 비동기식으로 처리하는 이벤트 채널을 통해 해당 이벤트 생성자에서 이벤트 소비자로 전송됩니다.
- 이벤트 기반 아키텍처는 조직이 실시간으로 변화에 대응하여 의사 결정을 내릴 있는 유연한 시스템을 확보할 있도록 지원합니다.