티스토리 뷰
- 데이터 적재
- 데이터 저장
1. 데이터 적재
(1) 데이터 적재 아키텍처 수립
- 아키텍처 정의
- 요구사항을 구현하기 위한 기반 기술을 정의하는 과정
- 요구사항을 반영하여 하드웨어와 소프트웨어 아키텍처를 정의하는데, 이는 정보시스템 개발, 테스트, 이관을 위한 기술적 기반이 된다.
- 빅데이터 적재 아키텍처 수립
- 빅데이터 아키텍처 요구사항 정의
- 장비 요구사항 정의
- 서버 장비 규격 정의 : 주요 서버는 분산 처리를 위한 네임 노드, 데이터 노드, 데이터 분석을 위한 분석 서버, 원천 데이터 획득을 위한 수집 서버 등이 있음
- 네트워크 장비 규격 정의 : 용도에 따라 라우터, 스위치 등으로 구성.
- 스토리지 장비 규격 정의 : 용도에 따라 SAN, NAS등에 대한 도입 검토
- 소프트웨어 도입 요구 사항 정의
- 자체적으로 시스템을 구축하는 온프레미스의 경우 상용 소프트웨어와 오픈 소스 소프트웨어 도입을 모두 고려
- 성능 요구사항 정의
- 서버 : 최적의 용량 확보, 성능 관련 이슈 예방 방안 (CPU, 메모리, 디스크, 파일 시스템, 네트워크 I/O)
- 네트워크 : 네트워크에 연결된 장비와 호스트 간의 트래픽에 대한 예상치 (대역폭, 전송 속도, 처리 속도)
- DBMS : 데이터의 현황 데이터를 수집, 관리하고 경향을 분석한 용량 계획 반영 ( 데이터 모델링, 응용 프로그램/SQL , 파라미터 설정)
- 응용 시스템 : 사용자 업무 관점에서 목표했던 서비스 수준의 유지 여부 파악 및 개선 (응용 프로그램, 응용 플랫폼 WEB, WAS, EAI 등의 응답 속도)
- 인터페이스 요구사항 정의
- 장비 요구사항 정의
- 빅데이터 아키텍처 요구사항 정의
*SAN storage area network : 서버와 스토리지를 저장장치 전용 네트워크로 상호 구성하여 고가용성 , 고성능, 확장성을 보장하고 데이터를 블록 단위로 관리하는 기술
*NAS network attached storage : 저장장치와 서버를 직접 연결하는 것이 아니라 네트워크를 통해 스토리지에 접속하고 파일 단위로 관리하는 스토리지
*RAID redundant array of independent disks : 여러 개의 하드 디스크를 하나로 묶어 하나의 논리적 디스크로 작동하게 하고, 일부 중복된 데이터를 나눠서 신뢰성을 향상시키는 저장하는 기술.
*호스트 버스 어댑터 HBA host bus adapter : 호스트 컴퓨터의 버스와 광채널회로 사이에 위치해있는 입출력 어댑터. 두 채널 사이에서 정보 전달을 관리하는 역할을 한다.
*네트워크 인터페이스 컨트롤러 NIC network interface controller : 컴퓨터를 네트워크에 연결하여 통신하기 위해 사용하는 하드웨어 장치. 랜카드.
*온프레미스 On-premise : 서버, 소프트웨어 등 기업의 솔루션 등을 클라우드와 같이 원격 환경이 아닌 자체적으로 보유한 전산질에서 직접 설치해 운영하는 방식
- 빅데이터 적재 하드웨어 아키텍처 정의
- 서버 노드 아키텍처 정의 : 단일 네임노드와 다수의 데이터 노드로 구성되는 것이 보통이지만, 네임 노드가 단일장애 지점이 되므로, 보조 네임 노드를 구성하여 이중화로 구성할 수도 있다.
- 네임 노드 : 파일 시스템의 메타데이터(디렉터리 구조, access권한 등)를 관리하는 서버. 실제 작업 대상 데이터를 블록 단위로 나누어 데이터 노드에 분배하는 역할 수행
- 데이터 노드 : 실제 데이터 저장 및 처리가 수행되는 노드. 데이터 노드에 저장되는 정보(chunk)는 기본 3개 노드에 복제되어 저장되며, 필요에 따라 복제되는 노드 수를 늘릴 수 있음
- 서버 노드 아키텍처 정의 : 단일 네임노드와 다수의 데이터 노드로 구성되는 것이 보통이지만, 네임 노드가 단일장애 지점이 되므로, 보조 네임 노드를 구성하여 이중화로 구성할 수도 있다.
*단일 장애 지점 SPOF SINGLE POINT OF FAILURE 시스템 구성 요소 중에서, 장애로 인해 동작하지 않으면 전체 시스템이 중단되는 요소를 말한다.
- 데이터 아키텍처 정의데이터 아키텍처에서는 가장 핵심적인 요소로 처리하고자 하는 데이터의 유형과 성격을 검토한다.빅데이터 아키텍처 기술로는 분산파일시스템, 데이터베이스 클러스터, nosql, 병렬 dbms, 네트워크 구성 저장 시스템, 클라우드 파일 저장 시스템이 있다.
- 네트워크 아키텍처 정의
- 목표 시스템 네트워크 구성 정의 : 빅데이터 플랫폼의 전체 네트워크 구성 정의. 데이터 양, 시스템 용도에 따라 네트워크 대역폭을 고려
- 개별 장비 네트워크 환경 정의 : 네임 노드, 데이터 노드, 응용 시스템 서버 및 데이터베이스 서버 등 빅데이터 플랫폼을 구성하는 개별 장비에 대한 네트워크 환경 구성 정의. 각 서버는 1개 이상의 네트워크 인터페이스 카드 (NIC) 를 장착. 개별 NIC는 단일 포트 혹은 이중화 포트를 이용하여 가용성 확보
- 네트워크 아키텍처 정의
- 정형화된 데이터 항목 혹은 엄격한 트랜잭션을 요구하는 데이터를 처리하기 위해서는 관계형 데이터베이스가 적합하며, 멀티미디어 콘텐츠나 문서 정보같은 비구조적인 데이터를 처리하는 데에는 nosql 적용을 고려해야한다.
- 빅데이터 플랫폼에서는 기존 시스템에서 일반적으로 사용되는 RDB외에도 nosql, 분산 파일 시스템 등 다양한 데이터 기반 아키텍처를 구성한다.
- 빅데이터 적재 소프트웨어 아키텍처 정의
- 기반 소프트웨어 정의
- 하둡 도입 검토 : 빅데이터 플랫폼의 핵심인 분산 파일 시스템과 분산 병렬 처리를 하는 맵리듀스로 구성된 오픈 소스. 빅데이터 기반 프레임워크로 가장 널리 사용
- 인 메모리 데이터베이스 도입 검토 : 데이터를 저장하는 스토리지가 메인 메모리를 이용하는 방식의 데이터베이스 관리 시스템. 인 메모리 데이터베이스는 상대적으로 접근 속도가 높은 성능을 보이며, 검색 및 조회 알고리즘은 더 단순함.
- 데이터 분석 플랫폼 적용 검토 : 수치화된 정형 데이터를 활용한 전통적인 분석 방법에서 발전하여 대용량의 데이터로부터 패턴 인식, 텍스트 마이닝, 소셜 분석 등의 기법을 이용하여 표면적으로 드러나지 않는 데이터 간 관련성 분석 및 필요 정보 추출.
- 데이터 시각화 적용 검토 : 효과적인 정보 전달
- 기반 소프트웨어 정의
- 빅데이터 플랫폼에서는 데이터 수집, 적재, 저장, 처리, 분석, 활용에 따른 단계를 구분하고, 전체 시스템 관리를 위한 자원 관리, 모니터링 등 관리 업무와 시스템 이용자를 위한 사용자 인터페이스를 정의한다.
- 빅데이터 적재 소프트웨어 아키텍처 정의
- 수집 → 적재 및 저장 → 분석 → 활용
(2) 데이터 적재
- 데이터 적재 특징
- 빅데이터 분석에 필요한 데이터를 수집한 후에는 수집한 데이터를 빅데이터 시스템에 적재해야 한다.
- 적재할 빅데이터의 유형과 실시간 처리 여부에 따라 RDBMS, HDFS, NOSQL 저장 시스템에 데이터를 적재할 수 있다
- 여러 데이터 소스에서 데이터를 수집해 오기 위해, 데이터 소스를 처리하고, 분산된 여러 서버에서 데이터를 수집하는 데이터 수집 플랫폼과 저장 방법의 중요성이 점점 더 확대되고 있다.
- 데이터 적재 도구
- 플루언티드 fluented : 트레저 데이터(treasure data) 에서 개발된 크로스 플랫폼 오픈 소스 데이터 수집 소프트웨어, 주로 루비 프로그래밍 언어로 작성
- 플럼 flume : 많은 양의 로그 데이터를 효율적으로 수집, 집계 및 이동하기 위해 이벤트와 에이전트를 활용하는 분산형 로그 수집 기술
- 스크라이브 scribe : 다수의 서버로부터 실시간으로 스트리밍되는 로그 데이터를 수집하여 분산 시스템에 데이터를 저장하는 대용량 실시간 로그 수집 기술
- 로그스태시 logstash : 모든 로그 정보를 수집하여 하나의 저장소 DB에 출력해주는 시스템
*라우팅 : 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정
2. 데이터 저장
(1) 빅데이터 저장기술
빅데이터 저장 시스템은 대용량 데이터 집합을 저장하고 관리하는 시스템으로 대용량의 저장 공간, 빠른 처리 성능, 확장성, 신뢰성, 가용성 등을 보장해야 한다.
메타데이터를 별도의 전용 서버로 관리하는 '비대칭형 asymmetric 클러스터 파일 시스템'이 개발되고 있다. 이 시스템은 메타데이터에 접근하는 경로와 데이터에 접근하는 경로가 분리된 구조를 가진다.
(2) 빅데이터 저장기술 분류
- 빅데이터 저장기술 분류
- 분산 파일 시스템 : 컴퓨터 네트워크를 통해 공유하는 여러 호스트 컴퓨터의 파일에 접근할 수 있게하는 파일 시스템 (구글 파일 시스템, HDFS, 러스터)
- 데이터베이스 클러스터 : 관계형 데이터베이스 관리 시스템으로 하나의 데이터베이스를 여러 개의 서버상에 구축하는 시스템 (오라클 RAC, MSSQL, MYSQL,)
- NoSQL : 전동적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 불가능, 수평 확장 가능한 DBMS. ACID 요건을 완화하거나 제약하는 특징 (구글 빅테이블, HBase, 아마존simpleDB, 마이크로소프트 SSDS, cloudata, Cassandra)
- 병렬 DBMS : 다수의 마이크로프로세서를 사용해 여러 디스크에 대한 질의, 갱신, 입출력 등의 데이터베이스 처리를 동시에 수행하는 데이터베이스 시스템 (VoltDB, SAP HANA)
- 네트워크 구성 저장 시스템 : 서로 다른 종류의 데이터 저장 장치를 하나의 데이터 서버에 연결하여 전체적으로 통합하여 데이터를 저장, 관리 (SAN, NAS)
- 클라우드 파일 저장 시스템 : 클라우딩 컴퓨팅 환경에서 가상화 기술을 활용한 분산 파일 시스템 (Amazon A3, Openstack Swift)
*acid : 트랜잭션의 특징인 원자성, 일관성, 독립성, 내구성 durability
(3) 빅데이터 저장기술 - 분산 파일 시스템 상세
- 구글 파일 시스템 GFS
- 개념 : GFS는 구글의 대규모 클러스터 서비스 플랫폼의 기반이 되는 파일 시스템. 파일을 고정된 크기(64MB)의 청크들로 나누며 각 청크와 여러개의 복제본을 청크 서버에 분산 저장.
- GFS 구성 요소
- 클라이언트 : 파일에 대한 읽기/쓰기 동작을 요청하는 애플리케이션. POSIX 인터페이스를 지원하지 않으며, 파일 시스템 인터페이스와 유사한 자체 인터페이스 지원. 여러 클라이언트에서 원자적인 데이터 추가 연산을 지원하기 위한 인터페이스 지원
- 마스터 : 단일 마스터 구조로 파일 시스템의 이름 공간, 파일과 청크의 매핑 정보, 각 청크가 저장된 청크 서버들의 위치정보 등에 해당하는 모든 메타데이터를 메모리상에서 관리. 주기적으로 청크 서버의 하트비트 메시지를 이용해 청크를 재복제하거나 재분산하여 상태를 관리.
- 청크 서버 : 로컬 디스크에 청크를 저장. 클라이언트가 청크 입출력을 요청하면 청크 서버가 처리. 주기적으로 청크 서버의 상태를 하트비트 메시지로 마스터에게 전달.
- GFS 구조
- 클라이언트가 GFS 마스터에게 파일을 요청하면, 마스터는 저장된 청크의 매핑 정보를 찾아서 해당 청크 서버에 전송을 요청하고, 해당 청크 서버는 클라이언트에게 청크 데이터를 전송한다.
- 하둡 분산 파일 시스템
- 개념 : 수십 테라 또는 페타바이트 이상의 대용량 파일을 분산된 서버에 저장하고, 저장된 데이터를 빠르게 처리할 수 있게 하는 분산 파일 시스템이다.
- 특징 : 저사양의 다수의 서버를 이용해서 스토리지를 구성할 수 있어 기존의 대용량 파일 시스템 (NAS, DAS, SAN)에 비해 비용관점에서 효율적이다. HDFS는 블록 구조의 파일 시스템으로 파일을 특정 크기의 블록으로 나누어 분산 서버에 저장된다
- 구성 요소 : 하나의 네임노드, 하나 이상의 보조네임 노드, 다수의 데이터 노드로 구성됨. 네임노드는 GFS의 마스터, 데이터 노드는 청크서버와 유사함.
- 네임 노드 : HDFS 상의 모든 메타데이터를 관리하며 마스터/슬레이브 구조에서 마스터 역할 수행. 데이터 노드들로부터 하트비트를 받아 데이터 노드들의 상태를 체크하는데, 하트비트 메시지에 포함된 블록 정보를 가지고 블록의 상태 체크
- 보조네임 노드 : HDFS 상태 모니터링을 보조. 주기적으로 네임 노드의 파일 시스템 이미지를 스냅샷으로 생성
- 데이터 노드 : HDFS의 슬레이브 노드로, 데이터 입출력 요청을 처리. 데이터 유실 방지를 위해 블록을 3중으로 복제하여 저장
*노드 : 컴퓨터 과학에 쓰이는 기초적인 단위. 대형 네트워크에서는 장치나 데이터 지점을 의미한다.
- 러스터 lustre
- 개념 : 클러스터 파일 시스템에서 개발한 객체 기반의 클러스터 파일 시스템
- 구성 요소 : 고속 네트워크로 연결된 클라이언트 파일 시스템, 메타데이터 서버, 객체 저장 서버들로 구성된다. 계층화된 모듈 구조로 TCP/IP , 인피티밴드 같은 네트워크를 지원한다.
- 구성요소
- 클라이언트 파일 시스템 : 리눅스 VFS(Virtual File System)에서 설치할 수 있는 파일 시스템. 메타데이터 서버와 객체 저장 서버들과 통신하면서 클라이언트 응용에 파일 시스템 인터페이스를 제공
- 메타 데이터 서버 : 파일 시스템의 이름 공간과 파일에 대한 메타데이터를 관리
- 객체 저장 서버 : 파일 데이터를 저장하고, 클라이언트로부터의 객체 입출력 요청을 처리. 데이터는 세그먼트라는 작은 데이터 단위로 분할해서 복수의 디스크 장치에 분산시키는 기술인 '스트라이핑 방식'으로 분산, 저장.
(4) 빅데이터 저장기술 - 데이터베이스 클러스터 상세
- 데이터베이스 클러스터 개념
- 하나의 데이터베이스를 여러개의 서버상에 분산하여 구축하는것을 의미함.
- 데이터베이스 클러스터 특징
- 데이터 통합시 성능과 가용성의 향상을 위해 데이터베이스 파티셔닝 또는 클러스터링을 이용한다
- 데이터베이스 시스템을 구성하는 형태에 따라 단일 서버 파티셔닝과 다중 서버 파티셔닝으로 구분한다.
*데이터베이스 파티셔닝 : 데이터베이스를 여러 부분으로 분할하는 것을 의미하며, 각 분할된 요소는 파티션이라고 한다. 각 파티션은 여러 노드로 분할 배치되므로 여러 사용자가 각 노드에서 트랜잭션을 수행할 수 있다.
- 데이터베이스 클러스터 구분
- 공유 디스크 클러스터 : 데이터 파일은 논리적으로 데이터 파일을 공유하여 모든 데이터에 접근 가능하게 하는 방식. 데이터 공유를 위해 SAN같은 네트워크 장비가 있어야함. 모든 노드가 데이터를 수정할 수 있어, 동기화 작업을 위한 채널이 필요. 높은 수준의 고가용성을 제공하므로 클러스터 노드 중 하나만 살아있어도 서비스가 가능.
- 무공유 클러스터 : 무공유 클러스터에서 각 데이터베이스 인스턴스는 자신이 관리하는 데이터파일을 자신의 로컬 디스크에 저장하며, 이 파일들은 노드 간에 공유하지 않음. 노드 확장에 제한이 없지만, 각 노드에 장애가 발생할 경우를 대비해 별도의 FTA를 구성해야함.
*FTA Fault-Tolerance : 시스템에 고장이 발생하더라도 모든 기능 또는 기능 일부를 기존과 같이 유지하는 기술이다.
- 데이터베이스 클러스터 종류
- Oracle RAC
- 공유클러스터에 해당. 클러스터의 모든 노드에서 실행되고 데이터는 공유 스토리지에 저장. 고가용성과 확장 쉬움
- IBM DB2 ICE (Integrated Cluster Environment)
- DB2는 CPU, 메모리, 디스크를 파티션벼롤 독립적으로 운영하는 무공유 방식의 클러스터링 지원.
- 독립적으로 운영되므로 하나의 노드에 장애가 발생하면 복구할 수 있도록 공유 디스크 방식을 사용하여 가용성 보장
- SQL Server
- 연합 데이터베이스 형태로 여러 노드로 확장할 수 있는 기능 제공
- 가용성을 확보할 수 있도록 페일오버를 제공하지만, active-activerㅏ 아닌 active-standby 방법을 사용
- failover: 1차 시스템에 장애가 발생해 이용할 수 없을 경우 대체 시스템을 작동시키는 고가용성 기술
- active-active : 다중화 장비가 두 대 모두 활성화되어 동시에 서비스가 가능한 구조
- active-standby : 다중화 장비 두 대 중 한 대에서만 서비스를 실행하고, 장애 등으로 인한 중단 시 다른 장비에서 서비스를 실행하는 구조이다.
- MySQL
- 비공유형으로 메모리 기반 데이터베이스의 클러스터링 지원
- 관리, 데이터, MySQL 노드로 구성
- 데이터는 동기화 방식으로 복제되며, 이 작업을 위해 데이터 노드간에는 별도의 네트워크 구성
(5) 빅데이터 저장기술 - NoSQL
혼자 공부하며 시험에 나올 법한 내용들 위주로 정리한 개인 파일입니다.
'Data Analyst > 빅데이터 분석기사' 카테고리의 다른 글
[빅데이터 분석 기사 2단원] 1.2 분석 변수 처리 PDF 제공 (0) | 2024.08.15 |
---|---|
[빅데이터 분석기사 2단원] 1.1 데이터 정제 PDF 제공 (양 많음 주의) (0) | 2024.08.15 |
[빅데이터 분석기사 1단원] 3.1 데이터 수집 및 전환 PDF 제공 (0) | 2024.08.11 |
[빅데이터 분석기사 1단원] 2.1 분석 방안 수립 Pdf 제공 (0) | 2024.08.11 |
[빅데이터 분석기사 1단원] 1.2 빅데이터 기술 및 제도 PDF제공 (0) | 2024.08.11 |