본문 바로가기
C5. 테스크 간 의존성 정의하기 5.1 기본 의존성 유형5.1.1 선형 의존성 유형명시적으로 테스크 의존성을 지정의존성 충족된 뒤 다음 태스크 실행다운스트림 태스크로 전달5.1.2 팬인/팬아웃 의존성두가지 소스에서 데이터가 정제되어 결합해야하는 테스크에서DummyOperator 사용from airflow.operators.dummy import DummyOperatorstart = DummyOperator(task_id='start')start >> [fetch_weather, fetch_sales][clean_sales, clean_weather] >> join_datasetsjoin_datasets >> train_model >> deploy_model![](https://velog.velcdn.com/images/annmunju/.. 2024. 6. 2.
C4. Airflow 콘텍스트를 사용하여 태스크 템플릿 작업하기 오퍼레이터의 역할작동 방법언제 어떻게 실행되는지원격 시스템과 통신하는 방법4.1 Airflow로 처리할 데이터 검사예시 : 위키피디아 페이지 뷰 수 수집뷰 증가 -> 긍정적 주식 전망 예측뷰 감소 -> 부정적 주식 전망 예측4.1.1 증분 데이터를 적재하는 방법 결정하기형식 gzip (전체 크기 50mb, 압축 풀면 200~250mb)시간당 페이지 수 집계도메인 코드 살펴보기4.2 태스크 콘텍스트와 Jinja 탬플릿 작업워크플로 첫 번째 버전4.2.1 오퍼레이터의 인수 템플릿 작업Jinja 템플릿 문자열 {{ }}print("Hello {{ name }}")모든 오퍼레이터 인수가 템플릿이 될 수 있는 것은 아님. 공식 문서 참고 (PythonOperator.template_fields)4.2.2 템플릿에.. 2024. 6. 2.
C3. Airflow의 스케줄링 3.1 예시: 사용자 이벤트 처리하기사용자 이벤트를 가져오고 통계 및 계산하기 + 스케줄링으로 매일 특정 기간의 변화를 비교하기3.2 정기적으로 실행하기3.2.1 스케줄 간격 정의하기dag = DAG( dag_id="02_daily_schedule", schedule_interval="@daily", # 매일 start_date=datetime(2024, 4, 1), # 4월 1일 이후 자정부터 시작 (4월 2일 00시) end_date=datetime(2024, 5, 1),)3.2.2 Cron 기반의 스케줄 간격 설정하기Cron 사용 예시0 * * * * = 매시간 정시 실행0 0 * * * = 매일 자정 실행0 0 * * 0 = 매주 일요일 자정에 실행0 0 1 * * = 매월 .. 2024. 6. 2.
C2. Airflow DAG의 구조 2.1 다양한 소스에서 데이터 수집2.1.1 데이터 탐색배경 : 로켓 뉴스 수집 프로그램 작성예정된 로켓 발사 데이터, 이미지 API2.2 첫 번째 Airflow DAG 작성Airflow에 매핑된 모형태스크를 나누는 기준은 때에 따라 다름. 2.2.1 태스크와 오퍼레이터 차이점오퍼레이터는 단일 작업을 수행할 수 있는 기능 제공.태스크는 오퍼레이터의 래퍼/매니저 역할을 함. 둘은 유사한 개념으로 혼용해서 사용2.2.2 임의 파이썬 코드 실행라이브러리import jsonimport pathlibimport airflowimport airflow.utilsimport requestsimport requests.exceptions as requests_exceptionsfrom airflow import DAG.. 2024. 6. 2.
C1. Apach Airflow 살펴보기 1.1 데이터 파이프라인 소개1.1.1 데이터 파이프라인 그래프방향성 비순환 그래프 DAG앞선 태스크가 완료되어야 뒤의 태스크 실행 가능순환 그래프의 경우, 상호 의존성이 있어 명확한 실행 경로 파악 불가1.1.2 파이프라인 그래프 실행그래프 안 태스크는 각각 개방된 상태, 이전 태스크가 완료되었는지 확인태스크 완료되면 다음 태스크를 대기열 추가그래프의 모든 태스크가 완료될 때 까지 실행1.1.3 그래프 파이프라인과 절차적 스크립트 파이프라인 비교개별적인 태스크로 병렬 구성이 가능하기 때문에, 가용 컴퓨팅 리소스를 효율적으로 활용 가능절차적 (모놀리식) 스크립트의 경우 중간 태스크가 실패하면 전체를 재실행 해야함.1.4 워크플로 매니저를 이용한 파이프라인 실행워크플로 관리 시스템의 주요 차이 정의 방식O.. 2024. 6. 2.
[4주차] ReAct Agent 만들기 [참고] langchain==0.0.352 @tool 데코레이터를 이용한 함수 작성 - Doc string을 도구 설명으로 사용하기 때문에 필히 작성 해야함. from langchain.tools import tool @tool def search(query: str) -> str: """Look up things online.""" return "LangChain" 프롬프트 작성 - 무료 프롬프트 공유 허브 : https://smith.langchain.com/ - 공식 문서 : https://docs.smith.langchain.com/overview LangSmith smith.langchain.com - 사용 방법 from langchain import hub obj = hub.pull("{Lan.. 2024. 4. 2.
<데이터 파이프라인 핵심 가이드> 02 최신 데이터 인프라 데이터 소스의 다양성 데이터 수집 도구 클라우드 데이터 웨어하우스와 데이터 레이크 모델링 도구 및 프레임워크 워크플로 오케스트레이션 플랫폼 소스 시스템 소유권 어디서 소스 시스템을 가지고 오는지에 따라 데이터 가용 범위가 달라짐 수집 인터페이스 및 데이터 구조 수집 인터페이스 Postgres, MySQL DB와 같은 애플리케이션 뒤 데이터베이스 REST API와 같은 시스템 상단의 추상화 계층 Apache Kafka같은 스트림 처리 플랫폼 로그, 쉼표로 구분된 값 (csv) 파일 및 기타 플랫 파일을 포함하는 공유 네트워크 파일시스템 또는 클라우드 스토리지 버킷 데이터 웨어하우스 또는 데이터 레이크 HDFS 또는 HBase 데이터베이스의 데이터 데이터 구조 REST API의 Json MySQL DB의 데.. 2024. 4. 1.
240322 Geeknews 외 - 모든 팀은 반드시 갈등을 겪게 된다. 모든 팀은 반드시 갈등을 겪게 된다 - 팀의 발달 4단계 | Disquiet* 지난주 작년에 첫 회사를 엑싯하신 한 대표님과 이야기를 나눴는데 창업이 육아와 정말 비슷한 점이 많다고 하셨다. 첫 아이를 기를때는 아이가 성장하는 과정에서 어떤 것을 기대해야 되는지 disquiet.io > Forming → Storming → Norming → Performing의 4단계 / 여기서 내가 속한 팀은 어느 단계쯤일까? > 아마도 Forming과 Storming 그 사이 어디쯤일 것 같다. 특히 이전 실수 부분을 공감하면서 보았다. 심리적 안정감을 느끼는 것이 우선이고 그 다음에야 질문과 의견을 낼 수 있을 것 같다. 조직 구성원들을 설득하는 과정과 테스크를 구체적으로 .. 2024. 3. 22.
240318 백코치 리더십 뉴스레터 리뷰 최인아 인터뷰 어른이 된 당신은 언제 성장한 것 같은가? 도전, 실패, 극복, 성취, 열정, 좌절, 숙련, 노하우, 책임, 갈등, 팀워크, 리더십…. 이런 걸 맛보면서 자란 것 같지 않나? 이것들은 다 어디에 있나? 놀랍게도 이 모두가 일에 들어 있다. 그러니까 일이란 생계를 해결하는 수단일 뿐 아니라 소중한 성장의 기회임에 틀림없다. 기업들은 자신들의 제품, 브랜드로 고객에게 어떤 경험을 선사할 것인지 고민한다. 우리 개인들도 이 고민을 해야 하지 않을까? 나는 일을 충분히 경험하고 있나? 월급 외에 일 속에 들어 있는 소중한 기회를 충분히 다 체험하고 있나? HR 관련 사설이나 컬럼이나 글들을 보면 최인아님을 많이 접할 수 있었다. 비교적 최근 나온 책인 를 읽으면서도 느낀 것이지만 일을 참 사랑했던.. 2024. 3. 18.
728x90