데브코스-데이터엔지니어링
빅데이터의 파일 형식은 무엇으로 해야할까? (feat. Parquet 란?)
데이터 엔지니어 프로젝트를 진행하면서 컬럼이 수십개에 레코드는 수십만개의 데이터를 다루면서 데이터 유형에 대해 고민하게 되었다. 단순히 보기 편하고 다루기 쉬운 행 기반 형식의 CSV 파일만을 생각했는데 읽고 쓰는 I/O 성능이 느려서 새로운 파일 유형을 찾게 되었다. 그것이 parquet 같은 빅데이터 파일 형식이다. 1. 고민해야할 점데이터가 기하급수적으로 증가함에 따라 효율적인 데이터 저장방법은 무엇일까?데이터를 행과 열로 구성하는 것의 차이점과 이것이 저장 및 쿼리 효율성에 어떤 영향을 미칠까?행 기반 형식으로 데이터를 저장하는 것의 장단점과 쓰기 작업이 많은 작업에 대한 적합성은 무엇일까?빠른 쿼리 속도와 효율적인 압축 옵션 등 읽기 작업이 많은 작업을 위한 열(컬럼) 기반 저장소의 이점은?Pa..
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
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 시각화 라이브러리, 기상청 날씨 정보 시각화, 해시코드 질문태그 빈도 시각화, 단어구름 시각화
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 라이브러리)
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을..