[Airflow] Airflow DAG 만들기 & DAG 디렉토리 셋팅
·
Minding's Programming/Airflow
operator와 관련 용어 개념오퍼레이터: 특정 행위를 할 수 있는 기능을 모아놓은 클래스(설계도)Task: 오퍼레이터에서 객체화되어 DAG에서 실행 가능한 오브젝트Bash 오퍼레이터: 쉘 스크립트 명령을 수행하는 오퍼레이터, 이외에도 Python 오퍼레이터 등 다양함. 오퍼레이터를 통해 Task를 만들고, DAG를 통해 각 Task를 실행시킴. Task의 수행 주체는? Airflow의 전체적인 아키텍처는 다음과 같다.1. 스케줄러에서 DAG파일을 파싱2. 스케줄러가 해당 정보를 메타DB에 저장3. DAG의 Start 시간 파악4. Start 시간 도달 시 워커에 DAG 파일에 의한 워크플로우 시작 지시5. 워커는 DAG파일을 읽어들인 후 처리 (실행 전에도 메타 DB에 업데이트)6. 워크플로우 완료 ..
[Linux/WSL] 간단한 리눅스 명령어 정리
·
Minding's Programming/Knowledge
리눅스에서 자주 쓰는 간단한 명령어들을 정리해 보았다. 명령어역할pwd현재 디렉토리 경로 출력ls현재 디렉토리의 파일 목록 출력 (숨김파일 및 자세히 표시: -al)cd디렉토리 변경 (cd만 단독 사용 시 홈 디렉토리로 이동)mkdir디렉토리 생성touch새로운 파일 생성rm파일 삭제 (디렉토리 포함: -r)cp파일 복사 (디렉토리 포함: -r)mv파일 이동 / 이름 변경tar파일/디렉토리를 압축 또는 압축해제(압축시: tar cvf / 해제시: tar xvf)
[Airflow] Airflow 알아보기 및 설치 방법 (입문)
·
Minding's Programming/Airflow
데이터 엔지니어링 분야에서 각광받고 있는 플랫폼인 Airflow는 2014년 Airbnb 엔지니어링 팀에서 개발한 오픈소스 워크플로우 관리 플랫폼이다. 프로그래밍으로 ETL과 같은 워크플로우를 작성하고 예약 및 모니터링 할 수 있다. Airflow 왜 배워야할까?1. Automation: Extractaction > Transformation > Loading에 이르기까지 모든 과정을 자동화할 수 있다. 2. Orchestration: 데이터 추출, 가공, 저장, 분석 등의 파이프라인 관리용으로 가장 인기 많은 오픈소스 솔루션으로, Spark, Hadoop, Python, R 등 여러 플랫폼과 언어를 오가며 사용할 수 있다. (솔루션 간의 연계성이 좋음) 또한 공식적으로 지원하지 않는 플랫폼에 대해서도 ..
카카오톡 메시지로 긍/부정어 감정 분석해보기 (재미로 보는 야구팬들의 감정 분석)
·
Minding's Programming/Knowledge
내겐 '야구'라는 주제로 뭉친 친구들의 단체 카톡방이 있다. 여느 야구팬들이 보통 그렇듯이, 야구 경기를 보면서 희노애락의 이야기들을 나누곤 한다. 16년차 한화팬인 나는 올 시즌에도 기대에 못 미치는 경기력을 보며 한탄을 하던 도중 문득 궁금해졌다. '이겨도 져도 욕하는 야구라지만 성적이 좀 괜찮다면 욕을 좀 덜하지 않았을까?' 하는 생각을 가지고 가볍게 재미를 가지고 카카오톡 메시지를 통해 긍/부정어 분석을 진행해보았다. 필요한 라이브러리import pandas as pdimport torchfrom transformers import BertTokenizer, BertForSequenceClassificationfrom transformers import TextClassificationPipeli..
[FastAPI] HTTP 메소드 요청을 처리하는 데코레이터 정리
·
Minding's Programming/FastAPI
야구장 소개 홈페이지를 직접 만들면서 게시판 기능을 구현하려고 하니, 기존에 사용했었던 @router.get 데코레이터가 아닌 .post, .put, .delete와 같은 다양한 데코레이터를 사용하게 됐다. 각 데코레이터 별 개념을 간단히 정리해보고자 한다. 각 데코레이터는 FastAPI의 HTTP 메소드에 따른 요청을 처리하는데 사용되는 데코레이터이며, 특정 URL 경로와 HTTP 메소드에 매핑하여 해당 요청이 들어올 때 지정된 함수를 실행한다. 1. @router.get HTTP GET 메소드와 관련된 요청을 처리주로 서버에서 데이터를 가져오는 데 사용ex) 데이터 조회, 특정 리소스를 가져오는 요청 2. @router.postHTTP POST 메소드와 관련된 요청을 처리주로 서버에 새로운 데이터를 ..
[Python/Selenium] (업데이트)Selenium으로 KBO 경기 일정 크롤링하기
·
Minding's Programming/Crawling
2024.07.01 - [Minding's Programming/Knowledge] - [Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기 [Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기야구장 소개 홈페이지를 만드는 데 경기 일정도 한 페이지에 보여주는 곳이 있으면 좋겠다고 생각이 들었다. KBO 홈페이지에 있는 경기 일정을 주기적으로 크롤링해 이 홈페이지에 노출시키고자minding-deep-learning.tistory.com 이 글은 위 링크의 크롤링 코드를 보완한 코드와 함께 어떻게 보완했는지에 대한 설명을 위한 글이다. 전체 코드 from selenium import webdriverfrom selenium.webdriver.chrome..
[Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기
·
Minding's Programming/Crawling
https://minding-deep-learning.tistory.com/180 [Python/Selenium] (업데이트)Selenium으로 KBO 경기 일정 크롤링하기2024.07.01 - [Minding's Programming/Knowledge] - [Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기 [Python/Selenium] Selenium으로 KBO 경기 일정 크롤링하기야구장 소개 홈페이지를 만드는 데 경기 일정도 한 페minding-deep-learning.tistory.com위 글은 본문의 코드를 보완한 코드이다. 야구장 소개 홈페이지를 만드는 데 경기 일정도 한 페이지에 보여주는 곳이 있으면 좋겠다고 생각이 들었다. KBO 홈페이지에 있는 경기 일정을 ..
[Python/Bleach] Bleach 라이브러리 이용해 HTML 태그 삭제하기
·
Minding's Programming/Crawling
네이버 뉴스 API를 통해 뉴스 데이터를 수집하다보니, 뉴스 제목에 해당하는 title에 HTML 태그가 그대로 들어와 문자열에 포함되는 경우가 있었다. 이 문자열 그대로 홈페이지에 노출할 예정이었다 보니, 해당 문자열을 필터를 통해 HTML 태그를 지울 필요가 있었다. 그럴때는 Bleach의 clean메서드를 이용하면 해결할 수 있다. from bleach import cleanarticle = '가나다라'print(clean(article, tags=[], strip=True))>>>'가나다라'