데이터 엔지니어링 (23) 썸네일형 리스트형 [Airflow] 증기기관에 필적하는 dataset에 대하여 (inter-DAG) (1) 이런식으로 T 1,2,3이 끝나고 SQL이 업데이트되면, 그 값을 T A,B,C가 받아야 하는 상황이라면, SQL과 TA 사이에 Trigger Operator, Sensor를 활용해서 이를 트리거 하는 방법이 일반적이었음. 그러나 이게 좀 여러모로 복잡하고 어려움. 이걸 쉽게 할수 있게 해주는 녀석이 있다. (2) 또한 이 일련의 흐름에서 하나의 DAG에 각기 다른 팀이 2개씩 맡아야한다고 하면, 서로 여러가지 부분에서 상충될 여지가 있다. 그렇기 때문에 하나의 큰 DAG이 아닌, 세개의 micropipeline으로 세분화하면 좋은데, 이 작업을 쉽게 할 수 있게 하는 녀석이 있다. DATASETdataset은 2.4 버전에 도입된 개념으로, DAG 간의 의존성을 쉽게 관리할 수 있게 하는 기능.. [Airflow] 비로소, DAG 작성하고 테스트해보기 DAG 작성 기본 틀DAG를 짜보자. DAG를 정의하는 기본적인 형태는 아래와 같음.with DAG('user_processing', start_date=datetime(2023,1,1), schedule_interval='@daily', catchup=False) as dag: None with A as B: B라는 변수명에 A를 안전하게 할당하고 싶을 때 사용하는 python 문법이라고 함 - context manager.파라미터에 들어가는 건, 유일한 이름이어야 하는 이름과, 시작일자, 인터벌 주기, catchup 변수. 이제 저 None 자리에 저 DAG에 해당되는 task들을 넣어주면 된다.기본적으로 하나의 task는 하나의 operator에 할당하고, 하나의 목적만을 할당해야 함.서로 다.. [Airflow] Airflow UI에 대한 간단한 정리 이게 일반적인 airflow의 DAG 대시보드.다른 건 어려울 게 없고, runs와 recent tasks가 차이를 가지는데,runs는 DAG run이라는 의미. 특정 시각에 실행된 DAG의 인스턴스.airflow 스케줄러가 DAG을 주기적으로 스캔하여, 실행 시점에 DAG run을 생성함. recent tasks는 해당 DAG로부터 생성된 tasks들을 의미하는 것임.그니까 DAG runs는 전체에 대한 이야기, Recent Tasks는 각각의 task instance에 대한 이야기. 하나를 pause untoggle해서 돌려보고, 그 이름을 누르면 돌린 결과물이 뜬다.기본으로 뜨는 화면인데, grid 뷰.직관적이지 않은 부분은 아직까지 없다. graph 뷰는 이런식. 위에 hover 해보면 관련 정.. [Airflow] airflow 띄워보기 with/without 도커! Run Airflow in Python Environment기본적으로 윈도우 환경에서는 VSC에서 리눅스 커맨드 사용 어려움 => 그래서 WSL 활용함.globalman, globalman패키지 충돌 방지 및 프로젝트를 가상으로 독립적으로 관리하기 위해 python의 venv를 활용함.이 가상환경에 들어가려면 source py_env/bin/activate 커맨드로 입장하면 됨.이 가상환경에서 나가려면 deactivate 커맨드로 퇴장하면 됨.Apache Airflow를 로컬환경에 다운로드받음. 시간이 꽤나 걸림. 대략 5분 소요됨.pip install 'apache-airflow==2.10.4' \ --constraint "https://raw.githubusercontent.com/apache/air.. [Airflow] Airflow가 뭘까-요? What is Airflow?Apache Airflow는 워크플로(Workflow)와 데이터 파이프라인을 자동화하고 스케줄링하는 도구.즉, 데이터가 이동하는 과정을 정의하고, 실행 순서를 조정하고, 모니터링하는 역할을 함. Why Airflow?1 Workflow Organization: 태스크들이 순서에 맞게 진행되게끔 도와줌2 Visibility: 동시다발적으로 여러개의 워크플로우가 있을 때, 전체를 다 파악하고 문제를 해결하기 용이.3 Flexibility and Scalability: 동시에 여러개의 data source와 툴에 연결 가능하고, 필요에 의해 점진적으로 DB 쿼리, AI 모델, 데이터 퀄리티 체크, API 갖다쓰기 등의 확장 및 개진이 가능함. 또한, python based라 진입.. [견고한] Chapter 2: 데이터 엔지니어링 수명 주기 + 데이터 아키텍쳐 ※ 조 라이스와 맷 하우슬리가 공동으로 집필한 '견고한 데이터 엔지니어링'을 공부하면서, 중요한 내용들을 기록해둔 공간입니다. 데이터 엔지니어로써 중요하다고 생각되는 개념들에 대해 자체적으로 공부하며 정리한 글입니다. 데이터 엔지니어링 수명 주기 기본적으로 "데이터 엔지니어링"이라는 분야 자체가 하는 일은, 데이터분석가 혹은 데이터 사이언티스트 등을 위시한 사내의 다른 소비계층이 활용할만한 데이터를 추출하고, 소비자의 입맛에 맞게 가공하고, 적재하여 서빙(넘겨주는 것)하기까지를 일컫는다. 그러니까 데이터 엔지니어링 수명 주기라 함은, 생성 - 추출 - 가공 - 적재 - 서빙의 다섯 단계를 기본적으로 지난다. 각 단계의 위치가 바뀔수도, 생략될 수도 있다. 실무에서는 이게 꼬이고, 반복되고, 겹치거나 혹은.. [견고한] Chapter 1: 데이터 엔지니어링 상세 (및 용어정리) ※ 조 라이스와 맷 하우슬리가 공동으로 집필한 '견고한 데이터 엔지니어링'을 공부하면서, 중요한 내용들을 기록해둔 공간입니다. 데이터 엔지니어로써 중요하다고 생각되는 개념들에 대해 자체적으로 공부하며 정리한 글입니다. 데이터 엔지니어링이란?데이터 엔지니어링은 간단히 정리하면, 시중에 나와있는 정보를 뽑아와서 (추출 - extract), 우리가 필요한 형태로 조작해서 (가공 - transform), 데이터 분석가 혹은 데이터 과학자가 활용할 수 있게 전달 (저장 - load) 하는 직군이다. 데이터 과학의 업스트림에 위치하며, 이 일련의 과정을 ETL이라고 부르기도 한다. 그래서 원천 시스템에서 데이터를 가져오는 것부터 시작해 분석 또는 머신러닝과 같은 사용 사례에 데이터를 제공하는 것까지를 해당 데이터의.. 이전 1 2 3 다음