Database

목적에 맞는 데이터베이스 선택하기

BUST 2018. 9. 9. 17:20

목적에 맞는 데이터베이스 선택하기

서비스를 개발을 할때 그 서비스의 성격, 특징에 맞게 데이터베이스 선택 또한 중요한 요소중의 하나이다.
  • Data Size
  • Read (Latency)
  • Write
  • Update
위의 특징에 따라 선택할수 있는 데이터베이스를 정리를 해본다. 하나의 데이터베이스만 사용하는 것이 아니라 비즈니스, 데이터의 성격 등의 따라 데이터를 여러개를 둬서 활용한다.

데이터 양이 적고 읽기, 쓰기가 중요한 경우, 업데이트가 많이 일어나는 경우 (Data size ~ X GB, Read < 10ms, write < 10ms)

빠른 읽기, 쓰기를 위해 Memory를 사용하는 Database를 선택한다. 보통 Cache에 활용된다.
update가 자주 일어나는 경우 (real-time)에 활용된다.
  • Redis
  • Memcached

데이터의 증가량이 많고 빠른 읽기, 쓰기를 원할때  (Data size > X TB, Read ~ 10ms, write ~ 10~100ms)

손쉽게 Scale Out를 할수 있는 데이터베이스를 선택을 한다. ex) 로그성 데이터, 광고 타켓팅 데이터
  • Cassandra
  • DynamoDB
  • CouchBase
  • MongoDB

관계가 복잡한 데이터를 관리할때 (Data Size: X GB ~ X TB, Read: 10ms ~ 100ms, write: 10ms ~ 100ms)

  • MySQL
  • MariaDB
  • AWS Aurora DB

빠른 검색이 필요할때 (Data Size: X GB ~ X TB, Read ~ 100ms, write ~ 100ms)

Key 값을 이용한 조회가 아닌 데이터의 특정 필드에 대한 검색이 필요한 경우에는 검색엔진를 사용한다.
  • Elastic Search
  • Solr

데이터 검색, 분석, 추출을 필요할때 (Data Size: X TB ~, Read > X min, write > Xmin, X hour )

고객 추출(Customer Targeting) 등과 같이 분석이 필요할 경우에는 Data Warehouse 데이터 베이스를 활용하거나 하둡 프레임워크를 사용한다.
  • Redshift
  • Hive
  • Presto
  • S3
  • HDFS


'Database' 카테고리의 다른 글

Redis 자료구조  (0) 2018.10.14
역색인 (Inverted Index)  (0) 2018.08.27
테이블 설계 - 정규화  (0) 2018.08.12
NoSQL DB의 1:N 데이터의 구조의 설계 방법의 종류  (0) 2018.05.22