[빅데이터분석기사] Part1 - CH 03. 데이터 수집 및 저장 계획

조민수·2025년 8월 5일
0

빅데이터분석기사

목록 보기
4/13

Part 1. 빅데이터분석기획

Chapter 03. 데이터 수집 및 저장 계획


Section 01. 데이터 수집 및 전환

1. 데이터 수집

  • 기초 데이터 수집 수행 절차
    : 비즈니스 도메인 정보 수집 ▶ 분석기획서 기반 도메인 및 서비스 이해 ▶ 수집 Data 탐색 ▶ 기초 Data 수집

  • 데이터 수집 시스템 구축
    : 수집 데이터 유형 파악 ▶ 수집 기술 결정 ▶ 아키텍처 수립 ▶ Hardware 구축 ▶ 실행환경 구축

Hadoop
: 다수의 COM을 하나처럼 묶어 대용량 데이터 처리를 지원하는 OpenSource Framework

원천 데이터 정보

  • 데이터 수집 가능성 (수집 용이성, 데이터 발생 빈도 파악)
  • 데이터 보안 (개인정보 포함 여부, 지적 재산권 존재 여부)
  • 데이터 정확성 (항목과 품질의 적정 여부)
  • 수집 난이도
  • 수집 비용

내/외부 데이터 수집

  1. 내부
    • ERP, CRM 등 내부 시스템
    • 백본, 방화벽, 스위치 등 Network & Server
    • VOC, PRM 등의 마케팅 데이터
      => 실시간 수집 가능, 정형화된 수집 방식 가능
  2. 외부
    • SNS, M2M(센서, 장비 로그), LOD(경제/의료/교육 등의 공공 분야), 특정 기관 데이터
      => 수집 데이터 관리 정책 필요, 수집 데이터 변환 필요

데이터 수집 기술

  1. 정형 데이터

    • ETL : 데이터 추출 ▶ 변환 ▶ 적재 (Data WareHouse)
    • FTP : 네트워크 기반 파일 전송, TCP/IP 위에서 동작
    • Apache Sqoop
      : RDBMS 간 대량 데이터 효과적 전송
      : RDBMS의 데이터를 Hadoop File System으로 전송(HDFS, Hive, HBase)
      : RDBMS ↔ MapReduce (병렬처리, 고기능성)
      : 적재 과정 자동화, 병렬처리, Bulk Import 지원
  2. 비정형 데이터

    • 크롤링
    • RSS (XML 기반 정보 배포)
    • Open API
    • Chukwa(척와) : 분산 시스템으로부터 데이터 수집 → Hadoop 파일 시스템에 저장 / 실시간 분석
    • Kafka : 대용량 실시간 로그 처리 분산 스트리밍 플랫폼
  3. 반정형 데이터

    • Apache Flume
      : 대용량 로그 데이터 수집, 집계, 이동 → 신뢰성 있는 분산 서비스 제공
      : Streaming Data 흐름 기반
      : 대량 이벤트 데이터 전송 (Log, Network Traffic, SNS 등)
      : 높은 신뢰성, 확장성, 효율성
    • Scribe : 서버多에서 실시간 데이터 수집 → 분산 시스템 저장
    • Sencing : 네트워크를 통한 센서 데이터 수집
    • Streaming : TCP, UDP, Bluetooth, RFID

2. 데이터 유형 및 속성 파악

데이터 수집 세부 계획 작성

  1. 세부계획서 작성 (데이터 유형, 위치, 보관방식, 수집주기, 이관절차, 비용)
  2. 적절성 검증 / 세부 계획 반영
  3. 재수집 및 가공

데이터 유형에 따른 분류

  • 정형 : RDB, FILE
  • 반정형 : HTML, XML, JSON, RSS
    => Meta Data를 포함한 데이터를 말함
  • 비정형 : 동영상, Img, Text

