SooBlending

[빅데이터분석기사] 빅분기 필기 5일차 본문

Certificate/빅데이터분석기사

[빅데이터분석기사] 빅분기 필기 5일차

블랜더 2023. 3. 13. 22:25

( 2. 데이터 적재 및 저장 )

① 데이터 적재

1) 데이터 적재 도구

  : 수집한 데이터는 빅데이터 분석을 위한 저장 시스템에 적재해야 한다.

  : RDB, HDFS를 비롯한 분산파일시스템, NoSQL 저장 시스템에 데이터를 적재할 수 있다.

 

- 데이터 수집 도구를 이용한 데이터 적재

  o 플루언티드 (Fluentd)

  : 사용자의 로그를 다양한 형태로 입력 받아 JSON 포맷으로 변환한 뒤 다양한 형태로 출력한다.

  o 플럼 (Flume)

  : 많은 양의 로그 데이터를 효율적으로 수집, 취합 이동하기 위한 분산형 소프트웨어이다.

  : 로그 데이터 수집과 네트워크 트래픽 데이터, 소셜 미디어 데이터, 이메일 메시지 데이터 등 대량 이벤트 데이터 전송을 위해 사용한다.

  o 스크라이브 (Scribe)

  : 수많은 서버로부터 실시간으로 스트리밍되는 로그 데이터를 집약시키기 위한 서버

  : 클라이언트 사이드의 수정 없이 스케일링 가능하고 확장이 가능하다.

  o 로그스태시 (Logstash)

  : 다양한 소스에서 데이터를 수집하여 변환한 후 자주 사용하는 저장소

 

- NoSQL DBMS가 제공하는 도구를 이용한 데이터 적재

  : 수집한 데이터가 CSV 등의 텍스트 데이터라면 mongoimport와 같은 적재 도구를 사용하여 데이터 적재를 수행 가능

  : 로그 수집 도구를 쓰는 방식처럼 데이터 수집 주기 등을 환경설정하여 사용할 수는 없다.

 

- RDB DBMS의 데이터를 NoSQL DBMS에서 적재

  : 데이터 변형이 많이 필요하다면 데이터 적재를 위한 프로그램을 작성하여 적재할 수 있고, 큰 변화 없이 적재한다면 SQLtoNoSQLimporter, Mongify 등의 도구를 사용하여 적재할 수도 있다.

 

2) 데이터 적재 완료 테스트

- 데이터 적재 내용에 따라 체크리스트 작성

  : 정형 데이터의 경우 테이블의 개수와 속성의 개수, 데이터 타입의 일치 여부, 레코드 수 일치 여부 등

  : 비정형 데이터의 경우 원천 데이터의 테이블이 목적지 저장시스템에 맞게 생성 되었는지, 레코드 수가 일치 하는지 등

 

- 데이터 테스트 케이스를 개발

  : 원천 데이터 중에 특정 데이터에 대해 샘플링을 해서 목적지 저장시스템에서 조회하는 테스트 케이스를 개발

  : 적재한 대량 데이터의 타입, 특별히 한글 문자 등의 ASCII 코드가 아닌 문자들이 정상적으로 적재되는지 확인 필요

  : 문자열이 숫자로 이루어지면 문자열로 적재되었는지 또는 숫자인데 문자열로 적재되지는 않았는지 확인

 

- 체크리스트 검증 및 데이터 테스트 케이스 실행

  : 이전 단계에서 작성된 체크리스트와 테스트 케이스에 대해 검증

  : 검증 결과를 분석하여 데이터 적재 결과 보고서를 작성


② 데이터 저장

1) 빅데이터 저장시스템

  : 대용량 데이터 집합을 저장하고 관리하는 시스템으로 사용자에게 데이터 제공 신뢰성과 가용성을 보장하는 시스템

 

- 파일 시스템 저장방식

  : 빅데이터를 확장 가능한 분산 파일의 형태로 저장하는 방식의 대표적인 예는 HDFS, GFS 등이 있다.

  : 저사양 서버들을 활용하여 대용량, 분산, 데이터 집중형의 애플리케이션을 지원하며 사용자들에게 고성능 fault-tolerance 환경을 제공하도록 구현되어 있다.

 

- 데이터베이스 저장방식

  : NoSQL DB는 대용량 데이터 저장 측면에서 봤을 때, RDB보다 수평적 확장성, 데이터 복제, 간편한 API 제공, 일관성 보장 등의 장점이 있다.

 

2) 분산 파일 시스템

- 하둡 분산파일 시스템 (HDFS:Hadoop Distributed File System)

  : 대용량 파일을 클러스터에 여러 블록으로 분산하여 저장하며, 블록들은 마지막 블록을 제외하고 모두 크기가 동일하다

  : 마스터 하나와 여러 개의 슬레이브로 클러스터링 되어 구성

  : 마스터 노드는 네임노드라고 하며, 슬레이브를 관리하는 메타데이터와 모니터링 시스템을 운영한다.

  : 슬레이브 노드는 데이터노드라고 하며, 데이터 블록을 분산처리한다.

  : 데이터 손상을 방지하기 위해서 데이터 복제 기법을 사용한다.

* 하둡의 장점

  : 하둡의 DFS는 대용량의 비정형 데이터 저장 및 분석에도 효율적이다.

  : 클러스터 구성을 통해 멀티 노드로 부하를 분산시켜 처리한다.

  : 개별적인 서버에서 진행되는 병렬처리 결과를 하나로 묶어 시스템의 과부하나 병목 현상을 줄여준다.

  : 하둡은 장비를 증가시킬 수록 성능이 향상된다.

  : 오픈소스 하둡은 무료로 사용 가능하다.

 

