Finn.ian
반응형
article thumbnail
[PostgreSQL] Pivot, Unpivot
Data Engineering/DBMS 2024. 12. 31. 22:31

PostgreSQL에서 Pivot과 Unpivot은 데이터를 행(row) 또는 열(column) 기준으로 변환하는 작업을 의미한다.이 작업은 주로 데이터 분석과 시각화를 준비하는 단계에서 사용되며, Pivot과 Unpivot을 활용하는 일이 종종 있어 작성하고자 한다.이를 작성하는 이유는 PostgreSQL은 Unpivot을 지원하는 전용 함수가 없기 때문이다. 1. Pivot행 데이터를 열 데이터로 변환 예제 - 각 제품별 매출을 월별로 정리하기아래 테이블이 sales라는 테이블이며, 데이터는 아래와 같이 되어 있다고 가정해보자.monthproductpriceJanuaryA100000JanuaryB150000FebruaryA120000FebruaryB140000 이 데이터를 Pivot하면 아래과 같은 ..

article thumbnail
[PostgreSQL] 서브 쿼리(Sub Query)의 개념 & 문법
Data Engineering/DBMS 2024. 12. 19. 21:54

PostgreSQL에서의 서브쿼리(subquery)는 하나의 쿼리 안에서 또 다른 쿼리를 실행하는 방법으로, 복잡한 쿼리를 단순화하거나 중간 결과를 계산할 때 매우 유용하다.요약PostgreSQL의 서브쿼리는 FROM, WHERE, SELECT, EXISTS 등 다양한 절에서 사용 가능별칭을 반드시 지정해야 하며, 성능 문제를 고려해야 함복잡한 서브쿼리는 CTE로 변환해 가독성과 효율성을 높이는 것이 좋음서브쿼리와 조인의 장단점을 이해하고, 적절한 시점에 사용1. 서브쿼리의 기본 개념서브쿼리란?SQL 쿼리 내부에서 실행되는 또 다른 SQL 쿼리서브쿼리는 메인 쿼리에서 사용할 데이터를 반환하거나 조건을 생성하는 데 사용PostgreSQL에서는 서브쿼리를 SELECT, FROM, WHERE, 또는 다른 SQ..

article thumbnail
[GCP] Dataproc 소개
Data Engineering/Cloud 2024. 11. 10. 23:17

Google Cloud Data Fusion은 데이터 통합을 위한 완전 관리형 클라우드 서비스로, 다양한 데이터 소스와 싱크를 연결하고, 데이터를 변환하며, 파이프라인을 구축할 수 있도록 지원한다. 이러한 파이프라인의 실행을 위해 Cloud Data Fusion은 Google Cloud의 Dataproc 서비스를 활용한다. 1. Dataproc란?그럼 Dataproc이란 무엇이냐하면 Dataproc은 Apache Spark와 Apache Hadoop을 기반으로 한 완전 관리형 서비스로 배치 처리, 쿼리, 스트리밍, 머신러닝 등 다양한 작업을 수행할 수 있다. Dataproc은 클러스터의 생성, 관리, 확장 및 종료를 자동화하여 사용자가 인프라 관리에 소요되는 시간을 줄이고 데이터 처리에 집중할 수 있도록..

article thumbnail
[GCP] Google Cloud Data Fusion 소개
Data Engineering/Cloud 2024. 8. 25. 15:35

그동안 DW 프로젝트 참여로 인해 블로그 신규 글 업데이트가 늦었는데, 이제부터 다시 글을 작성해보려 한다.기존 AWS를 활용하여 데이터를 핸들링하였지만, 작성하지 못한동안 DW 프로젝트를 참여하여 처음 Google Cloud Paltform를 활용하여 프로젝트에 적용하고 이를 추후 운영할 계획에 있다. 그 중, Google Cloud Data Fusion 이라는 서비스에 대해 소개 및 활용했던 방식을 공유하려 한다. Google Cloud Data Fusion 이란Google Cloud Data Fusion은 데이터 파이프라인을 신속하게 빌드, 관리하기 위한 완전 관리형 클라우드 기반 기업 데이터 통합 서비스이다. Cloud Data Fusion은 그래픽 UI 기반으로 ETL 파이프라인을 작성하며 쉽게..