데이터의 위치에 따른 분류

  • 내부 : 정형 기반, 수집 난이도 ↓, 분석 가치 ↓
  • 외부 : 비/반정형 기반, 수집 난이도 ↑, 분석 가치 ↑

데이터 확보 비용 산정 기준

: 데이터 크기, 수집 주기 / 기술 / 방식, 대상 데이터의 가치 고려

저장 방식에 따른 분류

  • File System : 일정 규칙 명명에 따른 파일 분류 및 위치 지정
  • 관계형 DB : 정형화된 테이블 구조
  • 분산처리 DB : 데이터 집합이 여러 물리적 위치에 분산 저장

3. 데이터 변환

종류

  1. 비정형 데이터 ▷ 정형 데이터(RDB)
  2. 수집한 데이터 ▷ HDFS(분산파일시스템)
  3. Data Warehouse : 주제별/시계열적 저장
  4. NoSQL (Key-Value)

DB 구조 설계 방식

  • HDFS에 변환 없이 직접 저장
  • Python, Ruby 등을 통한 데이터 변환 과정

DB 구조 설계 절차 4단계

  1. DBMS 구축 여부 결정 : 수집 데이터의 특성(정형/반정형/비정형)에 따라
  2. 저장 DB 결정 : 상용/비상용 DBMS
  3. DBMS 설치
  4. 테이블 구조 설계

비정형/반정형 데이터 변환

  • 전/후처리 前 구조적 형태로 데이터 변환 필요
    1. 데이터 속성 구조 파악
    2. 수집 절차에 대한 수행 코드 정의를 통한 데이터 추출
    3. 데이터 저장 프로그램 작성
    4. DB에 데이터 저장

융합 DB 설계

  • 데이터 유형과 의미 파악 → 목적별 융합 DB 설계
  • 수집/저장된 데이터 의미 파악 → 활용 가능한 융합 DB 재구성
  • 요구사항 분석 → 데이터 표준화 / 모델링 수행 : 표준 코드, 데이터 도메인 등 정의

    Data = Entity + Attribute : 개념적 설계(ERD) + 논리적 설계(관계형 스키마 작성)

  • 비/반정형 데이터 → 정형 DB : 데이터 분석 용이성 향상

4. 데이터 비식별화

  • 식별 가능한 개인정보를 정해진 규칙으로 대체/가공 → 개인이 식별할 수 없게
  • 개인정보 보호 ↔ 데이터 분석 간 균형 중요
    : Data 유효성 유지하면서, 개인 식별 가능성 제거

식별자와 속성자

  • 식별자 : 사물에 고유하게 부여된 값(고유하게 식별 가능, ex) 주민번호)
    => 원칙적 삭제, 필요 시 비식별화

  • 속성자 : 다른 정보와 결합 시, 개인 식별 가능(추가적인 정보, ex) 주소)
    => 원칙적 삭제, 필요 시 가명처리, 총계처리 등 수행

비식별조치 종류

  1. 가명처리 : 개인 식별이 가능한 데이터 자체를 대체하는 것
    => 휴리스틱 가명화, 암호화, 교환방법

  2. 총계처리 : 통계값 적용

  3. Data Reduction : 일부 및 전부 삭제

  4. Data 범주화

  5. Data Masking

    여러 방법을 복합적으로 사용하는게 원칙

프라이버시 보호 모델

  1. k-익명성
    : 특정인 추론 가능 여부, 일정 확률 수준 이상 비식별 필수
    : 동일값 레코드를 k개 이상

    취약점

    1. 동질성 공격 : 일부 정보가 모두 같은 값을 가져 공격 대상이 됨
    2. 배경지식에 의한 공격 : 주어진 정보 + 공격자의 외부 지식을 통해 민감 정보 접근
  2. l-다양성
    : 민감 정보에 대한 다양성 향상을 통한 추론 가능성 감소
    : 동질성 공격 및 배경지식에 의한 공격 방어
    : 각 레코드는 최소 l개 이상의 다양성 확보

    취약점

    1. 쏠림 공격 : 정보가 특정 값에 쏠려 l-다양성이 무력한 경우
    2. 유사성 공격 : 비식별 조치된 레코드 정보가 유사할 때, 민감 정보 노출 우려 발생
  3. t-근접성
    : 민감 정보의 분포를 낮춰 추론 가능성 감소
    : 쏠림 공격 및 유사성 공격 보완
    : 정보의 분포 조정을 통해 전체 데이터 분포 간 특정 정보 분포의 차이를 t 이하로


