본문 바로가기

분류 전체보기545

AWS ec2(Ubuntu)에 Airflow2.0 설치하기 Ubuntu에서 airflow2.0 설치하는 방법 참고 https://github.com/keeyong/data-engineering-batch5/blob/main/docs/Airflow%202%20Installation.md GitHub - keeyong/data-engineering-batch5 Contribute to keeyong/data-engineering-batch5 development by creating an account on GitHub. github.com 1. python 설치 sudo apt-get update sudo apt-get install -y python3-pip python3 --version Python 3.8.10 2. airlfow 및 기타모듈 설치 sudo .. 2021. 9. 3.
[데엔스터디4] ETL/Airflow소개 데이터엔지니어링 스타터 키트 -4주차 후기 아래의 내용은 직접 유료강의를 수강하고, 배운점 및 추가로 공부한 내용을 기록한 내용입니다. 프로그래머스에서 진행하는 실리콘밸리에서 날아온 데이터엔지니어링 스타터키트 강의추전! ETL이란? ETL : Extract, Transform, Load 하나의 데이터 소스에서 어떤 데이터 하나를 읽어다가, (Extract) 원하는 포맷으로 바꿔서, (Transform) 그걸 DW에 테이블로 로딩하는 작업 (load) ELT : Extract, Load, Transform 하나의 데이터 소스에서 어떤 데이터 하나를 읽어다가, (Extract) Transform작업 없이 다 '데이터레이크'에 복사하고, (Load) 데이터레이크 중에서 의미가 있고 최근 데이터만 원하는 포맷으.. 2021. 9. 3.
🧾대용량데이터 읽기 속도비교(read file, pandas, pyarrow) 처음으로 10만건 정도 되는 데이터를 다루어볼 수 있는 기회가 생겼다. 대용량데이터는 처음이다보니 데이터를 읽는 것부터 오래걸렸다.. 그래서 데이터를 읽기 위해 여러가지 방법을 시도해보았고, 그 결과들을 비교해보려고 한다! Read CSV file file로 읽어서 df로 저장하기 내가 가장 처음 시도한 방법이다. 별다른 생각없이 그냥 일반적으로 CSV 파일을 읽어오려고 했다. with open file로 읽어서 df로 저장하기 비슷한 방법이지만 with open으로도 파일을 읽어올 수 있었다. 아무래도 line마다 읽다보니 약간 시간이 더 걸리는듯? Pandas read_csv로 읽어서 df로 저장하기 어차피 dataframe을 사용할꺼라면 그냥 pandas의 read-csv를 사용하는게 더 나을지도?.. 2021. 9. 2.
대용량데이터 빠르게 DB에 넣기(bulk insert) django 프로젝트를 하면서 데이터를 db에 저장해야할 일이 생겼다. 그냥 일반적인 데이터라면 별다른 이슈가 없었겠지만, 프로젝트의 목적은 10만건정도 되는 대용량 데이터를 다루어보는 것이다. 그래서 보통과 다르게 빠르게 db에 insert할 수 있는 방법은 없는지 찾아보다가 알게 된 내용을 기록한당! 하지만, 결론적으로 이런 대용량 데이터는 이렇게 막연하게 RDB에 넣으면 안된다!!! BULK INSERT란? MYSQL에서 대량으로 INSERT를 수행하게 해주는 SQL문. 예를 들면 이렇게 3줄로 나오는 INSERT를 한줄로 수행할 수 있다. # 일반 INSERT insert into tb_name (a, b, c) values (1, 2, 3); insert into tb_name (a, b, c).. 2021. 8. 29.
추천시스템04. 잠재요인 협업필터링(latent factor collaborative filtering) 구현 잠재요인 협업 필터링 (latent factor collaborative filtering) 행렬분해(Matrix Factorization)를 기반으로 사용한다. user-item 행렬 데이터를 이용해 잠재요인을 찾아낸다. 즉 user-item 행렬을 user-잠재요인, item-잠재요인 행렬로 분해는 것이다. 그래서 전체 사용자-아이템(행렬 R)에서 나온 값을 기반으로 잠재요인이 값을 매길 수 있게 된다. 그리고 이 값을 이용해서 사용자가 평가하지 않은 콘텐츠의 점수를 예측하는 것이다. 잠재요인 필터링은 저장공간을 훨씬 줄일 수 있다. 금까지 구현해본 추천시스템 방식중에서 가장 많이 사용된다. 목적 : 잠재요인 협업필터링으로 사용자가 본 영화와 유사한 영화를 추천해준다 데이터셋 : https://www.. 2021. 8. 27.
추천시스템03. 아이템 기반 협업 필터링 (collaborative filtering) 구현 협업 필터링(collaborative filtering) 사용자와 item간의 rating을 이용해서 사용자끼리 '유사도'를 찾는 방식. 특정 사용자와 유사한 사용자들이 남긴 평점, 상품구매 이력 등 행동양식 기반으로 '예측'해서 '추천'해준다. 그래서 item을 얼마나 좋아할 것인지 수치적으로 예측한다. 협업필터링의 2가지 유형 최근접 이웃기반 필터링 (nearest neighbor collaborative filtering) 잠재요인 기반 필터링 (latent factor collaborative filtering) 2.1 최근접 이웃기반 필터링 (nearest neighbor collaborative filtering) 사용자-아이템 행렬에서 사용자가 아직 평가하지 않은 아이템을 예측하는 것이 목표.. 2021. 8. 27.
추천시스템02. 콘텐츠기반 필터링(content based filtering) 구현 콘텐츠 기반 필터링(content based filtering) 사용자가 특정 아이템을 선호하는 경우, 그 아이템과 '비슷한' 콘텐츠를 가진 다른 아이템을 추천해주는 방식 굉장히 단순한 아이디어. 요즘엔 자주 사용하지 않는다. 예를 들어 사용자가 a가 itemA 영화에 높은평점을 주었을떄, 그 영화가 스릴러 영화고, 봉준호 감독이라면 이와 깉이 봉준호 감독의 다른 스릴러 영화를 추천해주는 것이다. 데이터셋 : https://www.kaggle.com/tmdb/tmdb-movie-metadata?select=tmdb_5000_movies.csv 목적 : 콘텐츠 기반 필터링으로 사용자에게 비슷한 영화를 추천해준다 1. 데이터준비 2. 데이터전처리 사용할 컬럼 정리 vote_averages(평점평균), vot.. 2021. 8. 26.
추천시스템01. 추천 시스템(Recommendation)이란? 유형 알아보기 이전 프로젝트에서 거리기반 알고리즘을 이용해서 음악을 추천해주는 프로젝트를 진행했다. 가장 단순하고 쉽게 유사도를 계산했는데, 어느정도 유사한 결과가 나와서 엄청 신기했다. 그래서 추천알고리즘을 더 알아보고 싶었고, 또한 다양한 데이터를 다루어보고 싶었다. 해보고 싶은 나만의 과제? 처럼 keep해두고 있던것 중 하나였는데 시간이 남아서 한번 도전~! 추천 시스템(Recommendation)이란? 추천 시스템을 통해 사용자의 취향을 파악하고, 그 취향에 따라 상품 등을 추천해줄 수 있다. 그래서 사용자가 해당상품을 구매할 확률이 높아져서 친사용자이며 친기업 서비스가 될 수 있는 강력한 시스템. 대표적으로 유튜브나 왓챠,넷플릭스에서 적용하고 있는 추천시스템, 나도 몰랐던 내 취향을 알려준다는 점에서 소름돋.. 2021. 8. 26.
[데엔스터디3] 데이터엔지니어를 위한 SQL 실습 데이터엔지니어링 스타터 키트 -3주차 후기 아래의 내용은 직접 유료강의를 수강하고, 배운점 및 추가로 공부한 내용을 기록한 내용입니다. 프로그래머스에서 진행하는 실리콘밸리에서 날아온 데이터엔지니어링 스타터키트 강의추전! 0. SQL실습 전 기억해야할 점 현업에선 깨끗한 데이터란 존재하지 않는다 -> 데이터의 품질을 의심하고 체크하는 버릇이 필요하다! 중복되는 레코드 체크 최근 데이터의 존재여부 체크 PK가 유니크한지 체크 NULL값 있는지 체크 아예 unit 테스트 형태로 만들어서 매번 체크할 수 있도록 data discovery 문제해결 점점 테이블이 많아지게 되서 데이터를 수집하고 통합하는 그 과정에 문제가 발생 어떤 테이블이 중요하고, 메타데이터가 어떤것이고, 어떤 테이블이 무슨역할을 하는지 등 관.. 2021. 8. 25.
[Setting][Intellj] 파이썬 가상환경 venv 설정 사실 아나콘다로 해도 되지만, 나는 아나콘다를 별도로 깔고 싶지 않아서 python자체에서 제공해주는 가상환경 라이브러리(venv)를 이용한다. 근데 이걸 맨날 까먹고, 검색하길래 다시한번 정리해본다! 가상환경 생성 원하는 폴더에서 python -m venv 가상환경이름 그러면 해당경로에서 가상환경이름으로 하위폴더가 하나 생성된다. 가상환경 활성화 해당경로에서 가상환경이름/Script/activate.bat 그러면 이제 가상환경이 활성화 되서 명령어 앞에 (가상환경이름) 이 될 것이다. (독립환 환경이 만들어졌다!) 그리고 실제로 파이썬 인터프리터가 이 폴더 안에 있는걸로 인식되었는지 확인해보려면 where python을 쳐보면 된다. 그러면 이렇게 추가적으로 원래 로컬의 python경로뿐만 아니라 가상.. 2021. 8. 25.