study/TIL🐥

SQL/NoSQL/DynamoDB

서나쓰 2021. 4. 28. 10:53
728x90
구분 SQL NoSQL
처리데이터 정형 데이터 정형, 비정형, 반정형
대용량 데이터 대용량 처리시 성능 저하 대용량 데이터 처리 지원
스키마 미리 정해진 스키마가 있다 스키마가 없거나 변경이 자유로움
트랜젝션 트랜젝션을 통해 일관성 유지 보장 트랜젝션을 완전히 지원하지 않아 일관성 유지가 힘들다
검색기능 join등의 어렵고 복잡한 검색이 가능 단순한 데이터 검색 가능
확장성 클러스터랑 환경에 비적합 클러스터링에 적합
라이센스 고가의 라이센스 비용 오픈소스
대표적 사례 oracle, MySQL, MS SQL 카산드라, 몽고DB
장, 단점 복잡한 질의 가능, 트랜젝션을 통해 일관성 유지
대량의 비정형 데이터 처리시 비효율적
대랴의 비정형 데이터 처리에 용이, 질의 속도 빠름
정해진 스키마가 없어 편리하지만 일관성 유지 힘듬

 

NoSQL 특징

  • key-value 쌍으로 저장
  • 이미지 동영상 등 어떠한 형태도 저장 가능
  • 질의 속도가 빠르다
  • 키를 통한 값 전체 검색은 가능하나, 값의 일부 검색이나 내용을 통한 검색은 할 수 없다

DynamoDB 구성

  • 다른 DB 시스템과 마찬가지로 데이터를 테이블에 저장한다
  • 각각의 데이터는 항목과 속성으로 이루어진다
  • 각 개별 데이터를 항목이라고 하고, 항목이 가지고 있는 key-value 형태의 데이터를 속성이라 한다
  • 파티션 키 : 테이블에 무조건 하나만 존재해야 하는 값으로 테이블에 있는 아이템을 어디에 나눌지 정하는 키
  • 정렬 키 : 정렬할 때 사용하는 키
  • 글로벌 보조 인덱스(GSI) : 테이블을 만든 후 추가할 수 있으며, 현재 테이블과 동기화 해 동일한 테이블 작성 가능
  • 로컬 세컨더리 인덱스(LSI) : 대체 정렬 키로 쿼리, 스캔 시 사용, 데이터를 생성하는 시점에만 만들 수 있다
728x90