AYSTORY

[필기] 데이터 적재 및 저장 본문

빅데이터분석기사

[필기] 데이터 적재 및 저장

bye0nzn 2026. 3. 8. 17:34

PART 01 · Chapter3 데이터 수집 및 저장 계획

 

적재
플루언티트(Fluentd)
NoSQL DBMS
저장시스템 선정
접근성 제어

01. 데이터 적재

  • 데이터 적재 도구
    • 수집한 데이터는 빅데이터 분석을 위한 저장 시스템에 적재해야 함.
    • 적재할 데이터 유형과 실시간 처리 여부에 따라 관계형 DB, HDFS를 비롯한 분산파일시스템, NoSQL 저장 시스템에 데이터 적재 가능
    • 데이터 수집 도구를 이용한 데이터 적재
      • 로그 수집을 해야 하는 각 서버에 Fluentd를 설치 → 서버에서 로그 수집 → 로그 저장소로 전송
      • Fluentd의 로그 수집 구조는 가장 간단 구조로 로그 수집 에이전트 역할만 수행하지만, 이에 더해 각 서버에서 Fluentd에서 수집한 로그를 다른 Fluentd로 보내서 최적으로 로그 저장소에 저장하도록 설정 가능
      • 데이터 수집 도구
        • 플루언티드(Fluentd)
          • 트레저 데이터에서 개발된 크로스 플랫폼 오픈 소스 데이터 수집 소프트웨어
          • 사용자의 로그 → 다양한 형태로 입력받아 JSON 포맷으로 변환 → 다양한 형태로 출력
        • 플럼(Flume)
          • 많은 양의 로그 데이터 → 효율적으로 수집, 취합, 이동하기 위한 분산형 소프트웨어
          • 로그 데이터 수집과 네트워크 트래픽 데이터, 소셜 미디어 데이터, 이메일 메시지 데이터 등 대량의 이벤트 데이터 전송을 위해 사용
        • 스크라이브(Scribe)
          • 수많은 서버로부터 실시간으로 스트리밍되는 로그 데이터 집약시키는 서버
          • 클라이언트 사이드의 수정 없이 스케일링 가능하고 확장 가능
        • 로그스태시(Logstash)
          • 다양한 소스에서 데이터 수집해 변환 → 자주 사용하는 저장소
    • NoSQL DBMS가 제공하는 도구를 이용한 데이터 적재
      • 수집한 데이터가 CSV 등의 텍스트 데이터일 경우, mongoimport와 같은 적재 도구 사용해 데이터 적재 수행 가능
      • 로그 수집 도구를 쓰는 방식처럼 데이터 수집 주기 등을 환경설정하여 사용할 수 X
    • 관계형 DBMS의 데이터를 NoSQL DBMS에서 적재
      • 기존의 운영 중이던 관계형 데이터베이스로부터 데이터 추출 → NoSQL DB로 적재 가능
      • 데이터 변형이 많이 필요하면, 데이터 적재를 위한 프로그램 작성 → 적재 가능
      • 큰 변화 없이 적재한다면 SQLtoNoSQLimporter, Mongify 등의 도구를 사용 → 적재 가능
  • 데이터 적재 완료 테스트
    • 데이터 적재 내용에 따라 체크리스트 작성
    • 데이터 테스트 케이스 개발
      • 데이터 테스트 케이스; 적재가 정상적으로 완료되었는지 확인하는 시험
    • 체크리스트 검증 및 데이터 테스트 케이스 실행
Q. 다음 SW 중 데이터 수집 목적으로 사용하기 어려운 것은?
1) 플럼
2) 스쿱
3) 플루언티드
4) HDFS → 분산 파일 시스템으로 데이터 저장 목적

 

Q. 빅데이터 관련 SW 중 성격이 다른 하나?
1) 플럼
2) 로그스태시(logstash)
3) 플루언티드
4) 하이브(Hive) → 하둡기반 저장소에 대한 질의처리를 담당하는 시스템 (나머지는 데이터 수집을 위한 SW)

 

