본문 바로가기
기타/클라우드

008. AWS - 빅데이터를 위한 데이터베이스

by hyun-am 2019. 10. 15.

데이터베이스의 발전

 

데이터베이스 종류

 

Relational

 

개념 : 데이터의 무결성 및 트랜잭션 보장 스키마 보장

사용하는 곳 : 보편적인 환경의 데이터 베이스

 

Key - Value

 

개념 : 높은 처리량, 최소 지연 보장, 유연한 확장

사용하는 곳 : 실시간 구매 이력, 게임상 유저 정보, 고객관리

 

Document

 

개념 : 문서의 저장 및 모든 속성데 대한 빠른 쿼리 요구

사용하는 곳 : 컨텐츠 관리, 도서데이터, 방송컨텐츠

 

In-Memory

 

개념 : 키를 기반으로 한 마이크로 초 이내의 응답요구

사용하는 곳 : 데이터캐싱, 실시간 데이터

 

Graph

 

개념 : 데이터 간 신속 간편한 관계 구축 및 탐색

사용하는 곳 : SNS 친구추천, 사기탐지

 

Time-Series

 

개념 : 시간에 따라 데이터 수집 저장, 처리

사용하는 곳 : 주가정보, IoT데이터

 

Ledger

 

개념 : 응용프로그램 내 모든 데이터변경에 대한 완전하고 변경 불가능한 기록 관리

사용하는 곳 : 물류배송, 헬스케어 정품 인증, 금융

 

※ 참고(관계 DB vs No SQL)

 

구분 관계 DB No SQL
종류 Oracle, MySQL, MS SQL Mongo DB, 카산드라, H베이서
처리데이터 정형데이터 정형데이터, 비정형(반정형 포함)데이터
대용량데이터 대용량처리시 성능저하 대용량 데이터 처리지원
스키마 미리정해진 스키마 존재 스키마가 없거나 변경이 자유로움
트랜잭션 트랜잭션을 통해 일관성 유지 트랜잭션을 지원하지 않아 일관성 유지를 보증하기 어려움
검색기능 조인등의 복잡한 검색 가능 단순한 데이터 검색 기능
확장성  클러스터 환경에 적합하지 않음 클러스터 환경에 적합함
라이선스 고가의 라이선스 오픈소스

 

전통적 데이터베이스 : RDBMS 

 

Amazon RDS는 클라우드에서 관계형 데이터베이스를 쉽게 설정, 운영 및 확장할 수 있습니다. 

하드웨어 프로비저닝, 데이터베이스 설정, 패치, 백업과 같은 시간 소모적인 관리 작업을 자동화하는 한편, 비용면에서 효율적이고 확장 가능한 관계형 데이터베이스 용량을 제공합니다.

따라서 사용자들은 애플리케이션에 집중하여 이에 필요한 빠른 성능, 고가용성, 보안 및 호환성을 제공하도록 합니다.

 

비관계형 데이터베이스 No SQL

 

전통적인 데이터 베이스는 파티셔닝을 수직적으로, NoSQL은 파티셔닝을 수평적으로 합니다.

수직적인 것은 스케일업, 수평적인것은 스케일아웃(샤딩)이라고 합니다.

 

NoSQL은 다양한 비정형 데이터를 저장합니다. 이러한 비정형 데이터에는 키-벨류나 문서, 테이블 데이터 간 연결을 고려하는 그래프를 들 수 있습니다. 

 

일반적인 데이터베이스는 데이터 간 관계 정보를 얻기 위한 '조인'을 원활히 이용하지만, NoSQL은 이런 확장을 해결하기 위해 설계된 분산형 데이터로, '샤드'라는 단위로 분산하여 데이터의 키 값에 따라 다른 샤드를 처리합니다.

 

Key-Value : 다이나모 DB

 

다이나모 DB는 완전 관리형 Key-Value 기반 NoSQL 데이터베이스입니다. 어떠한 규모의 데이터베이스든 일관데게 10밀리초 미만의 응답시간으로 하루에 10조 개 이상의 데이터를 처리할 수 있습니다. 따라서 낮은 대기시간을 요구하는 IoT, 모바일, 웹에서 각광 받고 있습니다.

 

문서(도큐먼트) DB

 

도큐먼트 DB(Document DB)는 쿼리의 자유도와 다양성에 최적화되어있기 때문에 유연한 쿼리가 가능한 NoSQL 데이터베이스 입니다.

 

인메모리 DB : AWS 엘라스틱 캐시

 

인메모리 DB는 디스크가 아닌 주 메모리에 모든 데이터를 보유하고 있어서, 디스크 검색보다 훨씬 빠른 자료 접근이 가능합니다. AWS 엘라스틱캐시(Elasticache)는 레디스(REdis), 멤캐시드(Memcahed)와 같은 인기 있는 오픈소스와 호환되는 인메모리 데이터스토어로 데이터를 원활하게 배포 및 확장할 수 있습니다. 

 

그래프 DB : 넵튠

 

그래프 DB(GDB, Graph DB)는 그래프 이론을 토대로 둔 NoSQL 데이터베이스입니다.

