AWS DynamoDB
DynamoDB! NoSQL! 1. NoSQL document store database 시작하기 전에 왜 NoSQL이 생겨났는지 알아볼 필요가 있다. NoSQL이 생기기 전에는 RDB가 주류를 이루고 있었는데 이는 스토리지 비용이 비싼 시절이었기 때문에 정규화를 통해 중복을 줄여 데이터를 최대한 줄이는 것을 선호했기 때문이다. 그러나 시간이 지남에 따라 스토리지의 비용의 감소와 대규모 연산의 중요성이 증가함에 따라 스토리지를 더 많이 소모하더라도 성능을 끌어올리기 위해 탄생한 개념이 NoSQL인것이다. 2. DynamoDB의 특징. 빠른 속도 - NoSQL인 DynamoDB는 비정규화적 특징을 가진다. 빠른 쿼리만 가능하다면 데이터의 중복을 허용하고 이를 활용해 빠른 검색속도를 실현한다. Table Key - 각 Json Data 를 구분 짓는데 Partition Key와 Sort Key를 사용하며 이를 Table Key라고 한다. 이 키는 후술할 LSI, GSI와 같은 구조와 역할을 가지며 Table Key와 LSI는 테이블이 생성된 이후엔 변경이 불가능하다. 기본적인 Query는 이 값을 이용하여 검색하는데 Partition Key는 = 비교만 가능하고 Sort Key는 그보다 다양한 <, >, =, StartAt, Between 비교등이 가능하다. Secondary Index (LSI, GSI) - Query는 TableKey 또는 LSI, GSI로만 가능하다. LSI는 TableKey와 같은 Partition Key를 가지지만 다른 Sort키를 사용하고 GSI는 두 키 모두 다른 키를 사용한다. GSI는 추가 제거가 자유롭다. 하지만 GSI추가는 Table추가나 다름없고 이는 추가적인 비용 증가로 이어진다. Scalability - NoSQL은 많은 트래픽을 감당하기 위해서 탄생한 개념이기도 한데 이를 위해...