02. 데이터 저장

  • 빅데이터 저장시스템
    • 대용량 데이터 집합을 저장하고 관리하는 시스템으로 사용자에게 데이터 제공 신뢰성과 가용성을 보장하는 시스템
    • 파일 시스템 저장방식
      • 예) Apache HDFS, 구글의 GFS 등
      • 저사양 서버들을 활용 → 대용량, 분산, 데이터 집중형의 애플리케이션 지원 → 사용자들에게 고성능 fault-tolerance 환경을 제공하도록 구현
    • 데이터베이스 저장방식
      • 전통적인 관계형 데이터베이스 시스템 이용
      •  NoSQL 데이터베이스 시스템 이용
        • 대용량 데이터 저장 측면에서, 관계형 데이터베이스보다 수평적 확장성, 데이터 복제, 간편한 API 제공, 일관성 보장 등의 장점
  • 분산 파일 시스템
    • 하둡 분산파일 시스템(HDFS)
      • 하둡; 아파치 진영에서 분산 환경 컴퓨팅을 목표로 시작한 프로젝트, 분산처리를 위한 파일 시스템
        • 대용량 파일 저장 기능 제공하는 분산파일 시스템과,
        • 저장된 데이터를 쉽고 빠르게 분석할 수 있는 컴퓨팅 플랫폼인 맵리듀스로 구성
      • 대용량 파일 → 클러스터에 여러 블록으로 분산하여 저장, 블록들은 마지막 블록을 제외하고 모두 크기 동일
      • Master 1개와 Slave 여러 개로 클러스터링되어 구성
        • Master Node; Name Node, 슬레이브 관리한느 메타데이터와 모니터링 시스템 운영
        • Slave Node; Data Node, 데이터 블록 분산처리
      • 데이터 손상 방지하기 위해 데이터 복제 기법 사용
    • 구글 파일 시스템(GFS; Google File System)
      • 엄청나게 많은 데이털르 보유해야하는 구글의 핵심 데이터 스토리지와 구글 검색 엔진을 위해 최적화된 분산 파일 시스템
      • Master, Chunk Server, 클라이언트로 구성
        • Master; GFS 전체 상태 관리, 통제
        • Chunk Server; 물리적 하드디스크의 실제 입출력 처리
        • 클라이언트; 파일 읽고 쓰는 동작 요청하는 application
      • 가격 저렴한 서버에도 사용되도록 설계 → 하드웨어 안정성이나 자료들의 유실에 대해 고려하여 설계되었고 응답시간이 조금 길더라도 데이터의 높은 처리성능에 중점을 둠.
  • NoSQL
    • 전통적 관계형 DB보다 유연한 데이터의 저장 및 검색을 위한 매커니즘 제공
    • 대규모 데이터 처리하기 위한 확장성, 가용성 및 높은 성능 제공
    • 빅데이터 처리, 저장 위한 플랫폼으로 활용
구분 장, 단점 특성
RDBMS - 데이터 무결성과 정확성 보장
- 정규화된 테이블과 소규모 트랜잭션이 있음.
- 확장성에 한계
- 클라우드 분산 환경에 부적합
- UPDATE, DELETE, JOIN 연산 가능
- ACID 트랜잭션이 있음.
- 고정 스키마 있음.
NoSQL - 데이터 무결성과 정확성 보장 X
- 웹 환경의 다양한 정보 검색, 저장 가능
- 수정, 삭제 사용 X
- 강한 일관성 불필요
  • (이어서)
    • CAP 이론: 기존 데이터 저장 구조의 한계
      • 어떤 시스템이든 분산 컴퓨팅 환경의 특징 동시 만족하기 어렵다.
        • 일관성: 분산환경에서 모든 노드가 같은 시점에 같은 데이터 보여줘야 함.
        • 가용성: 일부 노드가 다운되어도 다른 노드에 영향 주지 않아야 함.
        • 지속성: 데이터 전송 중에 일부 데이터 손실하더라도 시스템은 정상 동작해야 함.
