[빅데이터/인공지능 목차]

 

 

불편 추정량(Unbiased Estimator)

 

1. 좋은 추정량을 선택하기 위한 기준, 불편 추정량의 개념

1) 정의

  • 추정량의 기대 값이 모수와 같거나, 표본 평균의 기대값이 모 평균과 같아지는 값
  • 추정하고자 하는 모수(모집단의 평균, 중앙 값, 최빈치, 분산 등)가 실제 값에 대해 매우 가깝거나 근사한 값
  • E(X`) - E(X) = 0, E(X`) = E(X) 표본집단의 기대치에서 모집단의 기대치를 뺀 값을 편의라고 하며, 편의가 0인 상태는 모수와 표본의 차이가 없는 불편 추정량 상태라고 함  (E(X) : 추정량, X` : 표본 집단, X : 모딥단)

2) 특징

  • 편의(bias, 치우침) 없는 성질
  • 일치성
  • 상대적 효율성

 

2. 불편 추정량 선택 주요 기준

주요 기준 그래프 설명
불편성/불편의성
(Unbiasedness)

- 편의(치우침) 없는 성질
   E(X`) - E(X) = 0
- 어떤 통계량의 기대 값이 모수에 일치하는 통계량
일치성
(Consistency)
- 표본의 크기가 커질수록, 추정량이 모수에 점근적(Asymptotic)으로 근접하는 성질
- 일치추정량 : 표본 분산 (표본 표준편차)
상대적 효율성/유효성
(Relative Efficiency)
- 여러 불편의 추정량이 있을 경우, 이들 중 추정량 분산이 더 작게 나타나는 성질
  • 추정하고자 하는 모수의 실제 값과 매우 가깝거나 그 주위에 집중된 추정량을 선택하는 방식

 

[데이터베이스 목차]

 

1. 데이터 체계적 관리 프로세스, 데이터거버넌스의 개념 

전사 차원의 모든 데이터에 대한 정책, 지침, 표준화, 전략을 수립하고 데이터를 관리하는 조직과 프로세스를 구축함으로써 고품질의 데이터를 활용하여 기업의 가치 창출을 지원하는 체계 (데이터 체계적 관리)

목적) 고품질 데이터의 확보와 관리, 기업에 제공하는 정보 활용 극대화, 기업의 다양한 가치 창출 기여 

2. 데이터거버넌스 프레임워크 및 주요요소

가. 데이터거버넌스 프레임워크

  • 데이터 거버넌스는 데이터를 문서화, 체계적인 관리와 정책 수립을 통해 데이터의 자산화에 필요한 기반을 제공

나. 데이터거버넌스 프레임워크 구성요소

구분 구성요소 설명
데이터 관리체계 원칙(Principle) 데이터를 유지 관리하기 위한 지침
절차(Process) 조직이 데이터를 관리하기 위해 수행하는 활동과 체계
조직(Organization) 데이터를 관리할 조직 체계
데이터 아키텍처 표준(Standards) 전사 데이터 참조 모델 및 상호 운용성 지원
프레임워크(Framework) 전사 데이터 해석, 이해의 기본 틀 제공
품질(Quality) 품질관리 기준에 다른 측정, 품질관리 활동
데이터 관리도구 메타 데이터 관리 도구 데이터 표준, 코드, 데이터베이스, 영향도 분석
품질 관리 도구 기준정보, 데이터 규칙, 업무흐름, 모니터링

3. 데이터거버넌스 주요기능

주요 기능 설명
데이터 품질 관리
(Data Quality Management)
데이터 프로파일링 및 데이터 정제 작업 관리
메타 데이터 관리
(Metadata Management)
데이터 검색, 빅데이터를 정확하게 해석, 데이터 활용의 기반 요소
데이터 주기 관리
(Data Lifecycle Management)
데이터 생성 및 초기 저장에서 부터 데이터가 폐기될 때까지 흐름을 관리
데이터 보안 및 프라이버시
(Data Security and privacy)
데이터 보호수준 정의 및  관리

