배치 처리와 실시간 처리
배치 처리 배치 처리 프로그램 특징 - 사용자와 상호작용하지 않음 - 대량의 data를 처리하며 - 일련의 작업 묶음으로 이뤄져있다. 배치 프로그램의 주기 - 정기적으로 작업을 수행하거나 - 조건을 만족하는 이벤트가 발생 할 때 실행 - 사용자의 요구 조건에 따라 배치를 수행하는 경우는 on-demand 배치라고한다. on-demand 배치는 일반 배치프로그램처럼 테이블 전체에 대해 수행하거나 하지는 않고 제한적인 범위에 대해 수행한다. 예를 들어, 일반 사용자의 on-demand 배치가 전체 거래량에 대해 정산을 하지는 않는다. 배치 프로그램의 튜닝 대용량 배치 프로그램 튜닝에서 중요한 것은 전체 처리 속도를 낮추는 것이다. 기업에서는 배치 프로그램을 관리하는 "배치 윈도우"라는 설계도, 문서가 있는데 이는 배치 프로그램들의 튜닝과 플랜을 짜는데 도움이 된다. 일반적으로 배치 프로그램은 dbms 상에서 수행되는 일련의 sql 작업들로 구성되며 이 sql문의 튜닝이 전체 처리 속도에 큰 영향을 미친다. 배치 프로그램 구조 이 sql 작업들은 - one sql = 하나의 sql문으로 전체 프로세스를 짜는 것 - 각 언어 구현체의 데이터베이스 커서를 사용하여 루프를 돌면서 실행한다. - one sql보다 성능적으로 권장되는 방법은 one sql을 여러 sql 집합으로 쪼개서 단계적으로 실행하는 것이다. commit시점이나 횟수가 완전 동일한 로직이라는 가정하에 one sql이 curosr loop보다 더 간편하고 관리하기가 용이하다고 생각한다. 배치 관리 프로그램 - .sh - .py - sql (1단계) - .sh - .py - sql (2단계) ...