본문 바로가기

반응형

Data Mining & Distributed/Airflow

(21)
[ Airflow ] MySQL, PostgreSQL - 기본 Database 설정하고 생성하기 Apache Airflow 설치 후 데이터베이스를 초기화하고 설정하려면 다음과 같은 절차를 따라야 합니다. Airflow는 SQLite, MySQL, PostgreSQL 등을 지원하며, 기본적으로 SQLite를 사용하지만, 프로덕션 환경에서는 MySQL이나 PostgreSQL을 사용하는 것이 권장됩니다. 1. 데이터베이스 설치 및 설정PostgreSQL 또는 MySQL 설치데이터베이스가 설치되어 있지 않다면 아래 명령어를 통해 설치합니다.PostgreSQL 설치 sudo apt update sudo apt install postgresql postgresql-contribMySQL 설치 sudo apt update sudo apt install mysql-server데이터베이..
[ Airflow ] operator - 여러 개의 operator를 생성해서 병렬 처리 확인하는 Dag 등록하기 Airflow에서 부하 테스트를 수행하려면 DAG(Directed Acyclic Graph)를 생성하여 여러 작업(Task)을 병렬로 실행하는 워크플로를 설계할 수 있습니다. LocalExecutor는 병렬 처리를 지원하므로 부하 테스트를 수행하기에 적합합니다. 아래는 Airflow DAG 예제입니다. 1. Airflow 설정 확인airflow.cfg 파일에서 executor 설정이 LocalExecutor로 설정되어 있는지 확인하세요: [core] executor = LocalExecutorparallelism, dag_concurrency, max_active_runs_per_dag, max_active_tasks_per_dag 등을 설정하여 부하를 조정할 수 있습니다. 2. DAG 파일 생성/d..
[ Airflow ] db init - PostgreSQL 과 함께 초기 설정하기 데이터 베이스 설치 후 airflow.cfg를 설정을 해야 합니다.그 후 db init를 통해서 데이터 베이스를 사용해야 합니다. 1. airflow.cfg 생성 시점airflow.cfg 파일은 Airflow를 처음 설치한 뒤 airflow CLI를 실행하면 생성됩니다. 즉, airflow db init 명령을 실행하기 전에 CLI를 한 번 실행하면 기본 설정 파일이 생성됩니다.예를 들어:airflow versionairflow info위 명령을 실행하면 Airflow 설치 디렉토리에 airflow.cfg 파일이 자동으로 생성됩니다. 2. PostgreSQL 설정 선행 가능 여부airflow db init 이전에 PostgreSQL과 같은 외부 데이터베이스 설정을 할 수 있습니다. 이를 위해 airflo..
[ Airflow ] schedule - 일정 주기로 dag 실행하기 Airflow에서 특정 주기로 DAG을 실행하려면 schedule_interval 속성에 적절한 값을 설정해야 합니다. 아래는 요청하신 주기를 설정하는 방법입니다: 1. 2분에 한 번 실행크론 표현식:schedule_interval="*/2 * * * *"*/2: 매 2분마다 실행.예: 00:02, 00:04, 00:06, ... 2. 10분에 한 번 실행크론 표현식:schedule_interval="*/10 * * * *"*/10: 매 10분마다 실행.예: 00:10, 00:20, 00:30, ... 3. 2시간에 한 번 실행크론 표현식:schedule_interval="0 */2 * * *"*/2: 매 2시간마다 실행.0: 매 2시간마다 정확히 정각(분 0)에 실행.예: 02:00, 04:00, 06..
[ Airflow ] schedule - 스케쥴러 시간 설정하기 Apache Airflow에서 스케줄러의 시간 설정은 주로 DAG의 schedule_interval 속성을 통해 이루어지며, 이를 통해 워크플로가 언제 실행될지 제어합니다. 시간 설정에 사용되는 주요 규칙은 다음과 같습니다:1. schedule_interval 설정 형식schedule_interval은 DAG 실행 주기를 정의하며, 다양한 형식을 지원합니다.a) 크론 표현식 (Cron Expression)* * * * * 형식의 문자열로 주기적 실행을 정의.각 필드는 다음과 같이 해석됩니다:분 (minute): 0–59시간 (hour): 0–23일 (day of month): 1–31월 (month): 1–12요일 (day of week): 0–7 (0과 7은 일요일)예: "0 9 * * *": 매일 오..
[ Airflow ] Celery, Dask, Kubernetes, Ray - Executor 비교 설명하기 분산 작업을 관리하고 실행하기 위한 프레임워크 및 도구인 Celery, Dask, Kubernetes, Ray는 각기 다른 사용 사례와 아키텍처에 최적화되어 있습니다. 이들의 주요 특징과 차이점을 비교 설명하겠습니다.1. Celery주요 사용 사례:주로 비동기 작업 처리(asynchronous task queue) 및 백그라운드 작업 실행에 사용.일반적인 웹 애플리케이션에서 작업 대기열(task queue)로 활용.특징:단순하고 사용하기 쉬운 API.브로커(예: RabbitMQ, Redis)를 사용하여 작업을 큐에 넣고, 워커(worker)가 작업을 소비.작업의 성공/실패 상태를 추적 가능.Python 중심이지만 다른 언어와도 연동 가능.확장성:수평 확장 가능하지만 대규모 데이터 처리는 비효율적.장점:직..
[ Airflow ] 버전별 특징 알아보기 Apache Airflow는 워크플로우와 데이터 파이프라인을 작성하고 모니터링하는 데 사용되는 오픈 소스 도구입니다. 버전 별로 주요 변경 사항과 특징은 다음과 같습니다.1. Apache Airflow 1.10.x지원 Python 버전: Python 2.7 및 Python 3.5 이상주요 특징:초기 단계에서의 안정된 기능 제공기본적인 태스크 스케줄링 및 DAG 관리 가능Executor로 LocalExecutor, SequentialExecutor, CeleryExecutor 지원Python 2.7 지원(마지막 버전)한계:Python 2.7 지원 종료 이후 유지보수가 중단됨DAG 관리와 UI의 한계2. Apache Airflow 2.x지원 Python 버전: Python 3.6 이상주요 특징:스케일링 개선..
[ Airflow ] Celery, Ray - 비교 설명하기 Apache Airflow에서 Celery와 Ray는 각각 분산 실행기를 구현하기 위해 사용할 수 있는 도구로, 작업 분산 처리 및 병렬화에 접근하는 방식이 다릅니다. 아래는 Celery와 Ray의 주요 차이점과 각각의 특징을 비교한 설명입니다.1. Celery특징:분산 태스크 큐 기반 프레임워크: Celery는 태스크 큐(queue)를 기반으로 분산 작업을 관리합니다.태스크 지향 설계: 각 작업이 독립적으로 큐에 들어가며, 워커(worker)가 이를 소비하는 구조입니다.Airflow에서의 역할:CeleryExecutor를 사용하여 DAG 내 태스크를 여러 워커 노드에서 병렬로 실행합니다.RabbitMQ 또는 Redis를 메시지 브로커로 사용합니다.장점:오래된 프로젝트로, 매우 안정적이고 많은 커뮤니티 ..

반응형