데브코스-데이터엔지니어링
![빅데이터의 파일 형식은 무엇으로 해야할까? (feat. Parquet 란?)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdsvg8h%2FbtsJkT36Krx%2FKoN8md6nskiGZZJ6lxPHZ1%2Fimg.webp)
빅데이터의 파일 형식은 무엇으로 해야할까? (feat. Parquet 란?)
데이터 엔지니어 프로젝트를 진행하면서 컬럼이 수십개에 레코드는 수십만개의 데이터를 다루면서 데이터 유형에 대해 고민하게 되었다. 단순히 보기 편하고 다루기 쉬운 행 기반 형식의 CSV 파일만을 생각했는데 읽고 쓰는 I/O 성능이 느려서 새로운 파일 유형을 찾게 되었다. 그것이 parquet 같은 빅데이터 파일 형식이다. 1. 고민해야할 점데이터가 기하급수적으로 증가함에 따라 효율적인 데이터 저장방법은 무엇일까?데이터를 행과 열로 구성하는 것의 차이점과 이것이 저장 및 쿼리 효율성에 어떤 영향을 미칠까?행 기반 형식으로 데이터를 저장하는 것의 장단점과 쓰기 작업이 많은 작업에 대한 적합성은 무엇일까?빠른 쿼리 속도와 효율적인 압축 옵션 등 읽기 작업이 많은 작업을 위한 열(컬럼) 기반 저장소의 이점은?Pa..
![Airflow 란 무엇인가?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKvF0V%2FbtsHDN4GriD%2FTho5nHHWaYYXhCdxT3XKV1%2Fimg.png)
Airflow 란 무엇인가?
1. Airflow 소개파이썬으로 작성된 데이터 파이프라인(ETL) 프레임워크Airbnb에서 시작한 아파치 오픈소스 프로젝트가장 많이 사용되는 데이터 파이프라인 관리 및 작성 프레임워크데이터 파이프라인 스케줄링 지원정해진 시간에 ETL 실행 or 한 ETL의 실행이 끝나면 다음 ETL 실행웹 UI 제공데이터 파이프라인(ETL)을 쉽게 만들 수 있게 해줌다양한 데이터 소스와 데이터 웨어하우스를 쉽게 통합해주는 모듈 제공https://airflow.apache.org/docs/데이터 파이프라인을 DAG(Directed Acyclic Graph)라고 부름1개의 DAG는 1개 이상의 태스크(task)로 구성 2. Airflow 구성웹 서버(Web Server)웹 UI는 스케줄러와 DAG의 실행 상황을 시각화해줌..
![Airflow 설치 - Docker](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FomV2I%2FbtsHz7JKOTG%2FZSac3ykxrXzvepqPZRkuz1%2Fimg.png)
Airflow 설치 - Docker
Apache Airflow 공식 홈페이지 - Running Airflow in Docker 에서 참고하였습니다. 1. 시작 전 (Before you begin)Docker Community Edition(CE)을 본인 컴퓨터에 설치합니다. OS에 따라 Airflow 컨테이너가 제대로 실행되려면 최소 4.00GB에서 권장 8.00GB 메모리를 사용하도록 Docker를 구성해야 합니다. 자세한 내용은 Windows Docker 또는 Mac Docker 를 참고하세요.컴퓨터에 Docker Compose v2.14.0 이상 설치해야 합니다. 버전을 확인하려면 `docker compose version` 명령어를 실행하세요.% docker compose versionDocker Compose version v2...
장고 활용한 API 서버 만들기(2)
뷰와 템플릿 SQL order by desc 및 limit 구현 예시 Question.objects.order_by('-pub_date')[:5] order_by 컬럼명 앞 "-"이 있으면 내림차순(desc), 없으면 오름차순(asc) model에 있는 내용 화면(view)에 출력하는 과정 templates/polls/index.html 생성 views.py 에서 context 변수에 dict 형태로 선언 context = {'first_question' : latest_question_list[0] } 'first_question' 이라는 키와 latest_question_list[0] 이라는 값을 index.html에 전달할 변수 index.html에 전달하고자 view.py 에 from django..
장고 활용한 API 서버 만들기
Django Project 생성하기 $ django-admin startproject 프로젝트이름 Manage.py Django 프로젝트를 터미널에서 관리할 수 있도록 명령어를 제공하는 기능의 파일 Django 서버 실행 명령어 $ python manage.py runserver Django App 생성하기 $ python manage.py startapp polls 특정한 기능을 수행하는 웹 어플리케이션으로 App들이 모여 하나의 Project가 됨 App은 하나의 웹 사이트만 종속되는 것이 아닌, 여러 사이트에서 그 기능을 할 수 있음 `urls.py` 에서 앱 경로를 지정할 수 있음 모델 장고의 모델은 RDB에서 엔티티(테이블)라고 보면 됨 모델을 통해 데이터를 편하게 관리 가능 별도의 SQL 쿼리..
![Seaborn 시각화 라이브러리, 기상청 날씨 정보 시각화, 해시코드 질문태그 빈도 시각화, 단어구름 시각화](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHLjZp%2FbtsGpJRRHlT%2Fg0blVDPl4vDA4DWRW2KTJ1%2Fimg.png)
Seaborn 시각화 라이브러리, 기상청 날씨 정보 시각화, 해시코드 질문태그 빈도 시각화, 단어구름 시각화
Seaborn 시각화 라이브러리 Python의 데이터 시각화 라이브러리 이를 활용하여 그래프 시각화 %pip install seaborn 으로 설치 Seaborn Essentials # 시각화에 필요한 라이브러리를 불러와봅시다. import seaborn as sns 꺾은선 그래프 (Line Plot) 두 변수의 값에 따른 추이를 선으로 이은 그래프 `.lienplot()` 를 이용해서 그릴 수 있음 # Scatterplot을 직접 그려봅시다 sns.lineplot(x=[1, 3, 2, 4], y=[0.7,0.2,0.1,0.05]) 막대 그래프 (Bar Plot) 범주형 데이터의 값과 그 값의 크기를 직사각형으로 나타낸 그림 `.bar()` 를 이용해서 그릴 수 있음 # Barplot을 직접 그려봅시다 ..
Selenium, WebDriver, Implicit / Explicit Wait, Mouse Event, Keyboard Event
Selenium 라이브러리 Python을 이용해서 웹 브라우저를 조작할 수 있는 자동화 프레임워크 %pip install selenium 으로 설치 % 를 이용해서 노트북(.ipynb) 환경에서 터미널 코드 실행 가능 Web Driver 웹 브라우저를 제어할 수 있는 자동화 프레임워크 %pip install webdriver-manager 으로 설치 Chrome (크롬) 브라우저를 사용하기에 크롬 설치 필수 # selenium 으로부터 webdriver 모듈 불러오기 from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriver..
![Python - Web Scraping 기초 (BeautifulSoup4 라이브러리)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDCL1I%2FbtsGmB5KckZ%2FgvG9RVAbx4kHPPxxeNgXf0%2Fimg.png)
Python - Web Scraping 기초 (BeautifulSoup4 라이브러리)
BeautifulSoup4 라이브러리 HTML 코드를 분석해주는 HTML Parser 사용 가능 # pip를 사용해 라이브러리 설치 %pip install bs4 # 사이트에 요청한 후 응답 받기 import requests res = requests.get("http://www.example.com") # BeautifulSoup4 - bs4 불러오기 from bs4 import BeautifulSoup # BeautifulSoup 객체 생성하기. # 첫번째 인자는 response의 body를 텍스트 # 두번째 인자는 "html"로 분석한다는 것을 명시 soup = BeautifulSoup(res.text, "html.parser") # 객체 soup의 .prettify()를 활용하여 분석된 HTML을..