- 구글 파일 시스템 (GFS:Google File System)

  : 마스터, 청크 서버, 클러이언트로 구성

  : 마스터는 GFS 전체의 상태를 관리하고 통제

  : 청크 서버는 물리적인 하드디스크의 실제 입출력을 처리

  : 클라이언트는 파일을 읽고 쓴느 동작을 요청하는 애플리케이션

  : 파일들은 일반적인 파일시스템에서의 클러스터들과 섹터들과 비슷하게 64MB로 고정된 크기의 청크들로 나누어 저장

  : 가격이 저렴한 서버에서도 사용되도록 설계되었기 때문에 HW 안정성이나 자료들의 유실에 대해서 고려하여 설계되었고 응답시간이 조금 길더라도 데이터의 높은 처리성능에 중점을 두었다.

 

3) NoSQL

- NoSQL의 개요

  : RDB보다 유연한 데이터의 저장 및 검색을 위한 매커니즘을 제공

  : 대규모 데이터 처리하기 위한 확장성, 가용성 및 높은 성능을 제공하며, 빅데이터 처리와 저장을 위한 플랫폼으로 활용

구분 장·단점 특성
RDBMS - 데이터 무결성과 정확성 보장
- 정규화된 테이블과 소규모 트랜잭션
- 확장성에 한계
- 클라우드 분산 환경에 부적합
- UPDATE, DELETE, JOIN 가능
- ACID 트랜잭션
- 고정 스키마
NoSQL - 데이터의 무결성과 정확성 X
- 웹 환경의 다양한 정보 검색, 저장 가능
- 수정, 삭제 사용 X (입력으로 대체)
- 강한 일관성은 불필요

- CAP 이론 : 기존 데이터 저장 구조의 한계

  o 일관성 (Consistency)

  : 분산 환경에서 모든 노드가 같은 시점에 같은 데이터를 보여줘야 한다.

  o 가용성 (Availability)

  : 일부 노드가 다운되어도 다른 노드에 영향을 주지 않아야 한다.

  o 지속성 (Partition Tolerance)

  : 데이터 전송 중에 일부 데이터를 손실하더라도 시스템은 정상 작동 해야한다.

 

- NoSQL의 기술적 특성

  : ACID 특성 중 일부만을 지원하는 대신 성능과 확장성을 높이는 특성을 강조

  o 無 스키마

  : 고정된 스키마 없이 키 값을 이용하여 다양한 형태의 데이터 저장 및 접근 가능

  : 데이터 저장 방식은 크게 열, 값, 문서, 그래프 등 네 가지를 기반으로 구분

  o 탄력성 (Elasticity)

  : 시스템 일부에 장애가 발생해도 클라이언트가 시스템에 접근 가능

  : 응용 시스템의 다운 타임이 없도록 하는 동시에 대용량 데이터의 생성 및 갱신

  : 질의에 대응할 수 있도록 시스템 규모와 성능 확장이 용이하며, 입출력의 부하를 분산하는데도 용이

  o 질의 (Query) 기능

  : 큰 규모로 구성된 시스템에서도 데이터의 특성에 맞게 효율적으로 데이터를 검색, 처리할 수 있는 질의어 제공

  o 캐싱 (Caching)

  : 대규모 질의에도 고성능 응답 속도를 제공할 수 있는 메모리 기반 캐싱 기술을 적용하는 것이 중요

  : 개발 및 운영에도 투명하고 일관되게 적용할 수 있는 구조

 

- NoSQL의 데이터 모델

  o 키-값(Key-Value) 데이터베이스

  : 단순한 데이터 모델에 기반을 두기 때문에 RDB보다 확장성이 뛰어나고 질의 응답시간이 빠르다.

  : Dynamo, Redis 등

  o 열기반(칼럼기반, Column-oriented) 데이터베이스

  : 데이터를 로우가 아닌 컬럼기반으로 저장하고 처리하는 데이터베이스

  : 컬럼과 로우는 확장성을 보장하기 위하여 여러 개의 노드로 분할되어 저장 관리

  : Bigtable, Cassandra, HBase, HyperTable 등

  o 문서기반(Document-oriented) 데이터베이스

  : 문서 형식의 정보를 저장, 검색, 관리하기 위한 데이터베이스

  : 키-값 DB보다 문서의 내부 구조에 기반을 둔 복잡한 형태의 데이터 저장을 지원하고 이에 따른 최적화가 가능

  : MongoDB, SimpleDB, CouchDB 등

 

4) 빅데이터 저장시스템 선정을 위한 분석

- 가능성 비교분석

  : 데이터 모델, 확장성, 트랜잭션 일관성, 질의 지원, 접근성

 

- 분석방식 및 환경

  : 빅데이터 저장 방식은 빅데이터를 파일 시스템 형식으로 저장하는 방식, NoSQL 방식, RDBMS 기반의 DW 방식이 있다.

 

- 분석대상 데이터 유형

  : Volume, Velocity, Variety, Veracity 등을 고려하여 빅데이터 저장 시스템을 선택

 

- 기존 시스템과의 연계

 

5) 데이터 발생 유형 및 특성

- 대용량 실시간 서비스 데이터 개요

  : 대용량의 특성과 무중단 서비스를 보장하는 저장 체계를 구축해야 한다.

 

- 대용량 실시간 서비스 데이터 저장

 

6) 안정성과 신뢰성 확보 및 접근성 제어계획 수립

- 빅데이터 저장시스템 안정성 및 신뢰성 확보

- 접근성 제어계획 수립

Comments