- 기업의 데이터 거버넌스 체계 수립시 기본이 되는 데이터의 데이터(마스터 데이터) 체계적 관리의 중요성 부각

 

참조) https://itpewiki.tistory.com/m/171

[데이터베이스 목차]

 

개념 : 빅데이터 저장 기술

  • 기존의 관계형 데이터가 아닌 다양한 데이터 형태를 효율적으로 처리할 수 있는 구조와 유연성을 갖춘 분산 데이터베이스 관리 시스템
  • 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정 Table-Schema가 필요하지 않고, Join 연산을 사용할 수 없으며, 수평적으로 확장 가능한 DBMS 

NoSQL 특징 : 스키마가 없으며, 관계가 없음

구분 특징 내용
핵심특징
(BASE)
Basically Available  - 언제든지 데이터는 접근할 수 있어야 하는 속성
Soft-State -  특정 시점에서는 데이터의 일관성이 보장되지 않는 속성
Eventually Consistency - 일정 시간이 지나면 데이터의 일관성이 유지되는 속성
부가특 Schema-less - 고정된 데이터 스키마 없이 키(key) 값을 이용해 다양한 형태의 데이터 저장과 접근이 가능한 기능
유연한 모델링  - Key-Value 쌍, 계층형 데이터, 그래프 등 여러가지 타입의 데이터를 간단하게 모델링
탄력성(Elasticity) -  시스템의 일부 장애에도 불구하고 시스템의 다운타임이 없도록 부하 분산이 용이한 구조

NoSQL 아키텍처

데이터 모델 유형

데이터모델 개념도 설명 DB
키-값 모델
(Key-Value Model)
  • 키-값 쌍 데이터 표현
  • 단순구조 빠른연산
  • 비효율적 범위 질의
Dynamo
, Redis
순서화된 키-값 모델
(Ordered Key-
Value Model)
  • 순서화된 키-값 쌍 데이터 표현
  • 범위 질의 효율적 지원
  • 값 모델링 미지원
ArangoDB, MemcacheDB
열 지향 모델
(Column Oriented Model)
  • 값(value), 열(Column) 기반 모델링 표현
  • 값의 지속적 다차원 Map 구성
HBase,
Cassandra
문서 데이터베이스 모델
(Document
Database
Model)
  • 값(value) 부분에 문서 저장
  • 임의적 스키마 사용, 자유로운 속성 추가 가능
  • 복잡한 검색조건 데이터 추출
CouchDB
, 
MongoDB
그래프 모델
(Graph Model)
  • 노드, 관계, 속성 통한 데이터 표현
  • 높은 확장성 보장
  • 시맨틱 웹과 온톨로지 분야에서 활용 
Neo4J,
AgensGraph

CAP 이론에 기반한 NoSQL 선택전략

C+P
  • 일관성 + 단절내성
  • 모든 노드가 함께 퍼포먼스를 내야하는 성능형
  • 구글의 BigTable, HyperTable, HBase
A+P
  • 가용성 + 단절내성
  • 비동기화된 서비스 스토어 작업
  • Dynamo, Apache Cassandra, CouchDB, Orache Coherence

 

[데이터베이스 목차]

1. 신뢰성, 확장성을 제공하는 분산 DB의 개요

 가. 분산 DB(Distributed Database)의 정의

  - 논리적으로 하나의 가상 시스템으로 구현되어 있으나, 물리적으로 네트워크를 통하여 분산화 된 형태로 관리되는 데이터베이스

 나. 분산 DB(Distributed Database)의 목적

목  적 설  명
데이터 처리의 지역화  통신비용의 감소 및 데이터 처리 집중화 방지
데이터 운영 및 관리 지역화  데이터에 대한 이해도가 높은 집단이 관리
데이터 처리 부하의 분산 및 병렬 데이터 처리  데이터 처리 속도 향상
데이터의 가용도와 신뢰성 향상  데이터 복제

