일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바 채팅 프로그램
- ajax 동기식
- 간단한 채팅 프로그램
- TCP 채팅
- 동기식 비동기식
- dom sax 차이점
- Notepad++ 줄바꿈
- async false
- 자바스크립트 undefined
- 노트패드 줄바꿈
- TCP Socket
- xml 파싱 방법
- 원씽 내용
- 원씽 후기
- 책 원씽
- ajax 비동기식
- The OneThing
- 원씽 책
- 자바 채팅
- Notepad 줄바꿈
- 빅분기 독학
- 빅데이터분석기사 독학
- 빅분기
- async
- 빅데이터분석기사 필기
- 빅데이터분석기사
- dom sax 장단점
- 원씽 독후감
- 빅분기 필기
- 노트패드++ 줄바꿈
- Today
- Total
SooBlending
[빅데이터분석기사] 빅분기 필기 5일차 본문
( 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) 안정성과 신뢰성 확보 및 접근성 제어계획 수립
- 빅데이터 저장시스템 안정성 및 신뢰성 확보
- 접근성 제어계획 수립
'Certificate > 빅데이터분석기사' 카테고리의 다른 글
[빅데이터분석기사] 빅분기 필기 6일차 (0) | 2023.03.18 |
---|---|
[빅데이터분석기사] 빅분기 필기 4일차 (0) | 2023.03.12 |
[빅데이터분석기사] 빅분기 필기 3일차 (0) | 2023.03.07 |
[빅데이터분석기사] 빅분기 필기 2일차 (0) | 2023.03.05 |
[빅데이터분석기사] 빅분기 필기 1일차 (0) | 2023.03.04 |