본문 바로가기
반응형

분류 전체보기54

Spark 독학하기 3일차 – 분산 처리가 뭐야.. 🎯 목표Spark의 분산/병렬 처리 개념을 실제 코드 흐름 속에서 이해해 보기Job → Stage → Task → Partition 구조를 익히는 게 목표실무에서 Spark를 언제, 왜, 어떻게 써야 하는지도 감 잡는 것전체 요약Spark는 데이터를 잘게 나눠서(Task), 여러 작업자(Executor)가 병렬로 처리하게 만든 분산 처리 프레임워크다.우리가 코드를 작성하면, 내부적으로 실행 계획(DAG)이 쌓이고, .show() 같은 Action이 호출되는 순간 Job이 실행된다.Job 안에서 중간에 Shuffle이 발생하면 Stage가 나뉘고, 각 Stage는 Partition 개수만큼 Task가 만들어진다.이 구조 덕분에 대용량 데이터를 효율적으로 처리할 수 있지만, 중간 Shuffle 비용은 항상.. 2025. 5. 11.
Spark 독학하기 2일차 – Spark의 기본 개념 구조 🎯 목표 Spark가 왜 필요한지, 어떤 문제를 해결하기 위해 만들어졌는지 이해하기Spark의 내부 구조(Driver, Executor, Cluster Manager)가 어떤 역할을 하는지 파악하기실행이 실제로 어떻게 이루어지는지, Job/Stage/Task 구조를 통해 흐름을 이해하기실습보다는 개념 정리를 중심으로, 이후 실전 학습을 위한 기반 만들기 내용전체 요약Spark는 분산/병렬 처리를 위한 프레임워크이다. 대용량 데이터를 여러 컴퓨터(노드)에 나눠 처리할 수 있게 설계되었다.개발자가 작성한 코드는 Spark 내부에서 실행 계획으로 바뀌며, 그 계획을 바탕으로 Driver가 전체 흐름을 조율하고, Executor가 병렬로 작업을 수행한다.이 모든 구조는 Cluster Manager 위에서 동작.. 2025. 5. 10.
Spark 독학하기 0일차 – Spark를 공부해야겠구만.. 🎯 목표Apache Spark 학습 동기.어떤 언어(PySpark vs Scala)를 선택할지Spark를 공부하려는 이유약 4년간 데이터 엔지니어로 일하면서 파이프라인, 적재, 가공 등 다양한 작업을 경험했지만, 지금까지는 주로 SQL 기반이나 단일 배치 중심의 작업이 많았다. 대규모 데이터를 다루는 데 있어 병렬 처리, 분산 시스템 개념을 실제로 더 깊게 이해하고 싶다는 갈증이 있었다.Spark는 그동안 운영상 일부 파이프라인에 제한적으로 사용한 적이 있었지만, 실전 활용은 극히 제한적이었다. 특히 스칼라로 몇 개의 작업을 구성해 본 정도가 전부였고, 내부적으로 어떻게 동작하는지, 튜닝 포인트가 어디인지, 어떤 방식으로 확장 가능한지에 대한 감이 부족하다고 느껴졌다.→ 그래서 이번 기회에 Spark를.. 2025. 5. 10.
Spark 독학하기 1일차 – M1 맥에서 PySpark 환경 구성 및 테스트 🎯 목표Apache Spark 실습 환경을 M1 MacBook에서 구성PySpark + Jupyter Notebook 조합으로 실습 가능하게 만들기Docker 대신 Colima 기반으로 경량화된 환경 사용내용전체 요약M1 Mac에서 Spark 환경을 Docker로 구성하려다 Docker Desktop의 보안 이슈로 실패했고, 대안으로 Colima를 사용하여 성공적으로 PySpark + Jupyter 환경을 구축했다. 환경 구성 이후 Jupyter에서 SparkSession을 실행하여 Spark 기본 작동 확인까지 완료함. 최소 실행 절차 요약 (터미널 기준)# Colima 및 Docker CLI 설치brew install colimabrew install docker# Colima 실행colima st.. 2025. 5. 10.
[PYTHON] 파이썬의 is vs == 비교 정리 이 글은 제가 공부하며 이해한 내용을 바탕으로 작성했습니다. 틀리거나 보완할 점이 있다면 댓글로 알려주시면 감사하겠습니다.핵심 차이 요약== → 값(value) 을 비교is → 객체(object)의 주소(id) 를 비교빠른 예시 정리# 리스트: 가변 객체a = [1, 2, 3]b = [1, 2, 3]print(a == b) # True (값이 같음)print(a is b) # False (다른 객체)print(id(a), id(b)) # 서로 다른 주소# 리스트 안의 숫자형 원소: 불변 객체print(a[0] == b[0]) # Trueprint(a[0] is b[0]) # True (같은 숫자형 객체를 공유)# 숫자형: 불변 객체a = 134b = 134print(a == b) # Truep.. 2022. 6. 4.
ODS란 무엇인가 – 개념 이 글은 공부하며 정리한 내용입니다. 틀리거나 보완할 점이 있다면 댓글로 알려주시면 감사하겠습니다.1. 핵심 요약ODS(Operational Data Store)는 운영 데이터 저장소로, 운영 시스템에서 생성된 데이터를 일시적으로 저장하고 정형화하는 중간 저장DW(Data Warehouse)로 데이터가 적재되기 전에, 실시간 또는 근실시간 데이터를 빠르게 질의하거나 가공하기 위한 용도로 활용스테이징과 유사하지만, 더 정제되고, 운영 중 조회 및 처리에 활용되는 점2. 상세 내용 설명ODS의 정의먼저, ODS(Operational Data Store)는 일반적으로 운영 데이터를 정형화하여 임시 저장하는 저장소로 정의된다.운영 시스템에서 수집된 데이터를 실시간 또는 짧은 지연으로 반영하며, DW로 적재되기 .. 2022. 5. 8.
반응형