본문 바로가기

전체 글51

[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.
CAP 정리 분산 데이터베이스를 공부하다가 CAP 정리라는게 계속 나오는데 뭔가 익숙해지지가 않아서 한번 간단히라도 정리해 보려 한다. CAP 정리 CAP 정리는 다음 3가지 조건을 모두 만족하는 분산 컴퓨터 시스템은 존재하지 않음을 증명한 정리라고 한다. 즉, 이 중 최대 2가지 속성만을 만족할 수 있다는 것이다. Consistency(일관성): 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다. Availability(가용성): 모든 요청이 성공 또는 실패의 결과를 반환할 수 있다. Partition tolerance(분할 내성): 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템을 계속 쓸 수 있다. 위 3가지 조건의 앞 글자를 따서 CAP 정리라 부른다. 위 정리는 분산형 시스템에서 정의된 정리로 일반.. 2024. 3. 6.
트랜잭션과 ACID 데이터베이스를 공부하다 ACID와 트랜잭션에 대해서 공부하게 되어 간단히만 정리해본다. 데이터베이스에서 트랜잭션(Trasaction)이란 “쪼갤 수 없는 업무 처리의 최소 단위”를 의미한다. 예를 들어 아래와 같은 상황이 있다고 하자. A라는 사람이 B에게 1000원을 지급한다. B가 그 돈을 받는다 이러한 상황은 송금과 같은 것으로도 생각할 수 있다. A가 B에게 돈을 보내면 B의 계좌에는 돈이 들어와야만 한다. 만약 A가 돈을 보냈음에도 B의 계좌에 돈이 들어오지 않는다면 이건 큰 문제가 된다. 이러한 경우 다시 A의 계좌에 돈이 원상 복구 되어야 한다. 즉, 위 과정은 하나의 쪼갤 수 없는 단위로 보아야 하며 이를 데이터베이스에서는 트랜잭션이라 한다. 데이터 베이스에서는 이러한 트랜잭션의 처리가 정.. 2024. 3. 5.