본문 바로가기

데브코스65

데이터 엔지니어링 57일차 TIL 학습 내용 Spark 데이터 시스템 아키텍처데이터 병렬처리가 가능하려면? 1. 데이터가 먼저 분산되어야 한다         - 하둡 맵의 데이터 처리 단위는 디스크에 있는 데이터 블록(128MB)                 - hdfs-site.xml에 있는 dfs.block.size 프로퍼티가 결정         - Spark에서는 이를 파티션(Partition)이라 부른다(128MB)                 - spark.sql.files.maxPartitionBytes : HDFS등에 있는 파일을 읽어올 때만 적용됨 2. 나눠진 데이터를 각각 따로 동시 처리         - 맵리듀스에서 N개의 데이터 블록으로 구성된 파일 처리시 N개의 Map 태스크가 실행         - Spark에서는.. 2024. 6. 30.
데이터 엔지니어링 56일차 TIL 학습내용빅데이터의 정의 - 서버 한대로 처리할 수 없는 규모의 데이터 - 기존의 소프트웨어로는 처리할 수 없는 규모의 데이터4V - Volume : 데이터의 크기 - Velocity : 처리속도 - Variety : 데이터의 특성 (정형, 비정형) - Varecity : 데이터의 품질 빅데이터의 예 - 웹 - 수십 조개 이상의 웹페이지가 존재         - 온갖 종류의 지식의 바다 - 웹 검색엔진 개발은 진정한 대용량 데이터 처리         - 웹 페이지를 크롤하여 중요한 페이지를 찾아내고(페이지 랭크) 인덱싱하고 서빙한다         - 구글이 빅데이터 기술의 발전에 지대한 공헌 - 최근에는 웹 자체가 NLP 거대 모델 개발의 훈련 데이터로 사용된다. 빅데이터 처리의 특징 - 큰 데이터를 손실.. 2024. 6. 17.
데이터 엔지니어링 55일차 TIL 학습 내용dbt seed란? - 많은 dimension 테이블들을 csv파일 형태로 쉽게 만든 후 데이터웨어하우스에 테이블로 로딩해주는 기능 1. seeds 폴더에 csv파일 저장 2. dbt run => csv파일을 redshift에 바로 저장- 다른 SQL에서 사용시 Jinjatamplate 사용 : {{ ref("reference_date") }} Staging 테이블을 만들 때 입력 테이블이 자주 바뀐다면? - models 밑의 .sql 파일들을 일일이 찾아 바꿔주어야한다.         - 번거롭고 실수가 나오기 쉽다. - 이 번거로움을 해결하기 위한 것이 Sources         - 입력 테이블에 별칭을 주고 별칭을 staging 테이블에서 사용한다. DBT Sources 란? - 외부 데.. 2024. 6. 7.
데이터 엔지니어링 54일차 TIL 학습 내용프로덕션 사용을 위한 Airflow 환경 설정 - Airflow.cfg 는 /var/lib/airflow/airflow.cfg 에 위치해야한다         - webserver와 scheduler가 재시작될 때 변경사항이 반영됨         - [core]섹션의 dags_folder가 DAG들이 있는 디렉토리가 되어야한다.         - dag_dir_list_interval: dags_folder를 airflow가 얼마나 자주 스캔하는지 명시해야한다(초 단위) - Arirflow Database upgrade         - 기본은 SQLite 이며 Postgres 또는 MySQL로 변경         - sql_alchemy_conn 이 Core section of airflow.c.. 2024. 6. 6.
데이터 엔지니어링 53일차 TIL 학습내용Dag란? - DAG(Directed Acyclic Graph, 방향성 비순환 그래프)는 방향성이 있는 간선을 가지며 순환이 없는 그래프 구조이다. - 주로 작업 스케줄링, 데이터 처리, 블록체인 등에서 의존성을 표현하고 관리하기 위해 사용한다. -노드와 간선으로 이루어져 있으며, 각 간선은 특정 방향으로만 이동 가능하다 Dag를 실행하는 방법 - 주기적 실행 : schedule로 지정 - 다른 Dag에 의해 트리거     - Explicit Trigger : Dag A가 분명하게 Dag B를 트리거(TriggerDagOperator)     - Reactive Trigger : Dag B가 Dag A가 끝나기를 대기(ExternalTaskSensor)         - Dag A는 Dag B가 .. 2024. 6. 5.
데이터 엔지니어링 52일차 TIL 학습내용구글시트 연동 1. 구글시트 API를 활성화하고, 구글 서비스 어카운트로 생성한 후 그 내용을 JSON파일로 다운로드 2. 어카운트에서 생성해준 이메일을 조작하고 싶은 시트에 공유 3. Airflow DAG쪽에서 해당 JSON 파일로 인증하고 시트를 조작 Admin-Variable google_sheet_access_token 설정     - Key = 구글 서비스 어카운트의 JSON Admin-connection aws_conn_id  설정 (S3) redshift_dev_db 설정(Redshift) redshift_summary.py - 구글시트에서 S3로 복사 from airflow import DAGfrom airflow.macros import *from airflow.utils.deco.. 2024. 6. 5.