본문 바로가기

공부 및 정리/데이터 엔지니어링7

[Kafka] Kafka 간단 정리 Kafka 개요 카프카는 대규모 실시간 데이터 스트리밍 처리를 위한 분산 스트리밍 플랫폼으로 LinkedIn에서 개발되어 현재는 Apache 재단에서 오픈소스로 관리되고있다. Kafka는 고성능, 확장성, 내구성, 신뢰성을 제공하며 실시간 데이터 파이프라인과 스트리밍 애플리케이션의 구축에 이상적이다. Kafka는 여러 컴퓨터가 모여서 Cluster를 구축할 수 있다. Kafka Cluster는 이러한 Kafka를 이루는 Broker라는 것들이 모인 집단을 의미한다. Apache Kafka? Confluent Kafka? Kafka에 대해서 찾아보면 Confluent Kafka와 Apache Kafka가 있는 것을 볼 수 있다. Apache Kafka는 오픈소스로 Apache 재단에서 관리중인 소프트웨어이.. 2024. 4. 5.
[Airflow] 비트코인 일일 분 봉 데이터 파이프라인 프로젝트 (작업편) 개요 이전 환경 설정 포스트는 아래 링크를 이용하면 된다. [Airflow] 비트코인 일일 분 봉 데이터 파이프라인 프로젝트 (환경 설정편) [Airflow] 비트코인 일일 분 봉 데이터 파이프라인 프로젝트 (환경 설정편) 개요 최근 Airflow에 대해서 공부해보며 데이터에 대해 간단한 파이프라인을 만들어 데이터베이스에 저장하는 프로젝트라도 직접 해보면 좋겠다 싶었다. 요즘 가격이 미친듯이 오르는 비트코인 bestech49.tistory.com 이 포스트에서는 실제 코딩을 통한 Upbit API 호출 및 데이터베이스 저장 과정을 다룬다. Upbit API 확인 분(Minute) 캔들 업비트 개발자 센터 docs.upbit.com 먼저 내가 사용할 API는 Upbit의 분봉 호출 API이다. 아주 친절하.. 2024. 3. 6.
[Airflow] 비트코인 일일 분 봉 데이터 파이프라인 프로젝트 (환경 설정편) 개요 최근 Airflow에 대해서 공부해보며 데이터에 대해 간단한 파이프라인을 만들어 데이터베이스에 저장하는 프로젝트라도 직접 해보면 좋겠다 싶었다. 요즘 가격이 미친듯이 오르는 비트코인의 분봉 데이터를 매일 오전 9시에 Airflow로 Upbit API를 이용하여 24시간의 데이터를 받아와 데이터 베이스에 적재하는 파이프라인을 만들어보는 과정을 정리해본다. 서버는 GCP 크레딧이 남아돌기 때문에 GCP Ubuntu 서버를 사용할 예정이다. 또한 포스팅이 상당히 길어질 것 같기 때문에 이번 포스트에서는 환경 설정을 해주는 부분만을 다룬다. GCP 가입하기 및 VM Instance 생성하기 [Airflow] 개요 및 설치 방법 [Airflow] 개요 및 설치 방법 Airflow는 복잡한 워크 플로우와 데이.. 2024. 3. 6.
MapReduce 하둡에 내재된 기능으로 JAVA로 구현되어있으며, 빅 데이터를 효율적으로 처리한다. 이러한 MapReduce를 간단히만 살펴보자. 하는 일 간단히 얘기하면 데이터를 Mapping하고, 데이터를 Reduce한다. 당연하게도 Mapping은 Mapper가 하게 되고, Reduce는 Reducer가 하게 된다. Mapper: 입력 데이터를 특정 로직에 따라서 변형을 가하여 구조화 출력한다. Reducer: 데이터를 집계하는 역할을 한다. 즉, Mapper는 데이터를 변환하고, Reducer는 데이터를 집계하며, 그 결과 데이터는 Key - Value 형태로 나온다. Key는 집계하고자 하는 항목이며, Value는 그 값이다. 과정 MapReduce의 전체적인 과정은 위와 같다. 입력 데이터가 Mapper에 들.. 2024. 3. 6.
RDD (Resilient Distributed Dataset) RDD는 Spark에서 데이터를 처리하고 저장하기 위한 핵심 객체로 Resilient Distributed Dataset. 직역해보면, 탄력적 분산 데이터 세트를 의미한다. RDD의 주요 특성 불변성: 한번 생성되면 변경될 수 없으며 Transformation을 취하게 되면 기존 RDD가 변하는 것이 아닌 새로운 RDD가 생성된다. 이러한 불변성 덕분에 아래 특성들을 얻을 수 있다. 분산 처리: 불변성 덕분에 데이터의 일관성 문제 걱정 없이 데이터를 여러 노드에 분산시켜 저장하여 병렬로 처리할 수 있다. 내결함성: 데이터 변형 작업의 기록이 저장되며 이를 통해 노드 장애가 발생해도 데이터를 복구할 수 있다. RDD의 생성 크게 2가지 방식을 사용한다. 외부 데이터 소스 로드: 파일 시스템(HDFS, S3.. 2024. 3. 6.
[Airflow] DAG 개요에서 말한 것처럼 DAG는 자료구조 시간에 배운 Directed Acyclic Graph의 줄임말로 싸이클이 없는 그래프를 의미한다. Airflow에서의 DAG란 노드들이 Task로 이루어져있고, 이를 종속성과 관계로 구성해 전체 워크 플로우가 어떻게 실행되는지를 알려주는 역할을 한다. 즉, 작업의 흐름을 정의하는 구조이다. Task 그렇다면 DAG를 구성하는 Task는 무엇일까? Task는 말 그대로 워크 플로우 과정에서 해야하는 업무들을 의미한다. 이때 이들은 Operator라는 클래스의 인스턴스로 구현되며 실제로 실행되어 작업을 수행한다. 이때 Operator는 특정 행위를 할 수 있는 기능을 모은 클래스이다. Task는 데이터베이스에 쿼리를 실행하거나 Python 코드를 실행하거나 Bash 명.. 2024. 3. 4.