공부/데이터
-
[Airflow] Sensor공부/데이터 2021. 10. 31. 19:12
sensor는 1가지 작업을 수행하도록 설계된 특수한 operator입니다. 어떠한 작업(시간, 파일, 외부 이벤트 등)이 일어날 때까지 대기하다가 발생한다면 실행한 다음, 성공하여 downstream task가 실행될 수 있도록 합니다. sensor는 주로 idle 상태이기 떄문에 세 가지 다른 실행 모드가 있어 사용에 효율적입니다. poke(기본값): 전체 런타임 동안 worker 슬롯을 차지함 reschedule: 확인 중일 때만 worker 슬롯을 사용 smart sensor: 모든 실행을 일괄처리 하는 중앙 단일 버전 poke와 reschedule 모드는 sensor를 인스턴스화 할 때, 직접 구성할 수 있습니다. 둘 사이의 트레이드 오프는 대기 시간입니다. poke 모드는 매 초 확인할 때나 ..
-
[Airflow] Operator공부/데이터 2021. 10. 31. 19:12
operator는 DAG 내에서 task를 보다 쉽게 구현하도록 제공되는 템플릿입니다. with DAG("my-dag") as dag: ping = SimpleHttpOperator(endpoint="http://example.com/update/") email = EmailOperator(to="admin@example.com", subject="Update complete") ping >> email airflow 내에서 제공하는 operator 뿐만 아니라 provider에서 제공하는 operator도 존재합니다. BashOperator PythonOperator EmailOperator SimpleHttpOperator SqliteOperator MySqlOperator PostgresOperat..
-
[Airflow] Task공부/데이터 2021. 10. 31. 19:11
task는 airflow의 기본 실행 단위입니다. DAG 안에 task들을 나열한 다음, upstream, downstream으로 종속성을 정렬합니다. task는 3가지가 존재합니다. Operator: DAG를 구축하는데 자주 사용하는 작업 템플릿 클래스입니다. Sensor: 외부 이벤트가 발생할 때까지 대기하는 오퍼레이터의 하위 클래스입니다. TaskFlow: @task 데코레이터를 사용하여 사용자가 작성한 함수 코드를 task로 인식하게 만드는 기능입니다. 이 기능들은 전부 BaseOperator 클래스를 상속받아 구현되었으며 task와 operator는 기능이 유사하지만 별도로 구분하는 것이 좋습니다. operator와 sensor는 템플릿이고 task는 DAG 파일이 호출될 때 만들어 지는 개념입..
-
[Airflow] DAGs공부/데이터 2021. 10. 31. 19:08
DAG 선언 방법 context manager with DAG("my_dag_name") as dag: op = DummyOperator(task_id="task") class my_dag = DAG("my_dag_name") op = DummyOperator(task_id="task", dag=my_dag) decorator 2.0 이후 버전 @dag(start_date=days_ago(2)) def generate_dag(): op = DummyOperator(task_id="task") dag = generate_dag() @task 데코레이터와 함께 사용하면 코드가 깔끔해집니다. DAGS는 task없이 실행할 수 없습니다. task 의존성 표현 방법 task는 일반적으로 다른 task들과 의존성을..
-
Z 차트로 매출의 추이 확인하기공부/데이터 2021. 2. 28. 16:36
고객에게 제공하는 서비스, 상품, 콘텐츠 중에는 계절에 따라 매출이 변동하는 경우가 있습니다. Z 차트를 작성할 때는 월차매출, 매출누계, 이동년계 라는 3가지 지표가 필요합니다. z차트(https://kb.tableau.com/articles/howto/Create-Z-Chart-Numbers-Accumulated-Total-Numbers-Movement-Total-Numbers-Within-a-Year-in-a-View?lang=ko-kr) 월차매출 매출 합계를 월별로 집계합니다. 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월 1월 2월 3월 합계 합계 합계 매출누계 해당 월의 매출에 이전월까지의 매출 누계를 합하여 집계합니다 1월 2월 3월 4월 5월 6월 7월 8월 9월 1..
-
[Python] Numpy 배열 형태 변경하기공부/데이터 2020. 2. 19. 21:07
numpy 패키지는 배열의 형태를 손쉽게 변경해 주는 기능을 제공하고 있습니다. 1차원 배열을 2차원으로 바꿀 수 있으며 두 개의 배열을 1차원 또는 다차원 배열로 변형도 할 수 있습니다. 1. 배열의 형태 변경 reshape() 메소드를 사용하여 배열의 크기를 변경할 수 있습니다. import numpy as np np_array = np.arange(1, 10) print(np_array) reshaped = np_array.reshape((3, 3)) print(reshaped) # [1 2 3 4 5 6 7 8 9] # [[1 2 3] # [4 5 6] # [7 8 9]] 배열의 모양을 변경할 때, 베이스가 되는 배열의 크기가 딱 맞아야지만 동작하고 적거나 더 많이 변형하고자 하면 오류가 발생합니..