전체 보기 32

[Airflow] 기반의 데이터 파이프라인(3) - 스케줄링

Airflow는 DAG에 적절한 값을 통해 스케줄 간격을 정의하여 정기적으로 실행할 수 있다. DAG를 초기화할 때 schedule_interval을 설정하여 스케줄 간격을 정의할 수 있다. 해당 값의 default는 None이며 DAG가 예약 실행되지 않고, UI 또는 API를 통해서 수동으로 트리거 된다. 1. 스케줄 간격 및 시작 날짜 정의 import datetime as dt # ...생략... dag=DAG( dag_id="schedule_examples", schedule_interval="@daily", # 매일 자정에 실행되도록 DAG를 스케줄하는 매크로 start_date=dt.datetime(2023.1.1), # 2023.1.1 부터 DAG 실행 스케줄을 시작할 날짜/시간 end_d..

[Airflow] 기반의 데이터 파이프라인(2) - Airflow 설치 with Docker

Airflow를 처음 접하는 저는 Window 환경에서 설치가 안된다는 사실이 책에 없어 혹시 누군가가 설치를 진행하다 포기하는 일을 방지하기 위해 작성합니다. Airflow 내부에 pwd 라이브러리등을 사용하기에 Window 환경에서 설치는 불가능 합니다. 또한 Docker가 PC에 설치되어 있어야 합니다. 1. docker-compose.yaml 다운로드 # 윈도우 wget -Uri https://airflow.apache.org/docs/apache-airflow/2.3.2/docker-compose.yaml -OutFile ./docker-compose.yaml # 맥, 리눅스 curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.3.2/doc..

[Airflow] 기반의 데이터 파이프라인(1)

Apache Airflow 기반의 데이터 파이프라인을 읽고 정리하였습니다. Airflow 1. 파이썬 코드로 유연한 파이프라인 정의 Airflow를 사용하면 파이프라인이나 워크플로 태스크를 방향성 비순환 그래프(DAG)로 정의할 수 있다. Airflow는 파이썬 스크립트로 DAG의 구조를 설명하고 구성하기 때문에 각 DAG 파일은 주어진 DAG에 대한 태스크 집합과 태스크 간의 의존성을 기술하고 실행 방법, 시간 등을 정의한다. 2. 파이프라인 스케줄링 및 실행 DAG로 파이프라인 구조를 정의하고 나면 Airflow가 파이프라인을 언제 실행할 것인지 각각의 DAG 실행 주기를 정의할 수 있다. 이를 통해 매시간, 매일, 매주 등의 DAG를 실행하거나 더 복잡한 스케줄을 사용할 수 있다. 3. 구성 Air..

[프로그래머스] 문자열 압축(Python)

최근 프로젝트 마무리 및 이직 준비 등으로 코테를 다시 볼 일이 생겨 개인 프로젝트들과 블로그 작성을 잊고 있다가 취준때 풀었던 코드와 비교하는게 재미있어 기록용으로 남겨놓기 위해 작성했습니다. https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3년전 코드 def solution(s): if(len(s) == 1): return 1 len_list = [] count = 1 for i in range(1, round(len(s))): count ..

Python/알고리즘 2023.09.27

[도서] 견고한 데이터 엔지니어링(1) - 데이터 엔지니어링 수명 주기란?

