전체 글

愚公🏃移山⛰️
Data Engineering/실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트

[4주차] Airflow Deepdive - Airflow로 데이터 파이프라인 만들기 (1)

Hello World 예제 프로그램, Hello World 살펴보기 프로그램을 설명하고 Web UI와 터미널에서 실행해 보자 ● 2개의 태스크로 구성된 데이터 파이프라인 (DAG) ○ print_hello: PythonOperator로 구성되어 있으며 먼저 실행 ○ print_goodbye: PythonOperator로 구성되어 있으며 두번째로 실행 dag = DAG( dag_id = "helloWorld", start_date = datetime(2022,6,15), catchup=False, tags=['example'], schedule = '0 2 * * *', default_args=default_args ) Operators - PythonOperator ● Airflow Python Oper..

Data Engineering/실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트

[4주차] 데이터베이스 트랜잭션

트랜잭션 이해하기, DB를 사용한다면 꼭 알아야하는 트랜잭션에 대해 이해해보자 트랜잭션이란? ● Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법 ○ https://postgresql.kr/docs/9.2/tutorial-transactions.html ○ BEGIN과 END 혹은 BEGIN과 COMMIT 사이에 해당 SQL들을 사용 ○ ROLLBACK ● Transaction Isolation Level: “Read Committed”가 디폴트 세팅 트랜잭션 구현방법 (1) ● 두 가지 종류의 트랜잭션이 존재 ○ 레코드 변경을 바로 반영하는지 여부. autocommit이라는 파라미터로 조절가능 ● autocommit=True ○ 기본적으로 모든 SQL statement가 ..

Data Engineering/실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트

[3주차] Airflow

Airflow 소개, 가장 많이 사용되는 데이터 파이프라인 관리 / 구현 프레임워크인 Airflow에 대해 알아보자 Airflow 소개 (1) ● Airflow는 파이썬으로 작성된 데이터 파이프라인 (ETL) 프레임워크 ○ Airbnb에서 시작한 아파치 오픈소스 프로젝트 ○ 가장 많이 사용되는 데이터 파이프라인 관리/작성 프레임워 ● 데이터 파이프라인 스케줄링 지원 ○ 정해진 시간에 ETL 실행 혹은 한 ETL의 실행이 끝나면 다음 ETL 실행 ○ 웹 UI를 제공하기도 함 Airflow 소개 (2) ● 데이터 파이프라인(ETL)을 쉽게 만들 수 있도록 해줌 ○ 다양한 데이터 소스와 데이터 웨어하우스를 쉽게 통합해주는 모듈 제공 ○ 데이터 파이프라인 관리 관련 다양한 기능을 제공해줌: 특히 Backfill..

Data Engineering/실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트

[3주차] ETL

데이터 파이프라인이란? 데이터 파이프라인 혹인 ETL로 알려진 프로세스가 구체적으로 무엇인지 알아보자 용어 설명 : ETL ● ETL: Extract(수집), Transform(변환) and Load(적재) ● Data Pipeline, ETL, Data Workflow, DAG ○ ETL (Extract, Transform, and Load) ○ Called DAG (Directed Acyclic Graph) in Airflow, Airflow에선 DAG라고 부른다. ● ETL vs ELT ○ ETL: 데이터를 데이터 웨어하우스 외부에서 내부로 가져오는 프로세스 ○ ELT: 데이터 웨어하우스 내부 데이터를 조작해서 (보통은 좀더 추상화되고 요약된) 새로운 데이터를 만드는 프로세스 ■ 이 경우 데이터 레..

Data Engineering/실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트

[2주차] SQL for Data Engineers(2)

SQL : DDL과 DML, DDL과 DML이 무엇인지 알아보자 데이터 엔지니어가 기억할 점(1) - 현업에서 깨끗한 데이터란 존재하지 않음 > 항상 데이터를 믿을 수 있는지 의심할 껏! → 의(疑)데이터증 > 실제 레코드를 몇 개 살펴보는 것 만한 것이 없음 → 노가다 - 데이터 일을 한다면 항상 데이터의 품질을 의심하고 체크하는 버릇이 필요 > 중복된 레코드들 체크하기 > 최근 데이터의 존재 여부 체크하기 (freshness) > Primary key uniqueness가 지켜지는지 체크하기 > 값이 비어있는 컬럼들이 있는지 체크하기 > 위의 체크는 코딩의 unit test 형태로 만들어 매번 쉽게 체크해볼 수 있음 데이터 엔지니어가 기억할 점(2) - 어느 시점이 되면 너무나 많은 테이블들이 존재하..

Data Engineering/실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트

[2주차] SQL for Data Engineers(1)

Redshift 데모 환경 설명, Redshift를 구글 Colab으로 접근해보는 데모를 하고 SQL 연습 관계형 데이터베이스의 구조 - 관계형 데이터 베이스는 2단계로 구성 > 가장 밑단에는 테이블들이 존재(테이블은 엑셀의 시트에 해당) > 테이블들은 데이터베이스 (or 스키마)라는 폴더 밑으로 구성 테이블의 구조 (테이블 스키마라고 부르기도 함) - 테이블은 레코드들로 구성 - 레코드는 하나 이상의 필드로 구성 - 필드는 이름과 타입으로 구성됨 관계형 데이터베이스 예제 - 웹서비스 사용자/세션 정보 (1) - 사용자 ID: 보통 웹서비스에서는 등록된 사용자마다 부여하는 유일한 ID - 세션 ID: 세션마다 부여되는 ID > 세션: 사용자의 방문을 논리적인 단위로 나눈 것 ㄴ사용자가 외부 링크(보통 광..

Data Engineering/실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트

[1주차] RedShift 소개

What is Data Engineering? 데이터 엔지니어링은 무엇일까? 데이터 엔지니어는 다양한 역할을 수행 - 데이터 웨어하우스 관리 - 데이터 파이프라인 구축 및 관리 > 데이터 파이프라인 == ETL(Extract 수집, Transform 변환, Load 적재) == Data Job == DAG - 데이터 파이프라인의 종류 > 배치형 프로세스(Batch Processing) VS 실시간 프로세스(Realtime Processing) > 요약 데이터 생성(Summary Data Generation : dbt - Analytics Engineer이 하는 일) - 이벤트 수집(Event Collection) > 유저 행동 데이터(User's Behavioral data) 데이터 엔지니어가 알아야 하..

달려라 국나뇽
swk99