2. 분산 데이터베이스의 요건

투명성 설  명 특 징
위치 투명성 - 사용하려는 Data의 저장 장소 명시 불필요
- 위치정보가 System Catalog에 유지되어야함
- Application logic 간단, Data는 사이트간 이동 자유로움
- Data 이중처리 속도 저하, 저장 공간 낭비
중복 투명성 - 사용자는 DB 객체 및 정보가 중복 걱정 필요 없는 성질 - 질의 응답 성능 개선, Data 일관성 유지는 사용자와 무관하게 시스템 수행
- 갱신전파 Overhead, 추가 기억 공간 필요
병행 투명성 - 다수 트랜잭션 동시 수행시 결과의 일관성 유지 - Time Stamp, 분산 2단계 Locking 이용 구현
분할 투명성 - 하나의 논리적 릴레이션이 여러 단편 분할되어 각 단편의 사본이 여러 site 에 저장 - Workload 분산 통신망 혹은 공통 서비스 Bottle Neck 방지, 시스템 성능 향상 효과
- Fragmentation 위한 충분한 설계 기술 필요
장애 투명성 - 구성요소(DBMS, Computer)의 장애에 무관한 트랜잭션의 원자성, 시스템 유지 - 분산 DB는 중앙 집중방식보다 훨씬 복잡함
- 개별 지역 시스템의 손상, 통신망 실패, 분산 실행(2PC) => 각각 복구 방법 다름
지역사상 투명성 - 지역DBMS와 물리적 DB  사이의 Mapping 보장
- 각 지역 시스템 이름과 무관한 이름 사용 가능
- 기존 Local DB기반 상향식으로 점직적 확정 가능
- 이질 시스템간 구현 복잡

3. 분산 DB의 구조 및 설계 전략

 가. 분산 DB의 구조

구성요소 내     용
분산 DBMS  여러 지역에 나뉜 Local DBMS를 하나의 커다란 광역 DBMS 로 관리 할 수 있도록 지원
지역 DBMS  질의 처리기, 동시성 처리, 보안 처리기, 복구 관리기, 저장장치 관리기 등 5개의 Module로 구성, OLTP의 기본 성격이 ACID 를 지원

 나. 분산DB의 설계 및 분할 전략

4. 분산 DB의 구축 시 고려사항

고려 사항 내용
네트워크 속도 광대역 네트워크 구축, 분산 DB의 정보 신속 제공
보안기술 분산된 DB에 대한 전체 통제가 가능하도록 통합 보안 시스템을 구축
백업 및 복구 기술 광전송 백업 시스템 구축 및 복구 시스템 구축
클러스터링 기술 분산 컴퓨팅 성능 향상 , Web 기술과의 연동 고려

5. 분산 데이터 베이스의 3가지 설계 전략 비교

-끝-

 

[데이터베이스 목차]

 

 

샤딩(Sharding)

 

I. DB Scale out을 통한 성능 개선, 가용성 향상 샤딩의 개요

-. 물리적으로 다른 데이터베이스에 데이터를 수평 분할 방식으로 분산 저장하고 조회하는 방법

-. 샤드라고 부르는 각각의 파티션이 있는 하나의 데이터베이스의 수평적인 파티셔닝

-. 과거의 샤딩은 어플리케이션 레벨에서 구현하는 경우가 많았는데 최근에는 샤딩 플랫폼에서도 처리 가능

-. 성능향상을 위해 샤딩, 파티셔닝 기법이 사용되고, 가용성을 위해 리플리케이션, 쿼리 오프로딩 기법을 사용

 

-특징: 데이터분할, 성능개선, 높은 신뢰성, 위치 추상화

 

