반응형
데이터엔지니어링의 이것저것 여러 개념을 배우면서
어떤 순서로 작동하는 건지 헷갈리는 부분이 있어서
지금가지 경험해온 걸 바탕으로 확실하게 정리를 하고 넘어갈까 한다
데이터 파이프라인 프로세스
1. 데이터 수집
- 키워드: API, 데이터 추출, Open API, Kiwoom API
- 데이터를 다양한 소스에서 추출하는 단계
- 파일 기반 : CSV, Excel, JSON, XML 등의 정형 데이터 파일
- 데이터베이스 : MySQL, PostgreSQL, MongoDB 기존에 저장된 데이터베이스에서 쿼리를 통해 데이터를 가져옴
=> 3번의 데이터베이스가 따로 있지만 이미 저장 된 시스템에 저장된 데이터를 가져와야하는 경우
데이터 수집 소스로 사용하는 경우도 있음 -> docker나 airflow는 데이터 수집 단계에서 계속 유지
- 웹 스크래핑 : HTML 페이지에서 BeautifulSoup, Selenium 등을 사용하여 데이터 추출
- API 기반 : REST API, GraphQL API, Open API 등을 이용해 실시간 데이터를 가져옴
- 스트리밍 데이터 : 실시간으로 데이터를 처리하는 경우 Kafka, Spark Streaming 등을 사용.
2. Docker (환경 설정)
- 데이터 파이프라인을 실행하기 위한 환경을 설정
- Docker를 사용해 Airflow 등 필요한 애플리케이션을 컨테이너화하여 효율적인 배포 및 관리를 수행
3. Airflow (워크플로 자동화)
- Airflow안에 DAG를 통해 ETL 또는 ELT 수행 가능함
- Airflow는 데이터 파이프라인을 자동화하고 워크플로우의 모든 단계를 체계적으로 정의하며 실행하는데 사용됨
1) DAG (Directed Acyclic Graph)
- Airflow에서 DAG은 작업(Task)들의 순서를 정의하는 구조
- 각 Task는 데이터를 추출, 변환, 또는 적재하는 역할
2) ETL (Extract, Transform, Load)
- 데이터를 소스에서 추출한 후, 변환을 수행한 다음 최종 데이터베이스로 적재합니다.
- Airflow의 각 Task는 ETL의 단계 중 하나를 처리:
- Extract Task: API 호출, 데이터베이스 쿼리 등을 통해 원본 데이터를 가져옴.
- Transform Task: 데이터를 변환(예: 정제, 집계)하는 PythonOperator 또는 BashOperator 사용.
- Load Task: 데이터를 최종 데이터 웨어하우스 또는 클라우드에 적재하는 작업.
3) ELT (Extract, Load, Transform)
- 데이터를 먼저 적재한 후, 변환 작업을 데이터 웨어하우스에서 수행.
- ELT 워크플로도 DAG에서 정의 가능:
- Extract Task: 데이터를 추출하여 로컬이나 클라우드에 저장.
- Load Task: 데이터를 변환 없이 데이터 웨어하우스에 적재(COPY 명령 등 사용)
- Transform Task: SQL 쿼리로 변환 작업 수행 (Redshift, Snowflake 등에서 실행)
- ELT 워크플로도 DAG에서 정의 가능:
-> ETL과 ELT의 순서는 초반에 적용한다고 볼 수도 있음
-> 예를 들어 API처럼 실시간으로 가져와 바로 대시보드에 적용한 경우 변환Transform과 로드Load는 필요없음
-> 이미 구축된 데이터 파이프라인을 airflow로 옮기거나 자동화하려는 경우 필요없음
데이터베이스 (저장 및 관리)
- Redshift, 데이터 웨어하우스, Django DB, MySQL 등 데이터 수집의 작업 순서를 정의하고 자동화하는 역할
- 수집한 데이터를 관계형 데이터베이스 또는 데이터 웨어하우스에 저장하여 관리
클라우드 (데이터 저장소 및 연산)
- GCP, AWS 등의 클라우드 환경을 활용하여 데이터를 저장하거나 연산 작업을 수행
- 예를 들어, AWS S3에 데이터를 저장하고, Redshift를 통해 분석을 진행
AWS의 EC2 = GCP 는 비슷한 가상서버 서비스 제공함
AWS의 S3는 스토리지 즉 데이터레이크 역할이며 , Redshift는 데이터 분석용 데이터 웨어하우스
시각화 (결과 표현)
- 데이터 분석 결과를 시각화함
- Superset이나 테블로 등 BI 도구를 활용해 대시보드 형태로 표현
반응형
'데이터엔지니어링 기초' 카테고리의 다른 글
주피터 마크다운 정리 ( 제목, 글꼴, 목록, 링크, 코드, 구분선, 테이블, 체크박스 등) (0) | 2024.12.24 |
---|