본문 바로가기

Development/Data Engineering12

ETL이란? 데이터 엔지니어가 되려고 하는 나는 가장 기본을 놓치고 있었다. 새로운 기술, 흥미로운 오픈소스를 공부하는 것 이전에 가장 중요한 ETL의 개념을 놓치고 있었다. 누군가 ETL이 뭔지 설명해달라는 물음에 제대로 답하지 못했다면 긴장해서가 아니라 잘 모르고 있는 것임을 인정해야 한다. 보통 데이터 엔지니어의 가장 주요한 업무는 결국 ETL이라고 생각한다. 나는 놓치고 있던 데이터 엔지니어링의 기본 중의 기본 ETL을 정리해보려고 한다. 여러 곳에서 ETL이란 무엇인가를 잘 설명해주고 있는데, 나는 스파크를 만들었던 개발자들이 설립한 Databricks라는 곳에서 정의되고 설명해놓은 것을 토대로 간결하게 요약해 보았다. https://databricks.com/kr/glossary/extract-transf.. 2022. 7. 8.
tweepy 로 트위터 API V2 스트리밍 하기 트위터의 API V2가 추가된 지 어느 정도 시간이 흘렀고, tweepy가 올 22년 하반기부터 본격적으로 V2 위주로 업데이트가 될 것으로 보인다. 그래서 tweepy를 이용한 기존의 Stream 메서드들이 deprecate 예정이고, 따라서 V2 위주의 코드 업데이트가 필요하다. 단순한 Stream 데이터 연습을 하기위해서 트위터 api를 사용해보려다가 V1.1과 V2에서 오랜 시간 삽질을 했다. 그 덕분에 V1.1과 V2가 어떤 차이가 있는지 대강 가늠할 수 있게 되었다. 그래서 본 게시물은 둘이 어떤 차이점이 있는지, V2를 이용해 tweepy로 스트림하는 방법을 작성하려고 한다. Twitter API V1.1 과 V2의 차이점 tweepy로 스트림 코드를 작성하기 전에 V1.1 과 V2의 차이점.. 2022. 5. 25.
[Apache Flink] 플링크 v1.15 TableEnviroment execute() 메서드 삭제 플링크의 역사가 아직 짧기 때문에 버전업이 꾸준히 그리고 빠르게 진행되고 있는것 같다. 덕분에 매번 새로운 버전마다 바뀌고 삭제되고 추가되는 메서드들이 굉장히 많다. 현재 플링크 정식 릴리즈 중 가장 최신 버전인 v1.15 부터는 TableEnviroment에서 execute() 메서드가 삭제되었다. 플링크 1.15v 릴리즈 docs중 execute메서드 삭제 관련 링크 Release Notes - Flink 1.15 Release notes - Flink 1.15 # These release notes discuss important aspects, such as configuration, behavior, or dependencies, that changed between Flink 1.14 and .. 2022. 5. 12.
[Docker] M1 맥 도커 confluentinc/cp-kafka 대체 이미지 m1 맥은 arm64 아키텍쳐이다. 그러나 현재 confluent 에서 제공하는 카프카 이미지는 amd64만 지원하고 있다. 정식으로 m1 맥을 지원하는 이미지를 아직 출시하지 않아서 기존 confluent사의 kafka 이미지를 사용하면 아키텍쳐가 맞지 않다고 경고 메시지가 뜨게 된다. 기존 이미지가 실행에는 큰 문제가 없을 것으로 알고 있지만 공식 출시 전까지 대체 할 수 있는 arm64 용 이미지를 찾아보게 되었다. m1 맥이 사용할 수 있는 arm64 아키텍쳐를 지원하는 kafka 이미지를 찾았고, 링크를 남겨둔다. https://github.com/confluentinc/kafka-images/issues/80#issuecomment-1108911026 Add images for ARM 64 ·.. 2022. 4. 28.
[Apache Spark] 아파치 스파크 RDD란? RDD를 이해하면 아파치 스파크를 90% 이해했다고 한다. 스파크를 계속 사용하면서 알듯 말 듯 RDD를 다시 한번 공부하면서 게시글을 작성해 보려 한다. Spark RDD Resilient Distributed Dataset (RDD) 탄력적인 분산 데이터 셋 Resilient 는 탄력적이라는 뜻이 있다. 데이터를 병렬처리하는 스파크의 일부 노드에서 데이터를 처리하는 중에 문제가 발생하면 문제를 회복 할 수 있다는 것을 뜻한다. 데이터를 병렬 처리 중 어떤 노드에서 문제가 발생해도 데이터를 손실 없이 회복 할 수 있는 이유는 무엇일까? 이 이유를 알기 위해서는 RDD의 특징을 앎으로서 이해 할 수 있다. RDD의 특징 1. 데이터 추상화 스파크는 여러 클러스트에서 데이터를 하나의 파일처럼 다룬다. 어떤.. 2022. 4. 19.
[Apache Airflow] 아파치 에어플로우란? Apache Airflow 아파치 에어플로우 에어비엔비에서 개발한 워크플로우 스케쥴링, 모니터링 플랫폼 아파치 탑 레벨 프로젝트 에어비엔비, 야후, 페이팔, 인텔, 스프라이프 등 여러 회사들이 사용중이다. 대형 프로젝트들에서 겪고 있는 공통적인 문제가 있고 이러한 문제를 아파치 에어플로우가 해결해 줄 수 있다. 에어플로우를 사용하는 이유 한 두개의 파이프라인을 관리하는것은 스케쥴링, 모니터링이 어렵지 않다. 하지만 관리해야 하는 파이프라인이 수십개가 있다면? 파이프라인마다 의존성이 복잡한 경우라면? 에어플로우는 워크 플로우를 작성, 스케쥴링, 모니터링을 쉽게 할 수있게 해주는 플랫폼이기 때문에 사용 한다. * 워크 플로우란 의존성으로 연결된 작업(task)의 집합 => DAG(Directed Acycli.. 2022. 4. 16.