article thumbnail
[CS] 기본검색 알고리즘(Basic Search Algorithm)
Data Engineering/CS 기초 2023. 11. 28. 00:45

기본검색 알고리즘(Basic Search Algorithm) 1. 탐색 저장된 정보들 중에서 원하는 값을 찾는 것 프로그래밍에서 가장 간단하고 대표적인 문제가 탐색 문제 2. 탐색 알고리즘의 종류 선형 탐색 알고리즘 (linear search algorithm) 왼쪽부터 순서대로 확인 찾고자 하는 값을 리스트의 맨 앞에서부터 끝까지 차례대로 찾아 나가는 방식 (왼쪽부터 순서대로 확인) 장단점 장점 : 검색 방법 중 가장 단순하여 구현이 쉽고, 정렬되지 않은 리스트에서도 사용 가능 단점 : 검색할 리스트의 길이가 길면 비효율적 이진 탐색 알고리즘 (binary search algorithm) 중간지점을 기준으로 반씩 제외하는 방식 오름차순으로 정렬되어 있는 리스트에서 특정한 값을 찾을 때, 처음 중간의 값..

article thumbnail
[CS] 네트워크 기본 - OSI 7계층
Data Engineering/CS 기초 2023. 11. 24. 00:35

04. 서버 프로그램 구현 - OSI 7 계층 서버 프로그램은 일반적으로 응용 계층에서 구현된다. 응용 계층에서는 사용자의 요청을 처리하고, 데이터를 전송하거나 수신한다. 응용 계층에서 데이터를 전송하거나 수신하기 위해서는 하위 계층의 기능을 이용해야 한다. OSI 7 계층을 이해한다면, 서버 프로그램의 구현을 보다 쉽게 이해할 수 있으며, 네트워크 통신에서 발생하는 문제를 해결하는 데에도 도움이되기 때문에 아래 글을 작성해본다. 1. 개념 국제표준화기구(ISO)에서 개발한 모델로, 네트워크 프로토콜 디자인과 통신을 계층으로 나눠 설명한 것으로 실제 인터넷에서 사용되는 TCP/IP는 OSI 참조 모델 기반으로 상업적이고 실무적으로 이용 가능하도록 단순화한 것이다. 개방형 시스템 상호 연결 모델의 표준이다..

article thumbnail
[MySQL] MySQL 이벤트 스케줄러 (Event Scheduler)
Data Engineering/DBMS 2023. 11. 19. 14:57

이번에는 MySQL에서 이벤트 스케줄링 하는 방법에 대해 작성하고자 합니다. MySQL 이벤트 스케줄링 요약 MySQL 이벤트 스케줄링은 데이터베이스의 특정 작업을 일정 간격으로 자동으로 실행할 수 있는 기능이다. 해당 기능을 사용할 수 있는 일반적인 경우는 아래와 같다. 백업 통계 수집 데이터 정리 데이터 마이그레이션 자동화 MySQL 예제를 통한 EVENT Scheduler 활용법 1단계: Event Scheduler 활성화하기 이벤트 스케줄러는 MySQL 서버에 기본적으로 내장된 구성 요소로서, 이벤트를 실행하는 데 사용됩니다. 다음 명령어로 이벤트 스케줄러를 활성화 할 수 있다. SET GLOBAL event_scheduler = ON; 2단계: Event 생성 다음은 매일 밤 12시에 'old_..

article thumbnail
[PostgreSQL] Database Partitioning
Data Engineering/DBMS 2023. 8. 23. 23:45

