[Airflow] DAG Objuect 작성 방법
·
개발중/AirFlow
DOG 예제from airflow import DAGfrom airflow.operators.bash import BashOperatorfrom datetime import datetime, timedelta# default_args 설정default_args = { 'owner': 'airflow', 'depends_on_past': False, 'email': ['example@example.com'], 'email_on_failure': True, 'retries': 3, 'retry_delay': timedelta(minutes=5), 'start_date': datetime(2023, 9, 1),}# DAG 정의with DAG( dag_id='examp..
[Airflow] DAG (Directed Acyclic Graph) 란 ?
·
개발중/AirFlow
🟡 특징Airflow의 핵심 개념으로, 작업의 흐름을 나타내는 그래프 구조입니다. Directed Acyclic Graph 라는 이름에서 알 수 있듯이, DAG는 방향성이 있는 그래프이며, 순환(cycle)이 없는 구조입니다.이 구조는 작업(Task) 간의 의존 관계를 정의하고, 어떻게 순차적으로 실행되는지를 결정합니다.DAG는 작업 간의 흐름과 의존성을 정의하는 데 사용되며, 각 작업은 테스크(Task) 로 표현됩니다.DAG 자체는 작업이 어떻게 서로 연결되어 있는지를 나타내고, Airflow는 이 DAG를 따라 작업을 실행합니다. 🟡 기본 구성 요소⚙ 작업(Task)DAG에서 실행해야 하는 하나의 개별 작업을 의미합니다.Python 함수, SQL 쿼리, Shell 명령어 등 다양한 형태로 정의할 ..
[Airflow] Apache Airflow 특징
·
개발중/AirFlow
Apache Airflow 특징Apache Airflow는 워크플로우 관리 및 스케줄링 플랫폼으로, 데이터 파이프라인의 실행 및 자동화를 지원합니다. 주로 복잡한 데이터 파이프라인, ETL(Extract, Transform, Load) 작업을 관리하는 데 사용되며, 작업 간의 종속성을 쉽게 정의하고 실행할 수 있는 환경을 제공합니다.⚙ DAG (Directed Acyclic Graph) 기반 워크플로우Airflow에서 워크플로우는 **DAG(Directed Acyclic Graph, 방향성 비순환 그래프)**로 정의됩니다. DAG는 각 작업(Task)이 어떤 순서로 실행되어야 하는지 정의한 구조로, 작업 간의 종속성을 명확히 관리할 수 있습니다.⚙ Python으로 정의Airflow 워크플로우는 Pytho..
[R] dplyr 패키지
·
직장인 대학원/R
✅ 기본 함수 요약1. select()열(컬럼) 선택exam %>% select(class, english) 2. filter()행(조건) 필터링exam %>% filter(class == 1) 3. arrange()정렬 (오름차순/내림차순)exam %>% arrange(id) # 오름차순exam %>% arrange(desc(science)) # 내림차순 4. mutate()새로운 열 추가exam %>% mutate(total = english + science)exam %>% mutate(mean = total / 2)exam %>% mutate(test = ifelse(mean >= 60, "pass", "fail"))5. group_by() + summarise..
[R] 파이프 (pipe)
·
직장인 대학원/R
🧩 파이프(pipe)란?앞에서 만든 결과를 다음 함수에 넘기는 연결 도구! 원래는 이렇게 써야 하던 코드가...function1(function2(function3(data)))파이프를 쓰면 이렇게 깔끔하게 바뀜!data %>% function3() %>% function2() %>% function1() 👆 위처럼 코드를 위에서 아래로 읽기 쉽게!, R의 문장을 자연스럽게 연결하는 느낌 ✅ 사용 방법 요약%>% 연산자: 앞의 데이터를 뒤 함수의 첫 번째 인자로 넣음tidyr 또는 dplyr 패키지 필요install.packages("tidyr") library(tidyr) 👀 예시 비교🔹 Without pipingfunction(dataframe, arg2, arg3)🔹 With p..
[R] 데이터 프레임 (Data Frame)
·
직장인 대학원/R
오늘 수업에서는 드디어 R에서 가장 많이 쓰인다는 **데이터 프레임(data.frame)**을 배웠다.R의 엑셀 같기도 하고, 판다스의 DataFrame과도 비슷해서 금방 친숙해졌다! ✅ 데이터 프레임이란?R에서 가장 일반적이고 표준적인 데이터 저장 방식엑셀 표처럼 생긴 구조!내부적으로는 같은 길이의 벡터들을 묶은 리스트열마다 타입이 다를 수 있어서 분석에 최적화됨 ✨ 데이터 프레임 생성하기 x id name1 1 Kim2 2 Lee3 3 Park4 4 Choi 🧠 실습하면서 배운 팁들!📌 문자열 벡터는 자동으로 Factor로 바뀜 dat.1 'data.frame': 3 obs. of 2 variables: $ x: int 1 2 3 $ y: Factor w/ 3 levels ..
[R] 범주형 데이터 (Factor)
·
직장인 대학원/R
오늘 수업에서는 R에서 범주형 데이터, 즉 Factor에 대해 배웠다.처음엔 그냥 문자 벡터랑 뭐가 다르지? 싶었는데, 데이터에 의미 있는 "범주"를 부여하는 도구라는 걸 알고 꽤 유용하다고 느꼈다! ✅ Factor란?범주형 데이터를 표현하는 특수한 데이터 타입숫자나 문자열로만 구분하기보다, **라벨(label)**을 붙여서 더 자기 설명적인 self-describing 데이터를 만들 수 있음예시:성별: "남", "여"만족도: "매우좋음", "좋음", "보통", "나쁨"...혈액형: "A", "B", "AB", "O" ✨ Factor 생성 기본 x [1] yes yes no yes noLevels: no yes 자동으로 알파벳 순서로 level 정렬됨 (no, yes)factor()는 문자 벡터 → 범주..
[R] 리스트 (List)
·
직장인 대학원/R
오늘 수업에서는 드디어 R에서 정말 유용한 리스트라는 걸 배웠다.벡터나 행렬은 한 가지 타입만 저장할 수 있었지만,리스트는 숫자, 문자열, 논리값, 심지어 또 다른 리스트까지 다 담을 수 있다! 🧱 리스트란?다양한 자료형을 함께 담을 수 있는 특수한 형태의 벡터각각의 원소에 이름을 붙일 수도 있음리스트는 list() 함수로 생성한다x [[1]] 1[[2]] "a"[[3]] TRUE[[4]] 1+4i ✨ 리스트에 이름 붙이기 + 중첩 리스트Hong Hong이라는 리스트에 이름이 붙은 정보들이 잘 정리되어 있는 걸 확인할 수 있다! 🔍 리스트 구조 보기str(Hong)List of 6 $ kor.name : chr "홍길동" $ eng.name : chr "Gil-dong" $ age..