해당 글은 견고한 데이터 엔지니어링을 읽고 정리하였습니다. 더 자세한 내용은 도서에서 확인 부탁드립니다. 데이터 엔지니어링 수명 주기 데이터 엔지니어링 수명주기란? 수명 주기 데이터 생성 > 데이터 저장 > 데이터 수집 > 데이터 변환 > 데이터 서빙 드러나지 않는 요소 보안, 데이터 관리, 데이터 옵스, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링 1. 데이터 생성 데이터 생성 시 고려 사항 데이터 원천의 본질적인 특징 (원천은 애플리케이션인지, IoT장치의 스웜인지 등) 원천 시스템에서 데이터는 어떻게 유지되는지 (데이터의 보존기간) 데이터의 생성속도 ( 시간당 몇 GB가 생성되는가) 출력 데이터에서 어느 정도의 일관성을 기대할 수 있는가? (예상하지 못한 출력값, 잘못된 데이터 포맷, 데..

[Linux] CentOS 7 초기설정(4)

2023.09.06 - [인프라/Linux] - [Linux] CentOS 7 설치(3) [Linux] CentOS 7 설치(3) 2023.09.06 - [인프라/Linux] - [Linux] CentOS 7 부팅 USB 생성(2) [Linux] CentOS 7 부팅 USB 생성(2) 0. USB 준비 가장 먼저 USB를 준비해줍니다. 저는 아무것도 없는 USB 8GB를 사용하였습니다. centos-minimal인경우 iso 파 dog-foot-writen.tistory.com 이전 글을 보고와 주세요 yum install 해당 글은 https://ko.linux-console.net/?p=2246#gsc.tab=0 위 경로를 참고하였습니다. CentOS 7의 초기 서버 설정 및 구성 CentOS 7의 ..

인프라/Linux 2023.09.12

[Linux] CentOS 7 설치(3)

2023.09.06 - [인프라/Linux] - [Linux] CentOS 7 부팅 USB 생성(2) [Linux] CentOS 7 부팅 USB 생성(2) 0. USB 준비 가장 먼저 USB를 준비해줍니다. 저는 아무것도 없는 USB 8GB를 사용하였습니다. centos-minimal인경우 iso 파일은 1GB 미만인것도 있지만 centos-everyting인경우 iso 파일이 10GB 정도 되는것도 있어 dog-foot-writen.tistory.com 이전 글을 먼저 보고와 주세요 저는 개인 서버에 설치하였기 때문에 해당 과정을 캡처할 수 없어 virtual box로 캡처하여 진행하였습니다. 바이오스 설정 창에서 지난 포스팅에서 만든 부팅 usb를 우선 순위로 부팅한 이후 따라와 주시면 됩니다. In..

인프라/Linux 2023.09.06

[Linux] CentOS 7 부팅 USB 생성(2)

0. USB 준비 가장 먼저 USB를 준비해줍니다. 저는 아무것도 없는 USB 8GB를 사용하였습니다. centos-minimal인경우 iso 파일은 1GB 미만인것도 있지만 centos-everyting인경우 iso 파일이 10GB 정도 되는것도 있어 원하시는 파일에 맞추어 준비해주시면 될것 같습니다. 1. iso파일 준비 iso 파일이란 광학 디스크의 압축 파일 입니다. 저희는 CentOS를 설치할 예정이기 때문에 CentOS 디스크의 모든 파일들을 포함한 하나의 파일 혹은 CD, DVD 카피본 이라고 보시면 될것 같습니다. iso 설치 파일 경로 https://www.centos.org/download/ Download Home Download Architectures Packages Others ..

인프라/Linux 2023.09.06

[Hive] Hive-맵리듀스(2)

맵리듀스 맵리듀스는 큰 데이터를 다루는 job을 여러 태스크로 나누어 다수의 서버로 구성된 클러스터에서 병렬 처리하는 연산 모델이다. 맵리듀스는 맵과 리듀스라는 두 개의 기본 데이터 변환 연산에서 나왔다. 맵(Map) : 컬렉션의 모든 원소를 한 형태에서 다른 형태로 변환한다. 이때 입력된 key-value쌍은 0~N개의 key-value로 변환되며 같은 키를 가진 모든 key-value 쌍은 컬렉션의 형태로 동일한 리듀스 함수로 전달된다. 리듀스(Reduce) : 리듀스 함수는 값 컬렉션을 합계, 평균과 같은 값으로 변경하거나 다른 컬렉션으로 변경하여 최종 key-value쌍을 만든다. 하둡 인프라에서는 잡을 수행하기위해 많은 일을 처리하는데 수행되는 잡을 어떻게 맵-리듀스 태스크로 나누어 수행할지 결..