빅데이터분석기사 시험 노트개념 정리18 MIN
데이터 수집·변환과 적재·저장
확보 계획에 오른 데이터를 실제로 받아 와 다듬고 쌓는 단계입니다. ETL·크롤링·오픈 API와 Flume·Sqoop·Kafka·CDC, 변환 기술 다섯, 품질 검증 기준, 메타데이터와 카탈로그, DW·DM·데이터 레이크, 분산 파일 시스템 적재를 봅니다.
앞 노트에서 무엇을 어디서 얻을지 계획을 세웠습니다. 이제 그 계획대로 데이터를 실제로 받아 오고, 분석에 맞는 꼴로 바꾸고, 쌓아 둘 곳에 넣을 차례입니다. 이 단원은 도구와 저장소의 이름이 한꺼번에 쏟아져 외울 것이 많아 보이지만, 문항은 거의 「이 상황에 어느 도구인가」와 「이 둘은 무엇이 다른가」로 나옵니다. 그래서 도구마다 무엇과 무엇 사이를 잇는지를 한 줄로 잡아 두는 것이 요령입니다.
수집 방식
ETL
ETL은 원천에서 데이터를 뽑아(Extract) 분석에 맞게 바꾸고(Transform) 목적지에 싣는(Load) 세 단계 과정입니다. 여러 업무 시스템의 데이터를 모아 데이터 웨어하우스에 넣는 전형적인 방법이고, 정해진 시각에 한꺼번에 처리하는 배치 방식이 기본입니다.
순서를 바꿔 먼저 싣고 나중에 바꾸는 방식을 ELT라 부릅니다. 원본을 그대로 쌓아 두는 저장소에서는 무엇을 분석할지 미리 정하기 어려우므로, 일단 다 실어 두고 필요할 때 목적지의 계산 자원으로 변환합니다. 아래에서 볼 데이터 레이크가 이 방식과 짝을 이룹니다.
크롤링과 오픈 API
웹에서 데이터를 가져오는 길은 둘입니다. 크롤링은 웹 페이지를 차례로 방문하며 내용을 긁어 오는 방식이고, 페이지에서 원하는 부분만 골라내는 일을 따로 스크래핑이라 부릅니다. 화면에 보이는 것은 무엇이든 가져올 수 있지만 페이지 구조가 바뀌면 수집 프로그램이 깨지고, 사이트 약관과 서버 부하를 따져야 합니다.
오픈 API는 데이터를 가진 쪽이 정해 둔 호출 규칙으로 데이터를 요청하는 방식입니다. 보통 인증 키를 받아 요청을 보내면 JSON이나 XML 같은 반정형 데이터로 답이 옵니다. 구조가 약속되어 있어 안정적이지만 제공자가 열어 둔 항목만 받을 수 있고 호출 횟수에 제한이 붙습니다. 이 밖에 FTP로 파일을 통째로 받거나, RSS로 새 글 목록을 구독하는 방식도 수집 기술로 함께 나옵니다.
수집 도구
Flume과 Sqoop
하둡 생태계에서 데이터를 들여오는 도구는 무엇을 들여오느냐로 갈립니다.
| 도구 | 무엇을 | 어디로 |
|---|---|---|
| Flume | 여러 서버에서 끊임없이 생기는 로그 | HDFS 등 저장소로 흘려보낸다 |
| Sqoop | 관계형 데이터베이스의 테이블 | HDFS와 RDBMS 사이를 양방향으로 옮긴다 |
Flume은 소스(받는 곳)·채널(잠시 담는 곳)·싱크(내보내는 곳) 세 부품으로 된 에이전트가 로그를 실시간으로 실어 나르는 구조입니다. Sqoop은 이름부터 SQL과 하둡을 잇는다는 뜻이고, 테이블을 통째로 또는 조건을 걸어 일괄로 옮깁니다. 「비정형 로그 수집」이면 Flume, 「RDBMS 데이터를 HDFS로」면 Sqoop입니다. 로그 수집기로는 Scribe와 Chukwa가 함께 보기에 오르기도 합니다.
Kafka와 CDC
Kafka는 데이터를 만드는 쪽과 쓰는 쪽 사이에 끼는 분산 메시징 시스템입니다. 생산자(producer)가 메시지를 토픽에 발행하면 소비자(consumer)가 그 토픽을 구독해 가져가는 발행-구독 모델을 씁니다. 메시지를 디스크에 일정 기간 보관하므로 소비자가 잠시 멈췄다가 돌아와도 놓친 것을 다시 읽을 수 있고, 여러 시스템이 같은 흐름을 각자 받아 갈 수 있습니다. 대량의 실시간 흐름을 안정적으로 중계하는 자리가 Kafka의 자리입니다.
CDC(Change Data Capture)는 원천 데이터베이스에서 바뀐 부분만 잡아내 목적지에 반영하는 기법입니다. 매일 밤 테이블 전체를 다시 복사하는 대신 삽입·수정·삭제된 행만 옮기므로 원천 시스템에 주는 부담이 작고 목적지가 원천을 거의 실시간으로 따라갑니다. 변경을 잡는 방법은 데이터베이스의 트랜잭션 로그를 읽는 방식이 대표적이며, 잡아낸 변경을 Kafka에 실어 여러 곳으로 퍼뜨리는 구성이 흔합니다.
데이터 변환
변환 기술 다섯
받아 온 데이터를 분석에 맞게 바꾸는 기술은 다섯으로 정리됩니다.
| 기술 | 하는 일 | 예 |
|---|---|---|
| 평활화 | 잡음을 줄여 데이터를 매끄럽게 만든다 | 구간화, 이동평균 |
| 집계 | 여러 값을 요약해 하나로 만든다 | 일별 매출을 월별 합계로 |
| 일반화 | 값을 더 높은 수준의 개념으로 올린다 | 시·군·구를 시·도로 |
| 정규화 | 값을 정해진 범위나 척도로 맞춘다 | 0~1로 바꾸기 |
| 속성 생성 | 기존 속성으로 새 속성을 만든다 | 키와 몸무게로 BMI |
집계와 일반화가 자주 섞입니다. 집계는 여러 행을 합쳐 개수가 줄어드는 것이고, 일반화는 한 값의 개념 수준이 올라가는 것입니다. 「서울시 마포구」를 「서울」로 바꾸는 것은 행 수가 그대로이므로 일반화입니다.
정규화 셋
정규화는 계산 문항이 나오는 자리입니다. 최소-최대 정규화는 값에서 최솟값을 빼고 범위로 나눠 0과 1 사이로 옮깁니다.
체류 시간이 20·35·50·80초라면 35초는 가 됩니다. Z-점수 정규화는 평균을 빼고 표준편차로 나눠 평균 0, 표준편차 1인 척도로 옮깁니다. 평균 70, 표준편차 10인 시험에서 85점은 입니다. 소수 스케일링은 값을 10의 거듭제곱으로 나눠 절댓값이 1보다 작게 만드는 방식으로, 가장 큰 절댓값이 980이면 1,000으로 나눠 0.98로 만듭니다.
import pandas as pd
s = pd.Series([20, 35, 50, 80])
minmax = (s - s.min()) / (s.max() - s.min())
print(minmax.tolist()) # [0.0, 0.25, 0.5, 1.0]
최소-최대 정규화는 이상값 하나가 범위를 크게 늘리면 나머지 값이 한쪽에 몰린다는 약점이 있습니다. 이상값이 있으면 Z-점수 쪽이 덜 흔들립니다.
품질 검증
검증 기준
받아 온 데이터를 쌓기 전에 품질을 검증합니다. 정형 데이터는 다음 다섯 기준으로 봅니다.
| 기준 | 묻는 것 |
|---|---|
| 완전성 | 있어야 할 값이 빠지지 않았는가 |
| 유일성 | 같은 개체가 중복으로 들어가지 않았는가 |
| 유효성 | 값이 정해진 형식과 범위를 지키는가 |
| 일관성 | 같은 데이터가 시스템마다 같은 값인가 |
| 정확성 | 값이 실제 세계의 사실과 맞는가 |
유효성과 정확성을 가르는 예가 단골입니다. 생년월일 칸에 「1990-13-45」가 있으면 형식부터 틀렸으니 유효성 위반이고, 「1990-05-01」이 형식은 맞는데 실제 생일이 6월이면 정확성 위반입니다. 비정형 데이터는 값 하나하나를 이렇게 따질 수 없어서 기능성·신뢰성·사용성·효율성·이식성처럼 데이터를 담은 콘텐츠와 그것을 다루는 소프트웨어의 품질 특성으로 봅니다.
메타데이터와 카탈로그
검증하려면 「원래 어떠해야 하는가」를 적은 기준이 있어야 하는데, 그것이 메타데이터입니다. 메타데이터는 데이터에 관한 데이터로, 컬럼 이름·자료형·허용 범위 같은 구조 정보, 출처·수집 일시·변환 이력 같은 관리 정보, 그 데이터가 업무에서 무엇을 뜻하는지 적은 업무 정보가 여기에 듭니다. 메타데이터를 모아 사람이 찾아볼 수 있게 정리한 목록이 데이터 카탈로그입니다. 데이터가 어디에 있고 무슨 뜻이며 누가 관리하는지를 검색할 수 있게 해, 같은 데이터를 부서마다 다시 수집하는 낭비를 막습니다. 데이터 레이크처럼 원본을 쌓아 두기만 하는 저장소는 카탈로그가 없으면 무엇이 들었는지 아무도 모르는 늪이 되기 쉽습니다.
적재와 저장
DW와 DM
데이터 웨어하우스(DW)는 의사결정을 돕기 위해 여러 업무 시스템의 데이터를 통합해 모아 둔 저장소입니다. 특징 넷이 자주 나옵니다.
- 주제 지향성 — 업무 처리 단위가 아니라 고객·상품 같은 분석 주제로 묶는다
- 통합성 — 시스템마다 다른 코드와 형식을 하나로 맞춘다
- 시계열성 — 과거부터 현재까지의 이력을 쌓는다
- 비휘발성 — 한 번 적재한 데이터는 수정·삭제하지 않고 읽기 위주로 쓴다
데이터 마트(DM)는 DW에서 특정 부서나 주제에 필요한 부분만 떼어 낸 작은 저장소입니다. 마케팅 마트, 재무 마트처럼 부서 단위로 둡니다.
데이터 레이크
데이터 레이크는 정형·반정형·비정형 데이터를 가공하지 않은 원래 형태 그대로 모아 두는 저장소입니다. DW와 가르는 기준이 스키마를 언제 정하느냐입니다.
| 데이터 웨어하우스 | 데이터 레이크 | |
|---|---|---|
| 담는 것 | 정제된 정형 데이터 | 원형 그대로의 모든 형태 |
| 스키마 | 저장할 때 정한다(schema-on-write) | 읽을 때 정한다(schema-on-read) |
| 처리 방식 | ETL | ELT |
| 주 사용자 | 현업 분석, 리포트 | 데이터 과학자, 탐색 분석 |
분산 파일 시스템 적재
대용량 원본을 쌓는 곳은 주로 분산 파일 시스템입니다. 3번 노트에서 본 HDFS는 파일을 큰 블록으로 나눠 여러 데이터 노드에 흩어 저장하고, 블록마다 복제본을 여럿 두어 노드 하나가 고장 나도 데이터를 잃지 않습니다. 어느 블록이 어디 있는지는 네임노드가 기억합니다. 적재는 하루치를 모아 한꺼번에 싣는 배치 적재와 Flume·Kafka로 흘러오는 것을 바로 싣는 실시간 적재로 나뉘고, 정형 데이터를 빠르게 조회해야 하면 HDFS 대신 NoSQL 데이터베이스에 싣기도 합니다. 출제는 「작은 파일을 아주 많이 쌓는 데 HDFS가 유리하다」 같은 보기를 오답으로 세우는 식인데, 파일마다 네임노드 메모리를 차지하므로 작은 파일이 많을수록 불리합니다.
연습 문제
관계형 데이터베이스의 테이블을 HDFS로 일괄 이관하는 데 가장 알맞은 도구는?
① Flume
② Sqoop
③ Kafka
④ Scribe②. Sqoop은 RDBMS와 HDFS 사이를 양방향으로 옮깁니다. Flume과 Scribe는 로그 수집, Kafka는 발행-구독 메시징입니다.원천 데이터베이스에서 삽입·수정·삭제된 행만 잡아 목적지에 반영하는 기법은?
① ETL
② 크롤링
③ CDC
④ RSS③. CDC는 변경분만 옮겨 원천 부담을 줄이고 목적지가 원천을 거의 실시간으로 따라가게 합니다.주소의 「경기도 성남시 분당구」를 「경기도」로 바꾸는 변환 기술은?
① 평활화
② 집계
③ 일반화
④ 속성 생성③. 행 수는 그대로이고 값의 개념 수준만 올라가므로 일반화입니다. 여러 행을 요약해 하나로 만들면 집계입니다.어떤 변수의 최솟값이 40, 최댓값이 90일 때 값 60을 최소-최대 정규화한 결과는?
① 0.2
② 0.4
③ 0.6
④ 0.67②. 입니다. ③은 60을 100으로, ④는 60을 최댓값 90으로 나눈 값이라 최솟값을 빼는 단계가 빠졌습니다.가장 큰 절댓값이 4,200인 변수에 소수 스케일링을 적용할 때 값 -4,200은 얼마가 되는가?
① -0.042
② -0.42
③ -4.2
④ -0.0042②. 절댓값이 1보다 작아지는 가장 작은 10의 거듭제곱은 10,000이므로 입니다.고객 테이블의 가입일 칸에 「2025-02-30」이 들어 있다. 위반한 품질 기준은?
① 유일성
② 유효성
③ 일관성
④ 완전성②. 2월 30일은 존재하지 않는 날짜라 값이 허용 범위를 벗어났습니다. 형식과 범위는 맞는데 사실과 다르면 정확성 위반입니다.데이터 레이크에 대한 설명으로 옳은 것은?
① 정제된 정형 데이터만 담는다
② 저장할 때 스키마를 정한다
③ 원형 그대로 저장하고 읽을 때 스키마를 정한다
④ 한 번 적재한 데이터를 부서별로 떼어 낸 저장소다③. ①과 ②는 데이터 웨어하우스의 특징이고 ④는 데이터 마트입니다.
이 단원은 도구 이름을 짝으로 기억하면 거의 풀립니다 — 로그는 Flume, 테이블은 Sqoop, 실시간 중계는 Kafka, 변경분은 CDC. 변환 다섯은 집계와 일반화의 차이를, 정규화는 세 공식을, 품질 기준은 유효성과 정확성의 차이를, 저장소는 스키마를 언제 정하느냐를 잡아 두면 됩니다.

