목록데이터엔지니어 부트캠프 (32)
imhamburger 님의 블로그
1. Regressor (회귀 모델) 숫자를 예측하는 모델 어떻게 사용해? 예를 들어, 집값을 예측하고 싶다면 이 모델을 사용해. 집의 크기나 위치 같은 데이터를 주면, 그 데이터를 바탕으로 "이 집은 얼마일 것 같아"라는 숫자를 예측해준다.예시: "이 집은 4억 원일 거야!" 또는 "내일 온도는 25도일 거야!" 같은 식으로 정확한 숫자를 예측하는 모델이다. 2. Classifier (분류 모델)카테고리를 예측하는 모델어떻게 사용해? 예를 들어, 어떤 이메일이 스팸인지 아닌지를 분류하고 싶다면, 이 모델을 사용해. 이메일의 내용을 보고 "이건 스팸이야" 또는 "이건 정상 메일이야"라는 식으로 분류해준다.쉽게 예시: "이 사진은 고양이야!" 또는 "이 메일은 스팸이야!" 이렇게 카테고리를 정해주는 것이 ..
*사전에 준비되어야 할 사항 1. nginx 로드밸런서만 실행시킬 EC2 인스턴스 1개2. API를 실행시킬 EC2 인스턴스 5개 (같은 API 기능을 5개의 인스턴스에 1개씩 실행)3. 성능테스트를 진행할 nGrinder 를 실행시킬 EC2 인스턴스 1개4. API 기능 도커 이미지 build 5. nginx 로드밸런서 도커 이미지 build 6. nGrinder용 EC2를 제외한 각각의 EC2 인스턴스에 Docker 설치 따라서, 총 7개의 EC2 인스턴스가 필요하다. 전체적인 그림은 다음과 같다. 사용자들은 nGrinder를 이용해 Virtual user로 세팅할 것이며, nginx를 이용한 로드밸런서가 사용자들을 분산하여 한쪽 서버에만 과부하되지 않게 처리한다. 이때, 주의해야할 것은 각 기능..
1. FastAPI 프로젝트 준비 참고로, FastAPI는 Python으로 작성된 고성능 웹 프레임워크로, REST API 및 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 도구이다. 빠르고 쉽게 개발할 수 있어서 FastAPI인가보다..! 먼저, FastAPI 프로젝트가 준비되어 있어야 한다. 간단하게 main.py를 만들었다.FastAPI 홈페이지에서 참고하여 작성하면 된다. from typing import Unionfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"Hello": "world"}@app.get("/items/{item_id}")def read_item(item_id: int, q:..
8월 26일 월요일부터 첫 팀프로젝트를 시작하였다. 프로젝트를 완성하는데 주어진 시간은 3일이다. 사실 8월 23일 금요일 오후부터 팀프로젝트에 대해 팀원분들과 계획을 세웠었다. 팀구성은 4인 1조인데 우리의 팀 이름은 "Asset-No-1" 으로 정했다.이유는 미래 자산 1조 클럽 가입을 꿈꾸며....ㅋ 팀프로젝트 주제 업무용 메신저 개발 (사내 채팅 기능 + 영화 정보 검색 챗봇 기능)업무 채팅 기능업무 채팅 감사 기능 ( 검색, 대화 주제 통계 ) - zeppelin영화 챗봇기능 ( @bot 파묘 감독은 누구야? )시스템 챗봇기능 ( airflow JOB ... 성공 실패 )일정 챗봇기능 ( 애자일 칸반 미팅 시간 입니다 )여기에서 주요기능은 실시간으로 업무 대화 기능을 구현하는 것이다. 우리는 주..
아파치 카프카(Apache Kafka)는 데이터를 빠르고 안정적으로 주고받을 수 있게 해주는 시스템이라고 생각하면 된다.Kafka는 대용량의 실시간 데이터 스트리밍을 처리하고, 데이터를 저장하며, 스트리밍 데이터를 다양한 시스템으로 전달하는 데 사용된다. 사실 카프카가 등장하기 전, 데이터를 주고받고 처리하는 방식은 원래부터 있었다. 예를들어, 이메일서비스를 생각해보았을 때, 우리는 단순히 이메일을 쓰고 상대방에게 보내면 끝이지만, 사실 이메일 프로세스 안에서는 다양한 데이터를 보내고 받는다. 이메일을 보내는 서비스인 Send는 이메일을 보낼 때, Send는 이메일 피드를 갱신하는 서비스(Feed), 이메일 알람을 보내는 서비스(Notify), 이메일 상태를 담당하는 서비스(Status), 로그를 담..
영화진흥위원회에서 영화데이터를 불러와 영화데이터를 수집하는 프로그램을 만들었다.영화진흥위원회에서 제공하는 영화데이터가 아래와 같이 다양하게 있다. 이중에서 영화목록 ~ 영화인 상세정보를 연도별로 데이터를 저장하는 프로그램을 만들도록 하자.프로그램을 실행했을 때 아래와 같이 나타나도록 할 것이다.tests/test_movie.py 데이터가 이미 존재합니다: data/movies/year=2015/data.json데이터가 이미 존재합니다: data/movies/year=2016/data.json데이터가 이미 존재합니다: data/movies/year=2017/data.json데이터가 이미 존재합니다: data/movies/year=2018/data.json데이터가 이미 존재합니다: data/movies/ye..
팀프로젝트가 끝나고 아파치 스파크(Apache Spark)를 배웠다.스파크는 빅데이터 처리를 위한 오픈 소스 분산 처리 시스템이다. 스파크 이전에 하둡이라는 기존 분산 처리 시스템이 있긴한데, 하둡보다 분산 처리 시스템이 빠르고 메모리 내에서 데이터를 처리하기 때문에 효율적인 실시간 데이터 처리도 가능하다. 분산 처리를 왜 써야하지?사실 데이터가 적다면 굳이 쓸 필요가 없을 것이다. 그런데 빅데이터의 경우 분산처리를 안한다면 방대한 양의 데이터를 처리하는데 시간이 엄~청 오래 걸릴 것이다. 예를들어,카페에서 커피를 100잔 만들어야된다고 가정해보자. 그리고 커피 1잔을 만드는 데 드는 시간을 1분이라고 할 때, 일하는 사람이 한 사람뿐이라면 100분을 투자해야 100잔을 만들 수 있다.그렇지만, 일하는 ..
3일간의 팀프로젝트가 끝났다. 지난번에 팀프로젝트를 진행하면서 발생한 에러들을 기록해놨었는데 오늘도 2일차에 발생한 에러들을 이어서 정리해보려고 한다. 제 4 장: 파이썬 함수에 있는 변수는 Bash Command에 적용되지 않는다. 우리는 에어플로우가 실행될 때마다 같은 데이터가 누적되어 쌓이는 것이 아닌 멱등성을 고려해 데이터가 존재한다면 삭제한 후 Load하고 없다면 데이터를 삭제하지 않고 Load하는 방식으로 데이터 파이프라인을 설계하였다. 따라서 branch_fun이라는 함수를 만들어 조건문을 넣었고 BranchOperator에서 명령을 분리해준다. def branch_fun(ds_nodash): import os home_dir = os.path.expanduser("~") month=int(..
7월 한달동안 배운 내용들이 참 많다. 터미널을 다루는 것부터 vim, bash, 깃&깃허브, pyenv, pdm, Airflow, sql, pandas 등..초기엔 vim과 깃&깃허브 다루는 것에 집중하였다면 지금은 간단한 기능도 만들고 배포하고 써보고하는 등 간단한 것이지만 무언가를 만들 수 있다는게 조금은 신기하다. 그리고 실제로 만들어야 하는... 팀프로젝트가 시작되었다. 8월 2일 금요일부터 첫 팀프로젝트를 시작하였다. 프로젝트를 완성하는데 주어진 시간은 3일이다.팀구성은 3인 1조인데 우리의 팀이름은 "play gogo" 로 정했다. (이유는 딱히 없다..) 팀프로젝트 과제는 영화 박스오피스 데이터 수집 / 처리 / 보관 및 활용이었고 필수적으로 해야하는 건 다음과 같다.영화 박스오피스 데이터..
지난주에 에어플로우 Operator에서 csv파일을 만드는 것까지 진행하였다. (지난글 바로가기)이번주엔 csv파일로 만든 것을 sql을 이용해 데이터베이스에 저장하고 판다스를 이용해 parquet 파일형태로 다시 저장해보는 것을 하였다. 약간 과정이 복잡하기는한데... 차근차근 알아보자. 4. task_create_tbl(table)task_create_tbl = BashOperator( task_id="create.table", bash_command=""" SQL={{var.value.SQL_PATH}}/create_db_table.sql MYSQL_PWD='{{var.val..