-샤딩의 장점:

  1) 성능개선: 큰 데이터를 압축, 개별 테이블은 각 샤드에서 더 빠른 작업을 지원

  2) 신뢰성 개선: 한 샤드가 실패하더라도 다른 샤드는 데이터서비스를 제공

  3) 위치 추상화: 어플리케이션 서버에서 어떤 데이터가 어떤 데이터베이스에 위치해 있는지 알 필요가 없음

 

 

II. 샤딩의 개념도 및 구성요소

가. 샤딩의 개념도

 

나. 샤딩의 구성요소

구분 요소 설명
시스템 구성요소 Shard DB 분할 데이터 저장, 사용자 요청 처리 물리 DB
Proxy Shard metadata 활용 실제 질의 처리를 Shard DB로 전달하는 역할을 하는 미들웨어 프로세스
데이터 구성요소 Shard metadata Shard 동작을 위한 설정정보, 요청된 질의 기반, Shard 선택을 위한 정보 및 세션 생성 정보 포함
Shard Key Sharding 된 테이블에서 Shard를 선택하기 위한 식별자로 사용되는 칼럼
Shard ID Shard Database 식별자

 

 

III. 샤딩 방법

방법 설명 특징
Vertical
Partitioning
  • 블별로 서를 분할하는 방식
  •  버 데터 거대화시 추가 샤딩 필요
구현 단, 시스템 구조 변경 최소화
Range Based Partitioning
  • 의 Feature  Table 대화 시 샤딩
터 분할방법 예측 가능시 구현 가능 
Key or Hash Based Partitioning
  • 티티를 해함수에 어 나오는 값 이용 서 정하는 방식
결과값이 균등분포 되게  함수 설계 필요
Directory Based Partitioning
  • 파티셔닝 커니 제공 추상화 서비스 생성
 드 키 Look-up 기능 구현

데이터의 성격과 특징에 따라 Table 단위를 작게 유지할 수 있는 Shard 분할 방법을 결정해야 하며 적용시 정지없이 데이터 재분배 수행 필요

 

IV. 쿼리 오프로딩 vs. 샤딩

구분 쿼리 오프로딩 샤딩
개념 업데이트 트랜잭션, 트랜잭션 분리 분리된 DB 인스턴스에 데이터 분할
목적 DB 성능 향상 용량 한계 극복
구성요소 Master, Salve, Staging DB 샤드(Shard)
분할기준 트랜잭션 종류 및 역할 샤드 키
도메인 도메인 동일 혹은 상이 도메인 동일
복제 솔루션 오라클 골든 게이트, 쉐어 플렉스 자체 샤드 오픈 솔루션 이용
구현방법 어플리케이션 활용 구현 DBMS 자체, 어플리케이션
분할원리 트랜잭션의 분할 DB의 분할

 

 

V. 샤딩 파티셔닝 비교

구분 샤딩 파티셔닝
개념 여러 인스턴스에 여러 서브셋을 저장하는 기법
물리적으로 다른 데이터베이스에 데이터를 수평 분할 방식으로 분산 저장하는 방법
하나의 인스턴스내에서 여러 테이블로 나누어 저장하는 기법
큰 테이블이나 인덱스를 관리하기 쉬운 크기로 분리하는 방법
장점 쿼리(read, write)를 여러 인스턴스로 분산하여 처리 -> 성능, 확장성 향상 데이터를 여러 테이블에 나누어 저장 -> 인덱스의 크기가 작아짐 -> 인덱스를 통한 조회 시간이 줄어들어 성능 향상 
이력 데이터의 효울적인 관리 (불필요한 데이터 삭제 작업을 파티션을 추가하거나 삭제하는 방식으로 간단하고 빠르게 해결 가능)
단점 다른 샤드끼리 join 할 수 없다
auto increment가 샤드 별로 달라질 수 있다
하나의 트랜잭션에서 두개 이상의 샤드에 접근할 수 없다
테이블 간 join 비용 증가
물리망 다수의 분산 DB 서버 하나의 DB 서버
제어 마스터(Proxy) Master 없음
Shared Key 저장 별도 키 없음

 

+ Recent posts