STUDY/Data Engineering

EMR Serverless와 Step Functions으로 Spark ETL 구축하기
아래 글은 EMR Serverless + Step Functions: Python to Spark마이그레이션 작업을 위해 실험을 했던 과정을 기록한 것으로 잘못된 부분이 있거나, 최적화 되지 못한 부분이 존재할 수 있습니다.1. 개요 기존에는 물리 서버에 구축된 jupyter hub환경에서 python으로 데이터 처리 후 아래와 같은 구조로 작업을 진행했다.기존 환경에서는 빠른 개발과 테스트가 가능했지만, 확장성과 유지보수 측면에서 한계가 있었다. 또한, Python에서도 multiprocessing 같은 라이브러리를 활용하면 멀티프로세싱을 통해 병렬 처리를 수행할 수 있다. 하지만, 이러한 방식은 기본적으로 단일 머신의 CPU 리소스에 제한 되기 때문에, 대량의 데이터를 다룰 때는 결국 클러스터 기반..

04장 부호화와 발전
데이터 중심 어플레케이션 설계 스터디를 진행하며 작성한 글 입니다. 스터디원: 7명 서적: 데이터 중심 어플리케이션 설계 서론 데이터 부호화란(Data Encoding)? 필요성 : 데이터부호화 형식에 따라 human-readable(사람이 읽기에 좋은), 데이터 압축률(가용성 증가, 통신 성능 증가), 호환성 유지에 영향을 줄 수 있기 때문 호환성이 중요한 이유 서버 단 애플리케이션: 대규모 시스템에서는 트래픽 처리를 위해 여러 개 서버군이 한 역할을 하는데 여기서 무중단 배포를 위해서 이전 버전 서버, 새 버전 서버가 공존할수밖에 없다. 클라이언트 단 애플리케이션: 사용자에게 전적으로 좌우된다. 사용자가 업데이트 하지 않으면 적용할 수 없다. 애플리케이션은 시간이 지나면서 점점 변한다. 이 변화에 D..

03장 저장소와 검색DB란
데이터 중심 어플레케이션 설계 스터디를 진행하며 작성한 글 입니다. 스터디원: 7명 서적: 데이터 중심 어플리케이션 설계 들어가기에 앞서 관계형 DB와 NoSQL DB에 사용되는 저장소 엔진에 대해 공부한다. 로그 구조(log-structured) 계열 저장소 엔진과 (B-tree 같은) 페이지 지향(page-oriented) 계열 저장소 엔진을 검토한다. DB란 DB작업 data 저장 ,data 요청 시 제공 개발자가 DB 내 저장 및 검색 처리 방법을 주의해야하는 이유 처음부터 저장소 엔진을 구현하는 것이 아닌, 사용 가능한 여러 저장소 엔진 중 가장 적합한 엔진을 선택해야 하기 때문 ( 작업 부하에 맞춰 최적화 된 저장소 엔진/ 분석 위해 최적화된 엔진 차이) DB를 강력하게 만드는 데이터 구조 D..

02장 데이터 모델과 질의언어
데이터 중심 어플레케이션 설계 스터디를 진행하며 작성한 글 입니다. 스터디원: 7명 서적: 데이터 중심 어플리케이션 설계 서론 데이터 모델은 소프트웨어 개발에서 제일 중요한 부분일 것이다. SW가 어떻게 작성됐는지 뿐만 아니라 해결하려는 문제를 어떻게 생각해야 하는지에 대해서도 영향을 미치기 때문이다. 대부분의 애플리케이션은 하나의 데이터 모델을 다른 데이터 모델 위에 계층을 둬서 만든다. (각 계층의 핵심 문제: 다음 하위 계층에서 데이터 모델 표현하는 방법) 애플리케이션 개발자는 현실(사람, 조직, 상품, 센서, 자금 흐름 등)을 보고 객체나 데이터 구조 그리고 이러한 데이터 구조를 다루는 API를 모델링한다. 데이터 구조를 저장할 때는 JSON, XML 문서. 관계형 데이터 베이스 테이블이나 그래프..