5. 데이터 품질 검증

  • 가치성, 정확성, 유용성있는 데이터 확보 및 신뢰성있는 데이터 유지 과정

정형 데이터 품질 기준

  1. 완전성

    • 개별 : 필수 항목의 누락 확인
    • 조건 : 기업의 경우 사업자등록번호가 매핑되어있는지 등
  2. 유일성

    • 단독 : 컬럼이 유일 값을 갖는지 (주민번호 등)
    • 조건 : 조건에 따른 유일 값 (강의명 - 교수 - 강의실)
  3. 일관성 : 기준코드, 참조무결성 등

  4. 유효성 : 범위, 날짜, 형식

  5. 정확성 : 선후관계, 계산/집계, 최신성, 업무 규칙

비정형 데이터 품질 기준

  1. 기능성 : 요구를 만족하는 기능의 제공 정도

  2. 신뢰성 : 오류 방지

  3. 사용성 : 이해가 쉽고 선호되는지

  4. 효율성 : 자원에 따라 요구하는 성능을 제공하는지

  5. 이식성 : 다양한 환경 및 상황에서의 품질

품질 진단

  • 절차
    : 품질 진단 계획 수립 ▶ 품질 기준 및 진단 대상 정의 ▶ 품질 측정(종합 품질 지수 산출) ▶ 측정 결과 분석 ▶ 데이터 품질 개선

정형 데이터 품질 진단 : 데이터 프로파일링

  • Meta Data 수집 및 분석, COL 속성 분석, 누락값 분석, 값 허용 범위 분석, 허용값 목록 분석, 문자열 패턴 등

비정형 데이터 품질 진단 : 품질 세부 기준 체크리스트

  • 기능성(정확성, 적절성, 상호운용성, 기능순응성)
  • 신뢰성(성숙성, 신뢰순응성)
  • 사용성(이해성, 친밀성, 사용순응성)
  • 효율성(시간효율성, 효율순응성)
  • 이식성(적응성, 공존성, 이식순응성)

품질 검증 수행

: 수집 데이터 품질보증체계 수립 ▶ 품질 점검 수행 (데이터 재수집) ▶ 품질 검증 평가서 작성


Section 02. 데이터 적재 및 저장

1. 데이터 적재

: 데이터 수집 ▶ 유형 및 실시간 처리 여부 파악
▶ 데이터 수집 도구(Fluentd, Flume, Scribe, Logstash, Sqoop 등) ▶ RDBMS, HDFS, NoSQL에 적재

데이터 수집 도구

  • Fluentd
    : 각 서버에 설치해 로그 수집 → 중앙 로그 저장소
    : 다양한 형태의 사용자로그를 JSON으로 수집 후 다양한 형태로 출력함, 가장 간단한 구조

  • Flume
    : 대량 로그 데이터를 효율적으로 수집 및 취합, 이동
    : 분산형 SW

  • Scribe
    : 실시간 스트리밍 로그 데이터 집약 서버

  • Log Stash
    : 다양한 소스에서 데이터 수집 및 변환, 접근이 잦음

NoSQL

  • mongoimport : 수집한 데이터(CSV 등의 text data)를 NoSQL타입으로 적재

RDBMS ▷ NoSQL

  • SQLtoNoSQLimporter
  • Mongify

