160819: 106회차
Programming
2016. 8. 19. 17:08
종료하기 전 티스토리 네이버 로그아웃 할 것
노오력
1. 툴
동일
추가시:
2. 폴더
동일
추가시:
3. 사용할 사이트
동일
추가시:
4. 공부하는 것
01-8/16 - ㅊ1
02-8/17 - ㅊ2
03-8/18 - ㅁㅈ13
04-8/19 - ㅊ3
05-8/22 - ㅊ4
06-8/23 - ㅊ5
07-8/24 - ㅊ6
08-8/25 - ㅊ7
09-8/26 - ㅈㅌ14
10-8/29 - x
11-8/30 - x
12-8/31 - x
13-9/1 - ㅊ8
14-9/2 - ㅊ9
15-9/5 - ㅊ10
16-9/6 - ㅊ11
17-9/7 - ㅊ12
[01] NoSQL 개요, 종류
[01] NoSQL
관계형 DB - 사원테이블, 최종학력테이블 ,여권정보
- HBase와 Cassandra 테이블 생성
- HBase에서 Scan를 사용해서 내용 확인
1. NoSQL 개요
- NoSQL은 Not Only SQL의 약자로 기존 RDBMS 형태의 관계형 데이터베이스가
아닌 다른 형태의 데이터 저장 기술을 의미함
- NoSQL이라고 해서 RDBMS 제품군(MS-SQL, Oracle, Sybase, MySQL) 등과
같이 공통된 형태의 데이터 저장 방식(테이블)과 접근 방식(SQL)을 갖는 제품군이
아니라 RDBMS와 다른 형태의 데이터 저장 구조를 갖는다는 의미이며, NoSQL을
하나의 제품군으로 정의할 수는 없음
1) KV(key/Value) Store
- NoSQL에서 가장 기본이되는 것이다.
- 오로지 속성은 key와 value만 존재한다.
- NoSQL에서 키는 관계형 데이터베이스의 PK(primary Key,주키)로 정의되고
속성값들이 value에 데이터로 통합되어 저장되는 무척단순한 구조이다.
- 이구조는 DynamoDB 등에서 사용되는 형식이다.
2) 컬럼패밀리(Column Family)기본 모델
- key/value모델의 확장된 모델이다.
- 컬럼이 columns라는 속성에 데이터로 저장되고 value속성에는 해당 컬럼의
값만 존재한다.
- 관계형 데이터베이스에 성별이라는 컬럼이있다면 columns에 성별이 데이터로
저장된고 value엔느 "남"또는 "여"라는 데이터가 저장된다.
- 관계형 모델이 컬럼을 수직적으로 배열했다면, NoSQL 모델에서는 데이터를
수평적으로 나열해 놓는 방식이다.
- 관계형 모델에서 유연성을 극대화한 모델이라고 볼 수 있다.
- 관계형 모델에서 테이블 생성시 컬럼명을 정의해 줘야 하고 컬럼이 추가되면
테이블의 구조를 바꿔야 하지만, Column Family 테이블에선 구조변경이
필요없고 새로운 데이터로 컬럼과 데이터를 입력만 하면된다.
- NoSQL에서는 관계형 데이터베이스와 다르게 컬럼의 정의가 자유롭고 컬럼이
데이터로 NoSQL 데이터베이스에 입력 저장된다.
- 관계형 데이터베이스에서는 테이블 생성시 정의된 고정 컬럼때문에 관계형
데이터베이스에서는 NULL로 관리되지만, NoSQL에서는 데이터가 존재하지
않으면 데이터를 입력할 필요가 없다. 디스크공간을 효율적으로 사용할 수
있고 필요없는 정보는 관리할 필요가 없다.
2. NoSQL 종류
- 가장기본적인 모델인 Key/Value Store
- Key/Value Store에서 컬럼 개념을 확장하여 생성된 Column Family
- 문서 저장에 적합한 Document Store
- 네트워크 구조인 Graph 구조에 적용하는 Graph 데이터베이스
- 등 각 데이터베이스별 각각의 특성이 있고 사용 용도가 다르다.
- NoSQL의 기본이 되는 Key/Value Store와 Column Family 데이터 구조에
대해 알아본다.
- 가장기본적인 모델인 Key/Value Store
- Key/Value Store에서 컬럼 개념을 확장하여 생성된 Column Family
- 문서 저장에 적합한 Document Store
- 네트워크 구조인 Graph 구조에 적용하는 Graph 데이터베이스
- 등 각 데이터베이스별 각각의 특성이 있고 사용 용도가 다르다.
- NoSQL의 기본이 되는 Key/Value Store와 Column Family 데이터 구조에
대해 알아본다.
1)KV(key/Value)Store
- Nosql의 가장 기본적인 구조
- store는 DBMS가 아니라 단순한 데이터를
저장하는 의미
Key Value구조
- 대표적으로 사용하는 Key/value Store는 아마존 DynamoDB이다
- DynamoDB는 테이블 생성을 아마존에서 제공하는 화면에서 직접 생성한다.
- Table name과 Primary Key를 입력하고 테이블을 생성하는 절차를
거치면 원하는 테이블이 생성된다.
2) DynamoDB 핵심 구성 요소
- DynamoDB 테이블에서, 항목 및 속성은 작업 시 필요한 핵심 구성 요소이다.
테이블은 항목 집합이고, 각 항목은 속성 집합이다.
- DynamoDB는 기본 키를 사용하여 테이블의 각 항목을 고유하게 식별하고
보조 인덱스를 사용하여 보다 유연하게 쿼리를 작성하도록 해 준다.
- DynamoDB Streams를 사용해서는 DynamoDB 테이블의 데이터 수정 이벤트를
캡처할 수 있다.
** 항목 **
a. 테이블, 항목 및 속성
. 테이블:다른 데이터베이스 시스템과 마찬가지로 DynamoDB는 데이터를
테이블에 저장함.
테이블에 저장함.
테이블은 데이터의 집합이다. 예를 들어, 개인 연락처 정보를 저장하는 데
사용할 수 있는 People(아래에 표시됨)이라는 예제 테이블이 있다.
. 항목 :각 테이블에는 여러 개의 항목이 있다. 항목은 모든 기타 항목 중에서
고유하게 식별할 수 있는 속성들의 집합이다. DynamoDB의 항목은 여러
가지 면에서 다른 데이터베이스 시스템의 행, 레코드 또는 튜플과 유사하다.
예제 People 테이블에서 각 항목은 한 사람을 나타낸다.
. 속성 :각 항목은 하나 이상의 속성으로 구성된다 속성은 기본적인 데이터 요소로서
더 이상 나뉠 필요가 없는 것이다. DynamoDB의 속성은 여러 가지 면에서
다른 데이터베이스 시스템의 필드 또는 열과 유사하다.
예를 들어, 예제 People 테이블의 항목에는 PersonID, LastName,
FirstName 등의 속성이 포함된다.
>>>People 테이블에 대한 내용
- People 테이블에서는 기본 키가 하나의 속성(PersonID)으로 구성.
기본 키를 제외하고, People 테이블에는 스키마가 없다.이는 속성이나 데이터
형식을 미리 정의할 필요가 없음을 의미한다.
- 각 항목에는 자체의 고유 속성이 있을 수 있다.
대부분의 속성은 스칼라인데, 이는 하나의 값만 가질 수 있다
문자열 및 숫자가 스칼라의 일반적인 예이다.
- 일부 항목은 내포 속성(Address)을 갖는다. -
DynamoDB는 최대 32 수준 깊이까지 내포 속성을 지원한다.
>>>Music 테이블에 대한 내용
- Music의 기본 키는 두 개의 속성(Artist 및 SongTitle)으로 구성.
테이블의 각 항목이 이러한 두 속성을 가지고 있어야 한다.
- Artist와 SongTitle의 조합은 테이블의 각 항목을 다른 모든 항목과 구별한다.
기본 키를 제외하고, Music 테이블에는 스키마가 없다.이는 속성이나 데이터 형식을
미리 정의할 필요가 없다.
- 각 항목에는 자체의 고유 속성이 있을 수 있다.
항목 중 하나에는 내포 속성(PromotionInfo)이 있는데, 이 속성은 다른 내포
속성을 포함한다.
b. 기본 키
- 각 기본 키 속성은 스칼라여야 한다(즉, 단일 값만 가질 수 있음).
- 각 기본 키 속성은 스칼라여야 한다(즉, 단일 값만 가질 수 있음).
- 기본 키 속성에 허용되는 데이터 형식은 문자열, 숫자 또는 이진수뿐이다.
다른 키가 아닌 속성에는 이러한 제한이 없다.
- 예로는 파티션 키와 파티션 및 정렬 키(복합키)
c. 보조 인덱스
- DynamoDB는 인덱스를 사용하도록 요구하지는 않으면서도 데이터를 쿼리할 때
애플리케이션에 보다 많은 유연성을 제공한다.
- DynamoDB는 두 가지 종류의 인덱스를 지원한다.
- Global secondary index :
파티션 키 및 정렬 키가 테이블의 파티션 키 및 정렬 키와 다를 수 있는 인덱스.
- Local secondary index :
테이블과 파티션 키는 동일하지만 정렬 키는 다른 인덱스.
d. DynamoDB Streams
- DynamoDB Streams는 DynamoDB 테이블의 데이터 수정 이벤트를 캡처하는
선택적 기능이다. 이러한 이벤트에 대한 데이터가 이벤트가 발생한 순서대로
거의 실시간으로 스트림에 표시된다.
거의 실시간으로 스트림에 표시된다.
- 각 이벤트는 스트림 레코드에 의해 나타납니다. 테이블에서 스트림을 설정하면,
이벤트 중 하나가 발생할 때마다 DynamoDB Streams가 스트림 레코드를 기록함.
- 이벤트종류는 테이블에 새로운 항목 추가,항목 업데이트, 항목 삭제등이 있다.
2) Column Family
- Key/Value모델이 한 단계 발전한 모델이다.
- 테이블에 데이터가 입력될 때 컬럼도 데이터로 저장됨
- Cassandra와 HBase데이터베이스가 Column Family의 종류이다.
- Cassandra는 Column Family대신 Super Column이라 한다.
- 용어
a. 테이블
관계형 모델의 테이블과 동일한 개념이다.
b. Row
관계형 모델에서 튜플(Tuple)에 해당하는 개념이다.
관계형 모델에서는 row 형태로 데이터베이스에 저장되지만 NoSQL에서는
논리적으로 설계하기 위한 모델이고 실제 저장되는 단위는 아님
c. Column Family
관계형 모델에서는 존재하지 않는 구조체 모델로 NoSQL 모델에서 특히
Column Family 모델에서 사용된다.
d. Cell
관계형 모델에선 튜플인 row 단위로 데이터베이스에 저장되므로 row까지
관리되지만 NoSQL에서는 row를 컬럼 단위로 다시 분해해 저장하는데
이value 단위를 cell이라고 한다.
- NoSQL Column Family / 관계형 데이터베이스 비교
a. 테이블
관계형 모델의 테이블과 동일한 개념이다.
b. Row
관계형 모델에서 튜플(Tuple)에 해당하는 개념이다.
관계형 모델에서는 row 형태로 데이터베이스에 저장되지만 NoSQL에서는
논리적으로 설계하기 위한 모델이고 실제 저장되는 단위는 아님
c. Column Family
관계형 모델에서는 존재하지 않는 구조체 모델로 NoSQL 모델에서 특히
Column Family 모델에서 사용된다.
d. Cell
관계형 모델에선 튜플인 row 단위로 데이터베이스에 저장되므로 row까지
관리되지만 NoSQL에서는 row를 컬럼 단위로 다시 분해해 저장하는데
이value 단위를 cell이라고 한다.
- NoSQL Column Family / 관계형 데이터베이스 비교
관계형 DB - 사원테이블, 최종학력테이블 ,여권정보
- HBase에서 userinfotable 테이블 생성및 put로 자료 등록
- HBase에서 Scan를 사용해서 내용 확인
- Cassandra에서 테이블 생성및 자료등록 내용확인
5. 수업
진도:
hw:
6. 할것
'Programming' 카테고리의 다른 글
160823: 108회차 (0) | 2016.08.23 |
---|---|
160822: 107회차 (0) | 2016.08.22 |
160817: 105회차 (0) | 2016.08.17 |
160816: 104회차 (0) | 2016.08.16 |
160809: 103회차 (0) | 2016.08.09 |