본문 바로가기

Data Engineering

(8)
[Airflow Master Class] 템플릿 변수 오늘은 Airflow에서 사용 가능한 템플릿 변수들에 대해 알아보도록 하겠다. 그 전에 "Jinja 템플릿"이란 무엇인지부터 알아보자! Jinja 템플릿이란 파이썬 기반 웹 프레임워크(Flask, Django)에서 주로 사용하며, HTML 템플릿 저장 후에 화면에 보여질 때 실제 값으로 변환해서 출력해주는 역할을 한다. Airflow에서 Jinja 템플릿을 사용하는 방법은 매우 간단하다. Operator 파라미터 입력 시, 아래와 같이 중괄호를 2개 이용하면. Airflow에서 기본적으로 제공하는 변수들을 치환된 값으로 넣어줄 수 있다. ↓↓↓↓↓↓↓↓↓↓ ex) {{ data_interval_start }} Airflow에서 기본적으로 제공하는 템플릿 변수들에 대한 공식 문서가 있으니 참고하길 바란다...
[Airflow Master Class] Cron 스케줄 이번 포스팅에서는 Cron 스케줄의 기본 개념에 대해 간단하게 다뤄보고자 한다. 우선 Cron 스케줄을 정의하면 다음과 같다. "Task가 실행되어야 하는 시간(주기)을 정하기 위한 다섯 개의 필드로 구성된 문자열""{분} {시} {일} {월} {요일}"의 형태로 사용!! 기본적으로 위와 같은 형태로 사용하며, 각 필드에는 숫자 뿐만 아니라 특수문자도 들어갈 수 있다. Cron 스케줄에서 사용 가능한 특수문자는 아래와 같다. 특수문자의미*모든 값-범위 지정,여러 값 지정/증가 값 지정L마지막 값 ({일}, {요일}에만 설정 가능) * {일}에 L 입력 시, 해당 월의 마지막 일을 의미함 * {요일}에 L 입력 시, 토요일을 의미함#몇 번째 요일인지 지정 그럼 이제 다양한 예시를 통해 Cron 스케줄을 어..
[Airflow Master Class] Docker 및 Airflow 설치 이번 포스팅에서는 Docker 및 Airflow를 설치하는 방법에 대해 정리해 보겠다. 그 전에 먼저 Docker(도커)란 무엇인지부터 간략하게 알아보자. Docker란 리눅스 내 가상화 관련 커널을 활용하여 어플리케이션을 독립적인 환경에서 실행시켜주는 기술로, Guest OS가 존재하는 가상화 서버(VM; Virtual Machine)와 달리 Docker는 Guest OS가 없기 때문에 경량화된 가상화 서버라고 볼 수 있다. 음... 이렇게만 적어 놓고 보니 무슨 말인지 통 이해가 안 간다;; (Docker라는 개념을 처음 접하는 나 같은 사람들은 더더욱 이해가 안 갈 것으로 생각됨..) 이해를 돕기 위해 아래의 그림을 살펴보자. 먼저 가상화 VM은 완전히 독립적인 환경에서 구동된다는 장점이 있으나, ..
[Airflow Master Class] WSL 설치 & 리눅스(Linux) 기본 명령어 WSL이란 Windows Subsystem for Linux의 줄임말로 Windows에서 리눅스 환경을 실행할 수 있게 해주는 기능이라고 보면 된다. Airflow는 Windows에 직접 설치가 불가능하기 떄문에 WSL 설치가 필수적인데, 여유가 되는 분들은 가상화 VM(Virtual Machine) 혹은 AWS, GCP와 같은 클라우드 서비스를 활용해서 Airflow를 설치해도 된다. WSL 설치 방법은 간단하다. 본인의 Windows가 10 버전 2004 이상 또는 Windows 11 버전인지 먼저 체크한 뒤, PowerShell을 관리자 권한으로 실행해서 "wsl --install" 명령어를 통해 쉽게 설치할 수 있다. (처음 설치를 하면 UNIX username과 password를 설정하라고 뜰텐..
[FastCampus-DE] 4. Hadoop & HDFS 이번 포스팅에서는 Hadoop의 각 버전 별 특징과 HDFS에 대해 다뤄보도록 하겠다. 우선 현재 Hadoop은 v3까지 나왔으며, 간단하게 각 버전 별 특징에 대해 살펴보면 다음과 같다. Hadoop v1 HDFS(분산 저장)과 MapReduce(병렬 처리)로 구성됨 Hadoop v2 Job Tracker의 병목 현상을 제거하기 위해, YARN 아키텍처를 도입함 클러스터 관리: Resoure Manager, Node Manager 작업 관리: App Master, Container Hadoop v3 Erasure Coding 지원 기존의 블록 복제를 대체하는 방식으로 HDFS 사용량 감소 YARN 타임라인 서비스 v2 도입 JAVA8 지원 NameNode 이중화 기능 강화 다음으로 HDFS에 대해 알아..
[FastCampus-DE] 3. 빅데이터 플랫폼과 Hadoop Ecosystem 이번 포스팅은 빅데이터 플랫폼과 Hadoop Ecosystem에 대해 다뤄보도록 하겠다. Hadoop 이란 무엇인지? Hadoop 이란 여러 대의 컴퓨터를 클러스터화하고, 대용량 데이터를 클러스터에서 병렬로 동시에 처리하여 처리 속도를 높이는 것을 목적으로 하는 분산 처리 오픈소스 프레임워크이다. Hadoop을 구성하는 요소는 다음과 같이 크게 3가지로 분류할 수 있다. 분산 파일 시스템 (HDFS) 분산 저장을 처리하기 위한 모듈 여러 개의 서버를 하나의 서버처럼 묶어서 데이터를 저장 리소스 관리자 (YARN) 병렬 처리를 위한 클러스터 자원 관리 및 스케줄링 담당 분산 데이터 처리 (MapReduce) 분산되어 저장된 데이터를 병렬 처리할 수 있게 해주는 분산 처리 모듈 Hadoop Ecosystem..
[FastCampus-DE] 2. 데이터 파이프라인 이번 포스팅에서는 데이터 파이프라인에 대해 알아보도록 하겠다. What is Data Pipeline? 데이터 파이프라인이란 무엇일까? 간단히 말하면 다양한 소스에서 데이터를 변환하고 옮기는 일련의 과정을 구성한 시스템이라고 보면 되겠다. 그렇다면 데이터 파이프라인은 왜 필요할까? 데이터 파이프라인을 구성함으로써 데이터 기반의 의사결정을 지원할 수 있을 뿐만 아니라, 데이터 기반의 애플리케이션을 개발하는 데에도 큰 도움이 된다. 그리고 이러한 데이터 파이프라인은 "빅데이터 아키텍처" 설계에 기반하여 구축된다. 이와 같은 데이터 파이프라인을 구축하는 직무가 바로 "데이터 엔지니어" 이다! 지금부터 데이터 파이프라인 구축에 사용되는 각각의 용어들이 무엇을 의미하는지 한 번 살펴보도록 하겠다. ETL "Ext..
[FastCampus-DE] 1. 빅데이터 플랫폼 & 아키텍처 이번 포스팅에서는 빅데이터란 무엇인지 알아보고, 나아가 빅데이터 플랫폼과 빅데이터 아키텍처에 대한 내용도 정리해 보도록 하겠다. "빅데이터란 무엇일까?" 빅데이터란 기존에 존재하는 데이터 처리 응용 소프트웨어로는 처리할 수 없을 만큼 "방대한 양의 데이터"를 의미한다. 뿐만 아니라 빅데이터란 데이터로부터 가치를 추출하고 결과를 "분석하는 기술"로도 그 의미를 갖는다. "빅데이터 플랫폼, 빅데이터 아키텍처?" 우선 플랫폼이란 많은 사람들이 쉽게 이용할 수 있고, 다양한 목적의 비즈니스가 이루어지는 공간이라고 할 수 있겠다. 빅데이터 플랫폼은 "빅데이터 + 플랫폼"의 개념으로, 빅데이터 수집부터 저장/처리/분석 등 전 과정을 통합적으로 제공하여 해당 기술들을 잘 사용할 수 있도록 준비된 공간이라고 볼 수 있..