구분 설명 적용 예
RDBMS 일관성(C) + 가용성(A) 트랜잭션 ACID 보장(금융 서비스)
NoSQL 일관성(C) / 가용성(A) 중 하나 포기하고,
지속성(P) 보장
C+P형: 대용량 분산 파일 시스템(성능 보장)
A+P형: 비동기식 서비스(아마존, 트위터 등)
  • (이어서) 
    • NoSQL 기술적 특성
      • 고전적 RDBMS의 주요 특성을 보장하는 ACID 특성 중 일부만을 지원하는 대신 성능과 확장성을 높이는 특성 강조
        • ACID; 원자성, 일관성, 고립성, 지속성
      • 無 스키마
        • 데이터를 모델링하는 고정된 데이터 스키마 없이 키 값을 이용 → 다양한 형태의 데이터 저장 및 접근 가능
        • 데이터 저장 방식은 크게 열, 값, 문서, 그래프 등의 네 가지 기반 구분
      • 탄력성
        • 시스템 일부에 장애가 발생해도 클라이언트가 시스템에 접근 가능
      • 질의 기능
        • 수십 대~수천 대 규모로 구성된 시스템에서도 데이터 특성에 맞게 효율적으로 데이터 검색, 처리할 수 있는 질의 언어, 관련 처리 기술, API 제공
      • 캐싱
        • 대규모 질의에도 고성능 응답 속도 제공할 수 있는 메모리 기반 캐싱 기술을 적용하는 것이 중요
    • NoSQL의 데이터 모델
      • 데이터 저장 방식에 따라 키-값 구조, 칼럼기반 구조, 문서기반 구조로 구분
      • 키-값 DB
        • 데이터를 키와 그에 해당하는 값의 쌍으로 저장하는 데이터 모델에 기반을 둠.
        • 단순한 데이터 모델 기반 → RDBMS보다 확장성이 뛰어나고 질의 응답 시간이 빠름.
        • 아마존의 DynamoDB가 효시 → Redis와 같은 In-memory 방식의 오픈소스 DB가 대표적
      • 열기반(칼럼기반) DB
        • 데이터를 low가 아닌 column 기반으로 저장하고 처리하는 DB
        • column과 low는 확장성 보장하기 위해 여러 개의 노드로 분할 저장
        • 구글의 Bigtable이 효시 → 파생된 Cassandra, HBase, HyperTable 등이 대표적 칼럼기반 DB
      • 문서기반 DB
        • 문서 형식의 정보를 저장, 검색, 관리하기 위한 DB
        • 키-값 DB보다, 문서 내부 구조에 기반을 둔 복잡한 형태의 데이터 저장을 지원하고 이에 따른 최적화가 가능하다는 장점
        • 대표적; MongoDB, SimpleDB, CouchDB

▲ NoSQL 분류

데이터 모델 설명 제품 예
키-값 저장 구조 - 가장 간단한 데이터 모델
- 범위 질의는 사용이 어려움. (DB 지원시 사용 가능)
- 응용 프로그램 모델링 복잡
- DynamoDB(아마존)
- Redis
열 기반 저장 구조 - 연관 데이터 위주로 읽는데 유리한 구조
- 하나의 레코드 변경하려면 여러 곳 수정해야 함.
- 동일 도메인의 열 값이 연속 → 압축 효율이 좋음. 범위 질의 유리
- Bigtable(구글)
- Cassandra(아파치)
- HBase
- HyperTable
문서 저장 구조 - 문서마다 다른 스키마
- 레코드 간 관계 설명 가능
- RDBMS와 개념적으로 비슷
- SimpleDB(아마존)
- CouchDB(아파치)
- MongoDB

 

▲ NoSQL DB 제품 및 특징

