Ch1_03 데이터 수집 및 저장 계획 - 2
데이터 적재 및 저장
1. 데이터 적재
A. 데이터 적재 아키텍처 수립
i. 아키텍처 정의 : 요구사항을 구현하기 위한 기반 기술을 정의하는 과정
ii. 빅데이터 적재 아키텍처 수립
1. 빅데이터 적재 아키텍처 요구 정의
A. 장비 요구사항 정의
B. 소프트웨어 도입 요구사항 정의
C. 성능 요구사항 정의
D. 인터페이스 요구사항 정의
iii. 빅데이터 적재 하드웨어 아키텍처 정의
1. 서버 노드 아키텍처 정의
A. 네임 노드 구성 정의
B. 데이터 노드 구성 방안 정의
2. 데이터 아키텍처 정의
3. 네트워크 아키텍처 정의
A. 목표 시스템 네트워크 구성 정의
B. 개별 장비 네트워크 환경 정의
4. 빅데이터 적재 소프트웨어 아키텍처 정의
A. 기반 소프트웨어 정의
i. 하둡 도입 검토
ii. 인 메모리 데이터베이스 도입 검토
iii. 데이터 분석 플랫폼 적용 검토
iv. 데이터 시각화 적용 검토
B. 빅데이터 적재 소프트웨어 아키텍처 정의
B. 데이터 적재
i. 데이터 적재 특징
1. 데이터를 수집한 후에는 수집한 데이터를 빅데이터 시스템에 적재해야 함
2. 빅데이터 유형과 실시간 처리 여부에 따라 RDBMS, HDFS, NoSQL 저장 시스템에 데이터를 적재할 수 있음
ii. 데이터 적재 도구
1. 플루언티드 : 트레저 데이터에서 개발된 크로스 플랫폼 오픈 소스 데이터 수집 소프트웨어
2. 플럼 : 많은 양의 로그 데이터를 효율적으로 수집, 집계 및 이동하기 위해 이벤트와 에이전트를 활용하는 분산형 로그 수집 기술
3. 스크라이브 : 다수의 서버로부터 실시간으로 스트리밍 되는 로그 데이터를 수집하여 분산 시스템에 데이터를 저장하는 대용량 실시간 로그 수집 기술
4. 로그스태시 : 모든 로그 정보를 수집하여 하나의 저장소에 출력해주는 시스템
2. 데이터 저장
A. 빅데이터 저장기술 : 저장 공간, 빠른 처리 성능, 확장성, 신뢰성, 가용성 보장
B. 빅데이터 저장기술 분류
i. 분산 파일 시스템 : 컴퓨터 네트워크를 통해 공유하는 여러 호스트 컴퓨터의 파일에 접근할 수 있게 하는 파일 시스템
ii. 데이터베이스 클러스터 : 관계형 데이터베이스 관리 시스템으로 하나의 데이터베이스를 여러 개의 서버상에 구축하는 시스템
iii. NoSQL : 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산를 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS
iv. 병렬 DBMS : 다수의 마이크로 프로세서를 사용하여 여러 디스크에 대한 질의, 갱신, 입출력 등의 데이터베이스 처리를 동시에 수행하는 데이터베이스 시스템
v. 네트워크 구성 저장 시스템 : 서로 다른 종류의 데이터 저장 장치를 하나의 데이터 서버에 연결하여 전체적으로 통합하여 데이터를 저장, 관리
vi. 클라우드 파일 저장 시스템 : 클라우드 컴퓨팅 환경에서 가상화 기술을 활용한 분산 파일 시스템
C. 빅데이터 저장 기술
i. 구글 파일 시스템
1. 개념 : 대규모 클러스터 서비스 플랫폼의 기반이 되는 파일 시스템
A. 파일을 고정된 크기의 (64MB) 의 청크들로 나누며 각 청크와 여러 개의 복제본을 청크 서버에 분산하여 저장
2. 구성요소
A. 클라이언트 : 파일에 대한 읽기/쓰기 동작을 요청하는 애플리케이션
B. 마스터
C. 청크 서버 : 로컬 디스크에 청크를 저장
3. 구조 : 클라이언트가 HFS 마스터에게 파일을 요청하면, 마스터는 저장된 청크의 매핑 정보를 찾아서 해당 청크 서버에 전송을 요청하고, 해당 청크 서버는 클라이언트에게 청크 데이터를 전송
ii. 하둡 분산 파일 시스템
1. 개념 : 수십 테라바이트, 페타베이트 이상의 대용량 파일을 분산된 서버에 저장하고, 저장된 데이터를 빠르게 처리할 수 있게 하는 분산 파일 시스템
2. 특징
A. 저사양의 다수 서버 사용, 효율적
B. 블록 구조 파일 시스템, 파일을 특정 크기의 블록으로 나누어 분산된 서버에 저장
C. 64MB -> 128MB
3. 구성요소
A. 네임 노드 : HDFS상의 모든 메타데이터 관리, 마스터 역할
B. 보조네임 노드 : HDFS 상태 모니터링 보조
C. 데이터 노드 : 슬레이브 노드, 데이터 입출력 요청 처리
iii. 러스터
1. 개념 : 클러스터 파일 시스템에서 개발한 객체 기반의 클러스터 파일 시스템
2. 구성요소
A. 클라이언트 파일 시스템 : 리눅스 VFS에서 설치할 수 있는 파일 시스템
B. 메타데이터 서버 : 파일 시스템의 이름 공간과 파일에 대한 메타데이터 관리
C. 객체 저장 서버 : 파일 데이터를 저장하고, 클라이언트로부터의 객체 입출력 요청을 처리
D. 빅데이터 저장 기술 데이터베이스 클러스터 상세
i. 하나의 데이터베이스를 여러 개의 서버상에 분산하여 구축하는 것
ii. 특징
1. 데이터를 통합할 때 성능과 가용성의 향상을 위해 데이터베이스 파티셔닝 또는 클러스터링 이용
2. 단일 서버 파티셔닝과 다중 서버 파티셔닝으로 구분
iii. 구분
1. 공유 디스크 클러스터 : 데이터 파일은 논리적으로 데이터 파일을 공유하여 모든 데이터에 접근 가능하게 하는 방식
2. 무공유 클러스터 : 각 데이터베이스 인스턴스는 자신이 관리하는 데이터 파일을 자신의 로컬 디스크에 저장하며, 이 파일들은 노드 간에 공유하지 않음
iv. 데이터 베이스 클러스터 종류
1. ORACLE RAC : 공유 클러스터, 클러스터의 모든 노드에서 실행되며 데이터는 공유 스토리지에 저장, 고가용성의 확정
2. IBM DB2 ICE : 무공유 방식 클러스터링
3. SQL SERVER : 연합 데이터 베이스 형태, 여러 노드로 확장
4. MySQL : 비 공유형 메모리 기반 데이터베이스의 클러스터링 지원
E. 빅데이터 저장 기술 NoSQL
i. 데이터 저장에 고정된 테이블 스키마가 없고 조인연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS
ii. 특성
1. 관계형 모델을 사용하지 않는 데이터 저장소 또는 인터페이스, 확장성, 가용성, 높은 성능 제공
2. 스키마리스
3. 대부분 오픈소스, 구글 BigTable, 아파치 Hbase, 아마존 Simple DB, MS SSDS
iii. 특성 (BASE)
1. Basically Available : 언제든지 데이터는 접근할 수 있어야 하는 속성
2. Soft-State : 노드의 상태는 내부에 포함된 정보에 의해 결정되는 것이 아니라 외부에서 전송된 정보를 통해 결정되는 속성
3. Eventually Consistency : 일정 시간이 지나면 데이터의 일관성이 유지되는속성
iv. NoSQL의 유형
1. Key-Value Store : Unique한 Key 하나에 Value를 가지고 있는 형태
2. Column Family Data Store : Key 조합으로 된 여러 개의 필드를 갖는 DB
3. Document Store : Value의 데이터 타입이 Document라는 타입을 사용하는 DB
4. Graph Store : 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DB
v. CAP 이론 : 분산 컴퓨팅환경은 유효성, 일관성, 분산가능 3가지 특징을 가지고 있으며, 이 중 두가지만 만족할 수 있다는 이론
1. Consistency (일관성) : 모든 사용자에게 같은 시간에는 같은 데이터를 보여주어야 한다는 특성
2. Availability (유효성) : 모든 클라이언트가 읽기 및 쓰기가 가능해야 한다는 특성
3. Partition Tolerance (분산 가능) : 물리적 네트워크 분산 환경에서 시스템이 원활하게 동작해야 한다는 특성
vi. NoSQL 제품 종류
1. 구글 빅테이블 : 구글 클라드 플랫폼에서 저장소로 사용
2. HBase : HDFS를 기반으로 구현된 컬럼 기반의 분산 데이터베이스
3. 아마존 Simple DB : 아마존의 데이터 서비스 플랫폼으로, 웹 앱에서 사용하는 데이터의 실시간 처리를 지원
4. 마이크로소프트 SSDS : 고가용성 보장
F. 빅데이터 저장 고려사항
i. 빅데이터 저장 제품 검토
1. 절차
A. 요구사항 수집
B. 요구사항 분석
C. 요구사항 명세
D. 요구사항 검증
ii. 기존 시스템 기술 검토 절차 수립
iii. 데이터 저장의 안정성, 신뢰성 확보 방안 수립
1. 용량 산정
2. 데이터 파악
3. 시스템 구축 방안
iv. 유형별 데이터 저장방식 수립
v. 저장방식 결정
1. 빅데이터 저장시스템 선정을 위한 분석
A. 저장기술의 기능성
B. 분석 방식 및 환경
C. 분석 대상 데이터 유형
D. 기존 시스템과의 연계
2. 저장방식 결정
A. 저장기술의 기능성
B. 분석 방식 및 환경
C. 데이터 유형
D. 기존 시스템과 연계
E. 선정 검토 결과