노드로 부르는 데이터 엔티티와 데이터 간의 관계를 정의해주는 에지(링크)로 이루어져 있으며 주로 데이터 간의 관계를 질의하는 목적으로 사용됩니다. 

최근, 데이터가 많아져서 이것에 관한 관계가 복잡해지면서 관심이 높아지는 데이터 유형중 하나입니다.

예를 들면 SNS에서 나와 친구를 맺은 사람들의 관게 정보를 바탕으로 새로운 친구를 추천해주는 서비스가 해당합니다. 

또한 내가 구매한 상품들을 기준으로 상품을 추천할때 사용합니다.

 

Time-Series

 

시계열 DB(Time Series DB)는 시간 간격을 두고 기록되는 데이터베이스로, 가장 큰 특징은 시간이 축이 되어 데이터의 변돌을 나타낸다는 것입니다. 이 시계열 DB의 특징은 막대한 양의 데이터가 발생하기 때문에 일반적인 관계형 데이터 베이스에서 사용할 경우 부담이 매우 큽니다.

하지만 AWS 타임스트림을 사용하면 하루 수조 건의 데이터를 처리할 수 있고 서버리스 환경에서 작동하여 기존의 프로비저닝, 소프트웨어 배치 등으로부터 자유롭습니다. 또한 처리속도는 1,000배정도 빠르고 비용은 1/10정도 저렴합니다.

 

원장 DB와 퀀텀 DB

 

원장DB는 일반적으로 위-변조를 막으려는 목적으로 금융이나 신원 확인 공급망 또는 네트워크 등의 정확한 내역을 유지 및 관리하기 위해 사용됩니다. 일반적인 데이터베이스를 사용할 경우 구축이 어렵고 위조 및 변조 가능성이 있습니다.

 

아마존 QLDB(Quantum Ledger Database)는 자체 원장형 애플리케이션을 만들지 않아도, 사용할 수 있는 데이터베이스입니다. QLDB를 사용하면 데이터의 변경 내역이 변경하거나 수정 불가능하고, 애플리케이션의 데이터에 의도치 않은 수정 등을 쉽게 확인할 수 있으며, 서버 관리를 하지 않아도 되고, 일긱나 쓰기의 제한도 구성할 필요 없이 사용한 만큼 지불하는 요금제를 사용합니다. 

 

다이나모 DB

 

다이나모 DB 구성요소

 

기본키 Key-value Key-value Key-value
기본키   Key-value  
기본키 Key-value   Key-value

이런형식으로 열마다 기본키와 속성값을 가지고 있습니다.

 

기본키 

 

NoSQL방식으로 스키마는 필요없지만, 각 데이터를 식별하기 위한 기본키는 필요합니다. 기본키는 단일한 하나의 데이터로 사용하는 파티션키 방식과 2개의 데이터를 조합하여 기본키로 사용하는 파티션 및 정렬키 방식이 있습니다. 

파티션키 방식은 단순한 값을 가지는 기본키 방식이고, 파티션 및 정렬키 방식은 값의 대소를 비교하는 추가적인 값인 정렬키를 조합하여 사용하는 방식입니다. 

 

글로벌 보조 인덱스

 

다이나모 DB의 인덱스는 크게 글로벌 보조 인덱스(Global secondary Index)와 로컬 세컨더리 인덱스(Local Secondary Index)로 나눌 수 있습니다. 전자는 테이블을 만든 후 추가할 수 있고, 후자는 오직 데이터를 생성하는 시점에서만 만들수 있으며 별도의 쓰기 용량, 읽기용량이 필요하지 않습니다. 

 

쿼리와 스캔

 

다이나모 DB는 크게 쿼리와 스캔이라는 데이터 탐색 방법을 제공합니다. 쿼리란 삽입된 기본키를 기준으로 데이터를 찾는 방법이고, 스캔은 조건 값과 맞는 데이터를 찾을 때까지 모든 데이터를 검색하는 방식입니다. 다이나모 DB는 처리 용량이라는 단위를 사용합니다. 

 


 

 

내용은 아래의 책에서 참고하여 작성하였습니다.🙂🙂

오타나 오류사항 있을시 댓글로 남겨주시길 바랍니다. 🙂🙂

 

https://book.naver.com/bookdb/book_detail.nhn?bid=14931079

 

당신이 지금 알아야 할 AWS

가장 강력한 클라우드 서비스를 경험하기 위한최고의 AWS 가이드클라우드나 AWS에 대한 지식은 인터넷에서 몇 번 클릭하는 것만으로도 다양하게 얻을 수 있습니다. 하지만 다른 IT 분야가 그렇듯 시작하려면 여러 기술적인 어려움에 마주하게 됩니다. 최근 AWS에 대한 기술 도서들이 많이 출간되었지만 초보자들이 복잡한 클라우드 인프라를 익히는 것은 쉽지 않은 일입니다.이 책은 AWS 컴퓨팅 기술과 핵심적인 서비스들을 그림과 아키텍처 중심으로 쉽게 따라하는 단계

book.naver.com

 

댓글