내가 한 노력들

[ AWS ] DynamoDB 사용하기 본문

IT 공부/AWS

[ AWS ] DynamoDB 사용하기

JONGI-N CHOI 2021. 7. 27. 16:57

테이블 생성

DynamoDB를 사용하기 위해서,  AWS 콘솔화면에서 선택을 합니다. 

그리고 테이블 만들기를 선택을 하고, 테이블의 이름과 기본키를 설정해준다.

 


항봉 생성

 테이블이 만들어지고 위에 "항목"이라는 키워드를 누르게 되면 

항목 만들기가 있는데, 이것을 클릭

 

 

항목에는 기본적으로 키본키는 모두 작성되어야 하고

 

"+" 버튼을 눌러보면 새롭게 항목을 추가하거나 삭제도 가능하다.

 

 

DynamoDB는 NoSQL이기 때문에, RDBMS처럼 정해진 스키마가 따로 없다. 그래서, 서로 다른 항목을 넣어도 NULL처리를 해줄 필요가 없다. 

 

-> 위의 사진에서 보면, 김영희 학생은 major와 circle이 없는데 NULL을 주지 않아도 전혀 문제 없이 항목이 만들어지는 것을 알 수 있음

 

데이터에 체크표시를 하고 작업을 눌러보면, 해당 데이터에 대해서 복사 or 편집 or 삭제등의 작업을 할 수 있다.

 


스캔과 쿼리

 

스캔은 필터에 맞는 모든 데이터를 찾아서 출력해주는 것

아무런 필터 없이 스캔을 하게 되면, 모든 데이터가 출력이 된다. 

 

univ_id의 값이 180001 이상인 데이터만 스캔하도록 필터를 추가했더니 2개의 데이터만 출력이 되는 것을 볼 수 있다.

 

 

쿼리는 기본키를 입력하여 데이터를 검색하는 방법 

 

기본키인 'univ_id' 값을 통해서 데이터를 검색할 수 있다. 

 


글로벌 보조 인덱스 생성

상단에 "인덱스" 선택

 

 

설정하고 싶은 "기본키"를 작성하고, 인덱스의 이름을 설정

 

프로젝션 속성이란, 인덱스를 기준으로 검색할 때 모든 항목을 전달 받을 것인지, 키 값만 전달 받을지를 선택가능

 

인덱스 생성을하면, 정상적으로 생성이 된 것을 확인할 수 있고

 

다시 항목으로 돌아가서, 스캔/쿼리 표를 확인해보면 [인덱스]가 새롭게 추가된 것을 확인 할 수 있다.

 

 

인덱스(major)로 스캔을 하게 되면, major의 데이터가 있는 값만 스캔 하게 된다. 

 

그리고 쿼리를 사용할 때에도 인덱스를 사용하면 원하는 데이터를 찾을 수 있다.

 

 

인덱스를 사용해서 스캔 or 쿼리를 사용하는 이유는 무엇일까???

 

스캔을 사용할 때에는 모든 데이터를 기준으로 검색을 하기 때문에 처리 용량이 커지게 된다.

쿼리문는 기본키를 기준으로 필터링 가능하기 때문에, 인덱스를 통해서 기본키를 major로 설정해 놓으면 

쿼리문을 사용할 때 major를 기준으로 검색을 할 수 있기 때문에 원 테이블에서 스캔으로 Major를 찾는 것 보다 

처리 용량이 적어진다.

 


 

테이블 삭제 

 

실습이 끝난 후에는, 추가 비용 발생 방지를 위해서 테이블을 삭제하면 된다.