Codeit Sprint 23

위클리 페이퍼 #17 - BigQuery에서 쿼리 성능을 최적화

BigQuery에서 쿼리 성능을 최적화하는 방법은 여러 가지가 있으며, 데이터 구조와 쿼리 패턴을 효과적으로 설계하는 것이 중요합니다. 아래는 주요 전략들입니다:1. 데이터 스캔 최소화파티셔닝과 클러스터링: 데이터를 날짜, 범주 등으로 파티셔닝하여 필요한 데이터만 읽도록 합니다. 클러스터링을 통해 특정 열을 기준으로 데이터를 정렬하면 쿼리 비용과 실행 시간이 감소합니다.SELECT 최적화: 필요한 열만 선택합니다. SELECT *를 피하고 특정 열을 명시하여 비용과 처리 시간을 줄입니다.2. 쿼리 작성 최적화조인 순서와 유형: 작은 테이블을 왼쪽에 두어 Broadcast Join을 활용하거나, 큰 테이블 간 조인 시 Hash Join을 사용합니다. 데이터 크기가 비대칭적일 경우, 미리 필터링하거나 WHE..

위클리 페이퍼 #17 - On-premise, Cloud, Serverless 데이터 웨어하우스의 특징

1. 온프레미스 데이터 웨어하우스특징하드웨어 소유 및 관리조직 내 물리적인 서버에 직접 데이터 웨어하우스를 구축하고 운영합니다.초기 비용 높음하드웨어 구매 및 설치, 유지보수 비용이 발생합니다.제어력데이터 보안, 성능 최적화 및 접근 제어를 직접 관리할 수 있습니다.확장성 제한하드웨어 업그레이드가 필요하며, 확장이 어렵고 시간 소요가 큽니다.성능 최적화 가능특정 워크로드에 최적화된 구조를 설계할 수 있습니다.인터넷 의존성 없음네트워크 외부 의존성이 없어 오프라인 환경에서도 운영 가능합니다.적합한 경우민감한 데이터로 인해 강력한 보안이 필요한 경우 (예: 금융, 의료)정해진 예산 내에서 장기적으로 사용하려는 경우2. 클라우드 데이터 웨어하우스특징유연성 및 확장성사용량에 따라 자원을 동적으로 확장하거나 축소..

위클리 페이퍼 # 16 - Airflow Operators

Airflow에서의 Operator에 대해서 설명을 하자면 DAG의 Task를 정의하는 기본요소로, 다양한 작업을 수행 할 수 있습니다. 1. 기본 OperatorOperatorDescriptionDummyOperator아무 작업도 하지 않는 더미작업. DAG의 흐름 테스트나 작업 분기점에서 주로 사용PythonOperatorPython 함수를 실행, 주로 Python 코드로 작업을 하는 경우에 사용BashOperatorBash 명령어 또는 스크립트를 실행.BranchPythonOperatorif문과 같은 조건문을 사용하거나 다른 조건문을 이용해 조건에 따른 실행될 Task를 분기 2. 데이터베이스 OperatorsOperatorDescriptionPostgresOperatorPostgreSQL 쿼리를 ..

위클리 페이퍼 #16 AIRFLOW - DAG와 Task

Apache Airflow에서 DAG와 Task는 워크플로우를 정의 및 실행을 하는 핵심 개념으로 사용됩니다. DAG(Directed Acyclic Graph)- 정의 :작업(Task)들의 흐름을 나타내는 구조로, 방향성이 있으면서 사이클이 없는 그래프 입니다.- 역할 : 워크플로우의 전체 구조를 정의작업 간의 순서와 의존성을 나타냄지정된 시간(Schedule)에 따라서 실행됨- 특징 : Directed(방향성) : 작업은 항상 지정된 순서로만 실행됩니다.Acyclic(비순환성) : 작업 순환이 없어 무한루프가 발생되지 않습니다.from airflow import DAGfrom airflow.operators.dummy_operator import DummyOperatorfrom datetime impo..

위클리 페이퍼#15 - 엔터티, 속성, 관계

논리적 모델링에서 사용하는 주요 구성 요소는 엔터티(Entity), 속성(Attribute), 그리고 관계(Relationship)으로 데이터를 체계적으로 구조화하고, 데이터간의 연관성을 명확하게 하는 방법으로 아래에서 하나씩 설명하도록 하겠습니다. 엔터티(Entity)- 독립적으로 존재하며, 데이터베이스에서 저장하고 관리하고자 하는 객체를 의미 하는데 간단히 예시를 들어서 설명하자면, 학생, 강의, 교수 등 여러 가지가 있습니다. - 예시)학생 : 학생은 엔터티로서, 각 학생 개체가 개별적으로 데이터베이스에 저장됩니다.강의 : 강의는 엔터티로서, 각 강의 개체가 개별적으로 데이터베이스에 저장됩니다.속성(Attribute)- 엔터티의 특성을 나타내며, 엔터티의 데이터를 구체화하는 역할을 하는데, 학생의 ..