데이터 적재 완료 테스트

  1. 정형/비정형/반정형에 따른 체크리스트 작성
    : Table, Attribute 수, Data Type 일치 여부, Record 수 일치 여부 등

  2. Data Test case를 통해 적재 정상 완료 검증 준비

  3. 체크리스트 검증 및 Test Case 실행


2. 데이터 저장

빅데이터 저장 시스템 : 신뢰성, 가용성을 보장하며 사용자에게 데이터 제공

  1. 파일시스템 방식
    : 대용량, 분산, 데이터 집중형 애플리케이션 => 고성능 & fault-tolerance 환경 제공
    : Apache HDFS, Google File System(GFS)

  2. DB 방식
    : RDBMS, NoSQL

HDFS : Hadoop Distributed File System

  • 대용량 파일을 클러스터에 여러 블록으로 분산 저장
  • 마지막 제외 모든 볼록은 64MB로 동일 크기
  • Master 1 (Name Node[Meta Data + Monitoring]) : Slave 多 (Data Node)
  • 데이터 손상 방지를 위해 데이터를 복제 저장
  • 대용량 비정형 데이터 저장/분석에 효과적
  • 개별 서버의 병렬 처리 결과를 통합 => 시스템 과부화 및 병목 현상 감소

MapReduce

  • 분산데이터 처리 기술

동작 과정
: Input → Splitting → Shuffling → Mapping → Reducing
: Map 함수 + Reduce 함수 = 입력 분할 및 함수 적용

GFS : Google File System

  • Master (상태 관리/통제) + Chunk Server (HDD 입출력 처리) + Client (File Read/Write 요청)
  • 높은 데이터 처리 성능

NoSQL 특징

  • 스키마 X
  • 탄력성 (일부 시스템 장애에도 접근 가능)
  • Query 기능 (mongodb)
  • Caching (Redis) : 메모리 기반 빠른 접근

NoSQL 분류

  1. Key-Value : DynamoDB, Redis
    : 실시간으로 발생하는 다양한 데이터 처리에 유리

  2. Column-Oriented : Bigtable, Cassandra, HBase, HyperTable
    : 연관 데이터에 유리, DB 확장성 높음
    : HBase = HDFS + SQL의 분석환경 구축

  3. Document : MongoDB, SimpleDB, CouchDB
    : 문서마다 스키마가 상이함

    CAP 이론

    : 분산 컴퓨팅 환경에서 일관성, 가용성, 지속성을 동시에 만족할 수 없음

    1. 일관성 Consistency
      : 모든 노드가 동일 시점에 동일 데이터 접근
    2. 가용성 Availability
      : 일부 노드의 다운이 다른 노드에 영향을 미치지 않음
    3. 지속성 Partition Tolerance
      : 데이터 전송 중 일부 손실에도 시스템이 정상 작동함

빅데이터 저장 시스템 선정

기능성 비교 분석

  1. 데이터 모델 관점
    1-1. 데이터를 테이블로 저장 : RDBMS
    1-2. 유연한 스키마 활용/문서중심 : MongoDB
    1-3. 웹 기반 시스템 : Apache CouchDB
    1-4. Key-Value, 대규모 사용자 & 부하 분산 : DynamoDB, Redis
    1-5. 극단적 확장성 : Cassandra, HBase, HyperTable

  2. 확장성 관점
    2-1. 높음 : Column-Oriented(HBase, Cassandra)
    2-2. 낮음 : In-Memory(Redis), Document(MongoDB, CouchDB)

  3. 트랜잭션 일관성
    : RDBMS 만한게 없다.

  4. Query 지원
    : MongoDB, CouchDB, Redis + RDBMS

  5. 접근성
    : MongoDB, CouchDB, Redis, Cassandra

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

  • Spark, Storm : Hadoop보다 실시간 대용량 처리에 특화됨
    : 별도의 저장소 없어 외부 저장 시스템과 연동이 강제됨

  • 실시간 서비스를 웹으로 제공한다면?
    : Redis

profile
Being a Modern Software Engineer

0개의 댓글