패스트 캠퍼스에서 수강하는 데이터 엔지니어링 강의 내용의 정리본이다.
Part3_DB_NoSQL
목차
- Step 1. NoSQL
- Step 2. Dynamodb
- Step 3. 데이터 채우기
- Step 4. 데이터 조회하기
Step 1. NoSQL
NoSQL(Not Only SQL)
초고용량 데이터 처리 등 성능에 특화된 목적을 위해 비관계형 데이터 저장소에 비구조적인 데이터를 저장하기 위한 분산 저장 시스템
필요성
- 유연성
- 현재는 데이터가 매우 많이 나오고 있으며 유형도 다양하기에 유연성을 가지고 데이터를 저장할 수 있음
- Scalability
- SQL DB는 vertically scalable인 컬럼 기준으로 나누는 형식이며 전체 특정 스펙들을 지정하여 사용
- NoSQL DB는 horizontally scalable
Step 2. Dynamodb
Amazon DynamoDB는 종합 관리형 NoSQL 데이터베이스 서비스로, 원활한 확장성과 함께 빠르고 예측 가능한 성능을 제공한다.
DynamoDB를 통해 데이터 규모에 관계없이 데이터를 저장 및 검색하고, 어떤 수준의 요청 트래픽이라도 처리할 수 있는 데이터베이스 테이블을 생성이 가능하다.
파티션(Partition)
데이터가 많아짐에 따라 데이터 매니지먼트, 퍼포먼스 등 다양한 이유로 데이터를 나누는 개념
-
vertical partition : 테이블을 더 작은 테이블로 나누는 작업으로써(컬럼으로 나눔) 정규화 후에도 경우에 따라 컬럼을 나누는 파티션 작업을 실행
-
horizontal partition : NoSQL DB에서 사용하는 방법으로 schema / structure 자체를 카피하여 데이터 자체를 shared key로 분리 (컬럼을 유지한 상태로 나눔)
-
파티션 키 (Partition Key) DB 입장에서 어떤 값을 기준으로 값을 서칭하고 추가할지에 대한 기본키 개념이다. 파티션 키를 artist_id로 설정하면 해당 컬럼으로 들어오는 데이터가 파티션 키로 된다.
-
솔트 키 (Sort key) 파티션 키가 중복되지만 다른 정보는 상이할 경우가 있다. 해당 경우에 원하는 값을 찾기 위한 서브 키 개념이다.
Step 3. 데이터 채우기
이제 AWS 에서 Dynamodb를 생성해보자. 우선 우리가 사용할 테이블은 top_tracks 이다. 파티션 키는 artist_id 이고 솔트 키는 id 로 설정한다.
이렇게 프리티어로 생성해야 과금이 생기지 않는다. 자 이제 생성한 Dynamodb를 파이썬이랑 연결을 시켜보자
1) Boto3 library
Python 애플리케이션, 라이브러리 또는 스크립트를 Amazon S3, Amazon EC2, Amazon DynamoDB 등 AWS 서비스와 통합 시켜주는 library이다.
1 |
|
추가된 데이터는 AWS Dynamodb에서 확인할 수 있다
Step 4. 데이터 조회하기
python을 이용해서 적재한 데이터를 조회해보자
1 |
|
1 |
|