위클리 페이퍼#15 - 데이터베이스 정규화

데이터베이스 정규화란 무엇인가요? 또, 정규화의 장단점은 무엇인가요? 정규화란?데이터베이스에서 정규화는 데이터를 구조화하고, 중복을 줄이며, 데이터의 무결성을 유지하기 위한 과정으로 여러 단계로 나뉘게 되는데, 각 단계별 특정 규칙에 따라서 나뉘게 됩니다. 이때 정규화 과정을 거치는데 1차 정규형(1NF), 2차 정규형(2NF), 3차 정규형(3NF)가 있으며, 단계가 높아질수록 무결성이 높아지게 됩니다. 정규화를 거치는 이유중의 하나로. 이상종류에 의해서 발생되어지는 문제들이 있기 때문에 이를 해결하기 위해서 정규화를 진행합니다. 삽입 이상, 삭제 이상, 갱신 이상과 같이 데이터의 중복성과 무결하지 않은 상태에 의해서 문제들이 야기될수 있습니다. 제1 정규화(1NF)데이터베이스의 각 COLUMN(열)이..

ERD 설계 및 분석

ERD란?ERD(Entity-Relationship Diagram)은 데이터베이스 설계에서 사용되는 중요한 도구로, 데이터베이스의 구조를 시각적으로 나타내는 다이어 그램으로, ERD를 통해서 데이터 베이스의 Entity와 Relationship를 명확히 이해하고, 효율적으로 설계를 할 수 있습니다. ERD의 용도ERD의 경우에는 많은 부분들에서 사용할 수 있지만. 아래와 같은 경우에 주로 이용 할 수 있다.데이터 베이스 모델링관계형 DB에서 주로 사용됨엔티티와 속성들을 테이블 및 컬럼으로 변환테이블을 시각화 하기 때문에 API와 설계시 흐름 파악에 용이 및 문제점 파악에 쉬움소프트웨어 엔지니어링소프트웨어 계획단계에 사용되고서로 다른 시스템 요소와 서로 간의 관계식별에 도움data flow diagram의..

위클리 페이퍼 #14 - GROUP BY와 HAVING 절

GROUP BY절과 HAVING절은 SQL에서 그룹화된 데이터를 필터링할 때 사용하는 명령어이지만 용도와 위치의 차이가 존재함에 따라서 아래에서 설명을 진행하겠습니다.GROUP BY 절'GROUP BY'는 데이터를 특정 컬럼 값에 따라 그룹으로 묶을 때 사용 되고 SELECT 절에서 SUM, COUNT, AVG와 같이 각 그룹에서 원하는 통계적 정보를 추출할 때 사용이 가능합니다. SELECT name, SUM(value)FROM sales_dataGROUP BY name; HAVING 절'HAVING'절은 GROUP BY절로 그룹화된 데이터에 조건을 부여하여 필터링 할 때 사용합니다. WHERE절과 비슷하게 보이지만, 그룹화된 데이터에만 적용시킬수 있고, 위에서 설명한 집계 함수인 SUM, COUNT,..

43회 데이터분석 준전문가(ADsP) 회고록

43회 데이터분석 준전문가 결과 후기. 포스팅 내에서는 공부했던 방법 및 준비과정과 고사장에 관한 이야기를 통해서 후기를 풀어보려고 합니다. 시험 일정 : https://www.dataq.or.kr/www/accept/schedule.do시험 접수 : https://www.dataq.or.kr/www/accept/list.do K-DATA 자격검정에서 주관한 데이터 분석 준전문가ADsP를 시험을 보았다. 위의 링크를 통해서 시험일정 및 시험접수를 할 수 있다. 1. 시험 접수1) 접수접수시 주의 사항으로는 접수 일자를 꼭 잘확인하여. 해당 날짜 내에 꼭 접수를 해야한다. 주의할 점으로는. 접수를 빠르게 해야 자신이 원하는 고시장을 선택할 수 있다. 시험 장소가 적은 지역이라면 더욱이 준비를 빨리하는게 좋..

위클리 페이퍼 #12 - K-폴드 교차검증

교차검증(Cross Validation)이란?ML에서 데이터를 이용해 학습시키고 이에 대한 예측 성능을 평가를 위한 테스트 데이터 셋을 필요로 한다. 하지만 이 과정중에 과적합(Overfitting)에 약점을 가지게 되는데, 편향된 모델을 해결하기 위해서 교차검증의 방법을 이용하여 다양한 학습과 평가를 수행하는 방법이다. 별도의 여러 세트로 구성된 학습 데이터 세트와 검증 데이터 세트를 학습과 평가를 수행하는 방법을 사용하는데, 교차 검증 과정에서 각 세트별 수행한 평가 결과에 따른 하이퍼 파라미터 튜닝등을 통해서 모델의 최적화를 쉽게 진행 할 수 있다. K 폴드 교차 검증(K-Fold Cross Validation)가장 보편적으로 사용되는 교차 검증 기법으로, 데이터 셋을 K 개의 데이터 폴드 세트를 ..