제품(개발사) 주요기능 및 특징
DynamoDB(아마존) - HW provisioning, 복제, 설정 패치, 사용하는 응용 프로그램에 따른 DB 자동 분할 기능 등 지원
- 기본 데이터 모델; 속성, 항목, 테이블로 구성
- 모든 데이터; SSD에 저장
Redis(Redis Labs) - 메모리 기반 <키,값> 저장 공간
- NoSQL이나 인메모리 솔루션으로 분류
- 다양한 데이터 구조 지원
- 메모리에 저장된 내용 지속시키기 위해 파일로 싱크 기능 제공
MongoDB(MongoDB) - 크로스 플랫폼 문서기반 DB로 방대한 양의 데이터에서 낮은 관리 비용과 사용 편의성 목표로 개발
- 저장 최소 단위는 문서, 각 문서는 RDBMS의 테이블과 비슷한 컬렉션이라는 곳에 수집
- Auto-Sharding을 이용한 분산 확장 가능
- 기존 DBMS의 범위 질의, 보조 인덱스, 정렬 등 연산과 맵리듀스 등 집계 연산 함께 지원
CouchDB(아파치) - 인터페이스가 자바스크립트로 구성된 문서 기반 DB로 DB는 독립된 document들의 컬렉션으로 정의
- MongoDB보다 제공 질의, 확장성, 버전 관리 등에서 성능 우수
- 문서 단위 ACID 속성 지원, 데이터가 여러 시점에서 접근할 때 발생 가능한 문제점을 다중 버전 동시 동작 제어 기능으로 해결
SimpleDB(아마존) - 아마존의 데이터 서비스 플랫폼, 웹애플리케이션에서 사용하는 데이터의 실시간 처리 지원
- Domain, Item, Attribute, Value로 구성되는 데이터 모델 사용
- Eventual Consistency 정책(트랜잭션 종료 후 데이터가 모든 노드에 즉시 반영 X, 초 단위로 지연 동기화)
Cassandra(아파치) - <키,값> 구조 복잡하게 확장한 컬럼 패밀리 구조의 DBMS, 페북 적용해 사용 중
- 토큰링 배경의 키 구간이 설정 → 서버(노드) 추가 및 제거만으로도 전체 저장 공간의 유연 확장, 축소 가능
- 다른 서버(노드)에 데이터 복제본 구성 → 특정 노드에 장애가 발생해도 서비스 가능
HBase(아파치) - Hadoop DB
- 데이터 모델; 열 집합 기반의 저장소로 구성. 행, 열 그룹, 열 이름, 타임스탬프 이용한 테이블 구조
- 하둡 파일 시스템 위에 설치. 읽기와 수정을 즉시 실행, 맵리듀스 연산은 일괄처리 방식 지원
Hypertable(Zvents Inc.) - C++ 언어로 개발. 열 그룹과 타임스탬프 개념 사용
- HQL이라는 SQL과 비슷한 명령어 제공 → RDBMS와 기능 유사
- C++ API 완벽 제공. Java로 개발된 HBase보다 성능 우수
Bigtable(구글) - 구글 클라우스 플랫폼에서 사용하는 칼럼기반 데이터 저장 구조
- 공유 디스크 방식 → 모든 노드가 데이터, 인덱스 파일 공유
- 하나의 low는 n개의 칼럼-집합을 가질 수 있음.

 

  • 빅데이터 저장 시스템 선정을 위한 분석
    • 분석방식 및 환경
      • 빅데이터 저장 방식; 파일 시스템 형식으로 저장 / NoSQL 저장시스템 사용 / RDBMS에 기반 둔 데이터 웨어하우스 방식
      • 필요로 하는 분석 및 검색결과 → 상시로 온라인 형식으로 필요한지 / 분석가를 통해 별도의 프로세스를 거쳐 제공받는지 등을 구분 → 저장 방식과 환경 선택
    • 분석대상 데이터 유형
      • 기업 내외부에서 발생하는 기업 데이터인가, IoT 환경에서 발생하는 데이터인가 혹은 기타 다양한 바이오 분야에서 취급되는 데이터인가에 따라서 빅데이터 저장시스템 선택
    • 기존 시스템과의 연계
      • 저장 대상 데이터 유형이 테이블로 정의가능한 형태이고 기존 RDBMS 기반 데이터 웨어하우스가 도입된 형태 → 기존 시스템 그대로 활용
      • 기존에 HDFS만을 활용해 빅데이터 저장시스템이 구축 → SQL-like 분석환경 구축하고자 할 때 → HBase 추가 도입 권장
      • 빅데이터 분석 애플리케이션이 키-값 쌍 처리 위주로 시스템이 구현되어 있다면 Redis 등 도입
      • IoT 데이터처럼 데이터가 지속적+실시간 발생 수집하는 시스템 환경 → key-value, DB나 확장성이 중요한 요소일 때 → Cassandra와 같이 확장성 보장된 칼럼 기반 DB 선정
    • 기능성 비교분석
