회피기1: Sampling
- 전체 데이터가 많다면, 일부씩 하면 된다.
- 앞의 실습에서 본 것처럼 개발할 때만 샘플링 하는 방법도 있고, 데이터가 넉넉하다면 일부 데이터의 분석으로 충분할 수도 있다
Random sampling
- 가장 쉽고 단순한 방법이지만, 여러가지 문제가 있다
- 표본이 우연히 편향될 수도 있고 매번 결과가 달라진다.
Stratified sampling
- 특정 집단으로의 편향을 줄이기 위한 층화추출입니다
- ML하시는 분이라면, 특히 분류Classification 문제를 풀어보신 분께는 익숙하실 겁니다
- 하지만 여전히 매번 결과가 달라진다는 문제가 있습니다
Systematic sampling
- 추천!! 1,3,5,7을 한 클래스로 만드는 것
- ID와 같이, 패턴이 없거나 순서의 영향을 받지 않는 칼럼을 기준으로 합니다
- ID는 가입 순서이기 때문에 초기 가입 유저와 최근 가입 유저의 성질이 다를 수 있지만,
- systematic sampling에 영향을 미칠만한 차이는 보통 없다
- 그럼에도 불구하고 패턴이 있는지 검사해보는 것이 좋다
- 건너뛰는 단위는 소수를 사용하는 것이 특정 패턴을 피하기에 좋다
- 예를 들어 짝수를 사용할 경우, 짝/홀에 대한 패턴이 잡힐 수 있다
회피기2: 분할 처리
- 샘플링과 궁합이 좋은 방법론
- 내 컴퓨터의 메모리에 전체 데이터의 10%가 올라가는 것이 한계라면, 10%씩 나누어 10번 작업하면 된다는 것입니다
- 단, 데이터가 완벽하게 분할되는 경우에 한해 가능
- 소셜 네트워크와 같이 얽히고 섥힌 그래프 데이터는 그러한 분할이 어렵다
데이터 분할 설계하기
- 위의 시나리오를 그대로 이어나가도록 하겠습니다
- 10만 명의 데이터를 분석하는데, 단일 기기에서 최대 처리 가능한 유저의 수가 약 1만명이라고 하면
- 조금 더 여유를 줘서 13(소수로 선택)으로 데이터를 분할partition
- 13개의 파티션은 user_id를 기준으로 정의
- i번째 파티션은 user_id를 13으로 나눈 나머지가 i인 유저의 집단
- ex) 14 % 13 = 1이므로, user_id가 14인 user는 1번 파티션에 할당
집계 데이터 저장하기
- 각 파티션의 데이터를 불러와, 필요한 연산을 수행한 뒤 최종 결과만을 집계하여 저장
- 이 때 전체 데이터보다 집계된 데이터가 훨씬 작다는 가정
- 위의 경우, 전체 데이터는 각 유저와 상품에 대한 모든 이벤트
- 반면, 집계 결과는 각 유저에 대해 이벤트와 프로모션, 오가닉 3가지에 대한 단일한 숫자값(기여 매출)이므로 그 양이 훨씬 작다.
회피기3: Dask
- Dask 또한 분산 처리 도구이지만, Spark보다는 비교적 가볍게 사용할 수 있다
- 단, 여러 대의 컴퓨터를 사용하는 난이도는 크게 차이나지 않다
Dask란?
- Dask를 사용하면 NumPy, Pandas 및 sklearn과 같은 Python 라이브러리를 쉽게 확장할 수 있다.
- Dask Dataframe을 Pandas와 유사하게 사용할 수 있으며, 비교적 학습 난이도도 또한 낮다
- Spark와 유사한 구조
회피기 패시브: 자동화
- 이왕 기술적인 걸 보는 김에 자동화 파트까지 보겠다
- 스파크를 쓸 때도, 주기적인 데이터 처리를 위해 스케쥴링 하는 경우가 많다
Batch vs Streaming
- 주기적인 대규모 데이터에 대한 처리를 Batch job
- 반대로, 실시간으로 발생하는 데이터에 대한 처리를 Streaming job
- 데이터 분석가는 일반적으로 전자를 수행하는 경우가 많고, 이를 위해 자동화 역량이 필요한 경우도 있다
'SPARK' 카테고리의 다른 글
| [SPARK] 병렬 처리, 분산 처리, Vectorize, CPU, GPU,Joblib (1) | 2024.07.18 |
|---|---|
| [SPARK] 클라우드 사용 이유 3가지 (스토리지, 엔진, 데이터베이스) (0) | 2024.07.15 |
| [SPARK] 파일 유형, I/O (0) | 2024.07.15 |
| [SPARK] (중요)파이썬과 데이터 - RAM, Disk, CPU, Data type (0) | 2024.07.15 |
| [SPARK] SPARK란? 사용이유 (0) | 2024.07.15 |