현재 어떤 시스템을 사용하고 있고 어떤 시스템을 통합해야 하는지 생각할 것
- 내가 사용하고 있는 시스템이 무엇인가?
- 현재 Apache Spark을 이용해서 분석 작업을 하고 있다면, Apache Spark과 쉽게 연결할 수 있는 외부 DB를 선택해야 할 것임
확장에 필요한 요구사항 고려
- 얼마나 많은 데이터가 필요한가?
- 시간에 따라 무한히 증가하는 데이터인가?
- 데이터의 처리량은 어떠한가? 초당 얼만큼의 요청을 처리할 수 있어야 하는가?
서포트 받을 수 있는지도 고려해야 해
- 회사 내에 어떤 기술에 대한 전문가가 있는지도 고려해야 함
- 만약, 작은 회사라면 아웃소싱 등을 해서라도 관리자를 찾아야 함
- 또는 MongoDB처럼 기업 솔루션을 제공해주는 업체를 이용하는 것도 괜찮을 수 있음.
- 아니면 오픈 소스를 managed 서비스로 제공해주는 업체를 이용하는 것도 나쁘지 않음
예산도 고려해야 해
CAP 이론
- 일관성, 가용성, 파티션 내성 셋 중에 두 개를 선택해야 함
- 분할 내성
- DB의 크기는 현재 충분한가?
- 추후 트랜잭션이나 데이터를 처리할 때 하나의 서버로 충분한가?
- 가용성
- 시스템이 몇 초에서 몇 분 정도 다운되어도 괜찮은가?
- 일관성
- 무언가 작성했을 때 사람들이 몇 초 동안만큼은 오래된 값을 받아도 괜찮은 ‘Eventually Consistency’로 충분한가?