구분 내용
데이터 모델  
확장성 - HBase, Cassandra, HyperTable과 같은 column-oriented DB가 확장성 뛰어남.
- Redis와 같은 인메모리 방식의 DB와 MongoDB, CouchDB와 같은 document DB는 약간 뒤처짐.
트랜잭션 일관성 - 데이터 수정, 삭제 등 작업이 빈번하게 일어나는 환경에선느 중요도가 높지만, 배치중심 하둡 기반 분석환경에서는 중요도가 그리 높지 않음.
- 트랜잭션의 일관성이 중요한 분야 → RDBMS 선택 (그렇지 않으면, NoSQL 선택)
질의 지원 - MongoDB; SQL과 유사한 문법에 기반 → 쉽게 학습 가능한 우수한 질의 인터페이스 지원
- CouchDB도 MongoDB에 비해 뒤처지지 않으며, 뷰 개념 이해하고 활용하면 간편
- key-value DB의 대표 격인 Redis도 풍부한 질의기능
- HBase나 HyperTable은 자체 질의지원 기능은 제공 X. Hive를 통해 SQL과 유사한 질의기능 사용 가능
접근성 - MongoDB 접근 드라이버 다양. 현존하는 주류 라이브러리용 드라이버 대부분 지원
- CouchDB는 웹통신 지원하는 프로그래밍 언어라면 다 사용이 가능
- Redis, HBase, HyperTable, Cassandra는 대부분 프로그래밍 언어에서 연결이 가능토록 언어 바인딩 지원

 

  • 데이터 발생 유형 및 특성
    • 대용량 실시간 서비스 데이터 개요
      • 일반적으로 실시간으로 처리해야 하는 데이터를 스트리밍 데이터로 통칭 → 대용량 특성과 무중단 서비스 보장하는 저장 체계 구축
      • 대표적; Spark, Storm 등. 배치 기반의 대용량 데이터 처리에 특화된 하둡 시스템보다 실시간 대용량 데이터 처리에 특화
      • IoT 데이터(센서, 네트워크 모니터링, 에너지 관리 분야, 통신 데이터, 웹 로그, 주식 데이터나 생산현장에서 발생하는 데이터 등이 해당)
    • 대용량 실시간 서비스 데이터 저장
      • Storm(대표적인 실시간 빅데이터 처리 시스템)을 사용 → 저장소가 벗어 외부 저장 시스템과의 연동이 필수적
      • 다양한 소스의 로그로부터 데이터가 발생하는 환경 → 스톰으로 데이터 전처리한 후, HDFS나 MongoDB, Cassandra, HBase와 같은 NoSQL을 저장소로 사용하거나, 데이터 정규화하여 일반 RDBMS를 저장소로 사용 가능
      • 스파크 → 외부 빅데이터 저장 시스템과의 연계 필수적
      • 실시간 서비스를 웹 페이지로 제공하는 것이 필요한 환경 → Redis와 같은 메인 메모리 저장 시스템을 저장소로 활용 가능
  • 안정성과 신뢰성 확보 및 접근성 제어계획 수립
    • 빅데이터 저장시스템 안정성 및 신뢰성 확보
    • 접근성 제어계획 수립
      • 저장 시스템의 사용자와 관리자 유형, 역할 및 기능을 정의하고 각각 해당하는 제어계획 수립
Q. 다음 NoSQL DB 중 데이터 저장 구조가 나머지와 다른 하나?
1) HBase
2) Cassandra
3) Bigtable
4) DynamoDB → 키-값 데이터 모델 사용 (나머지는 컬럼기반 데이터모델 사용)

 

'빅데이터분석기사' 카테고리의 다른 글

[필기] 분석 변수 처리  (0) 2026.03.14
[필기] 데이터 정제  (0) 2026.03.11
[필기] 데이터 수집 및 전환  (0) 2026.03.07
[필기] 분석 작업 계획  (0) 2026.03.07
[필기] 분석 방안 수립  (0) 2026.03.04