TIL (2024-07-22 ~ 2024-07-26)2024-07-22 (월)오늘 한 일AWS Glue + Redshift Spectrum 공부 및 사용 여부 재결정Redshift Spectrum 지원에 따라 두 서비스를 이용해서 진행하는 것으로 결정다방, 직방의 테이블이 중복으로 적재되지 않아 공간적인 이점이 있음그러나 외부 테이블을 사용하므로 비교적 시간이 오래 걸림서비스의 역할Glue : S3에 적재된 다방, 직방 데이터를 Crawler로 가져옴Redshift Spectrum : Glue에서 크롤링한 테이블을 외부 테이블로 사용해 병합 테이블 생성부동산 중개업자 데이터 수집저번 주(7/19)에 selenium으로 다운로드까지 되도록 코드 작성Lambda로 Selenium으로 사용하려고 시도했지만 실..
TIL (2024-07-15 ~ 2024-07-19)2024-07-15 (월)주제 및 나의 역할주제 : 조건 별 "원룸/투룸" 추천 웹 서비스나의 역할 : ERD 설계 및 ELT오늘 한 일간단히 만들어 본 서비스 형태생각나는 대로 작성진행한 모델링직방에서는 편의시설 정보를 따로 제공하지 않아 이에 대한 해결 방안을 찾아 스키마를 변경해야 함 (NearByFacilities)AgencyDetails 테이블은 찾은 csv 파일을 토대로 컬럼을 추가해야 함(데이터 모델링은 처음 해봐서 걱정했는데, 팀원 분들이 나쁘지 않다고 하셔서 안도의 한숨을..)고민 사항편의시설 데이터를 어떻게 채워 넣을 것인가?다방 : 크롤링을 통해 주변 편의시설의 상호명과 거리, 개수 등의 정보 추출 가능직방 : 크롤링을 통해 가장 가..
ML Pipeline과 Tuning 소개와 실습Spark ML 모델 튜닝Spark ML 모델 튜닝 (ML Tuning)최적의 하이퍼 파라미터 선택최적의 모델 혹은 모델의 파라미터를 찾는 것이 중요하나씩 테스트 vs 다수를 동시에 테스트모델 선택의 중요한 부분은 테스트 방법 (교차 검증, 홀드 아웃)보통 ML Pipeline과 같이 사용다음과 같은 입력을 바탕으로 가장 좋은 파라미터를 찾아줌Estimator : 머신러닝 모델 혹은 ML PipelineEvaluator : 머신러닝 모델의 성능을 나타내는 지표Parameter : 훈련 반복 횟수 등의 하이퍼 파라미터 (ParamGridBuilder)최종적으로 결과가 가장 좋은 모델을 반환Spark ML 머신러닝 모델 성능 측정 : Evaluatorevalua..
Spark PartitionSalting을 통한 Data Skew 처리AQE가 등장하기 전 Data Skew 처리 방식 중 하나인 Salting에 대해 알아보자.Partition 관련 환경 변수 (3.3.1)spark.sql.shuffle.partitions클러스터 차원과 처리 데이터의 크기를 고려하여 Job마다 바꿔 설정큰 데이터를 처리한다면, 클러스터 전체 코어의 수로 설정AQE를 사용하는 관점에서는 조금 더 크게 설정하는 것이 좋음 (coalescing)SaltingSkew Partition을 처리하기 위한 테크닉AQE의 등장으로 인해 많이 쓰이지 않지만, AQE만으로 이슈가 사라지지 않는다면 필요할 수 있음랜덤 필드를 만들고, 그 기준으로 Partition을 새로 만들어 처리Aggregation ..