Dark Mode 기능은 꺼주셔야 내용이 잘보입니다😄 Database volume에 대한 고민 전체 Database에 모든 데이터를 하나의 테이블에 들어간다면 데이터베이스 관리에 어려움을 겪는다. 이유는 데이터베이스 볼륨 증가로 인해 데이터베이스의 읽기/쓰기에 대한 성능이 감소하며, 데이터베이스의 병목 지점이 되기 때문이다. 따라서 데이터를 하나의 테이블에 넣되, 적절히 분할한다면 성능 향상이 될 것이라 판단된다. 데이터베이스 성능 향상을 위해 데이터를 분할하여 저장하는 파티셔닝(Partitioning) 혹은 샤딩(Sharding)기법을 사용한다. 위 2가지 기법 모두 거대한 데이터셋을 서브셋으로 분리하여 관리하는 방법 중 파티셔닝(Partitioning)에 대해 정리하고자 한다. 1. 파티셔닝(Part..

article thumbnail
[Cloud] 클라우드 서비스의 종류 ; IaaS, PaaS, SaaS
Data Engineering/Cloud 2023. 8. 20. 19:44

요즘 IT업계에서는 클라우드(Cloud)에 대한 이야기가 빠지지 않는다. 그렇다면 클라우드(Cloud)는 무엇인지 간단히 알아보고, 클라우드 서비스 모델의 종류와 개념에 대해 알아보자. 01. 클라우드(Cloud)란 무엇일까?🤔 클라우드는 간단히 이야기하면 인터넷을 통해 언제 어디서든 원할 때 원하는 만큼의 IT 리소스(컴퓨팅, 스토리지, 네트워크)를 손쉽게 사용할 수 있는 서비스를 뜻한다. 02. 그럼 클라우드 서비스 모델의 종류는 무엇이 있을까? 클라우드 서비스 모델의 종류는 크게 3 가지 로 구분되며 아래와 같다. ① IaaS(Infrastructure as a Service) ② PaaS(Platform as a Service) ③ SaaS(Service as a Service) 먼저 클라우드 서..

article thumbnail
[DB 기초] 트랜잭션(Transaction)과 그 특성은 무엇인가
Data Engineering/DBMS 2023. 8. 19. 20:49

기술 면접의 단골 질문인 데이터베이스의 기초인 트랜잭션(Transaction)과 특성(ACID)에 대해 작성해보려 한다. 01. 트랜잭션(Transaction)이란 무엇일까? 🙄 트랜잭션(Transaction)은 데이터베이스의 상태를 변경 시키기 위해 수행되는 작업 단위라는 의미를 갖는다. 그렇다면, 데이터베이스의 상태를 변경시킨다는 의미는 무엇일까? 간단히 말하면 아래의 질의어(DML, 데이터 조작어)를 활용해 데이터베이스에 접근한다는 의미이다. - SELECT : 데이터베이스에 들어있는 데이터들을 조회하거나 검색하기 위한 명령어 - INSERT : 데이터베이스에 들어있는 데이터를 추가하기 위한 명령어 - UPDATE : 데이터베이스에 들어있는 데이터들을 갱신하기 위한 명령어 - DELETE : 데이터..

article thumbnail
[DBMS] Data structure store Redis
Data Engineering/DBMS 2023. 7. 27. 23:52

Redis (Remote Dictionary Server) 1-1. Redis 개념 Redis는 Key-Value 기반의 In-memory 데이터 저장소이다. Redis의 장점 Key-Value 기반이기 때문에, 쿼리를 작성하지 않아도 결과를 즉시 확인 가능 디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 속도 측면에서 빠름 1-2.다양한 데이터 구조(Collection) 제공 상단 그림은 데이터별 저장 구조에 대해 표현된 것이고, 하단은 Redis의 다양한 데이터 구조에 대해 표로 정리해둔 내용이다. No Structure Definition Simple Description 1 String 단순 Key-Value 매핑 구조 2 Lists Array형식의 데이터 구조 처음과 끝..

article thumbnail
[CS] 소프트웨어 개발방법론
Data Engineering/CS 기초 2023. 7. 23. 23:18

1년전 공부했던 정보처리기사 관련되어 1단원인 소프트웨어 개발방법론에 대해 작성된 글입니다. 소프트웨어 개발방법론 01. 소프트웨어 생명주기 모델의 종류 이해 1. SDLC(SW Development Life Cycle) 시스템의 요구분석부터 유지보수까지의 전 공정을 체계화한 절차 SDLC의 프로세스 요구사항 분석단계 → 설계 → 구현 → 테스트 → 유지보수 2. 생명주기 모델 2-1. 폭포수 모델(Waterfall Model) 소프트웨어 개발 시, 각 단계를 확실히 마무리 지은 후 다음 단계로 넘어가는 모델 폭포수 모델의 특징 가장 오래된 모델 선형 순차적 모형(고전적 생명주기 모형 / 한 번 정해지면 변경이 어려움) 오래된 모형이기에 성공 사례 많음 단계별 정의와 산출물 명확 요구사항 변경 어려움 2..

반응형