Development21 Flink CDC - DeltaLake Sink 회사에서 작년 연말 성과 작성이 일찍 끝나서, 그간 못해보거나 해보고 싶은 일들을 해볼 시간적 여유가 생겼다.그래서 FlinkCDC로 S3에 Delta 테이블을 다이렉트 Sink 하는 토이 프로젝트를 진행해 보았다.ㅋㅎㅎㅋ [Githbub 링크] : 조금 더 자세한 코드 및 세부 기록 1. 프로젝트 배경: "표준을 넘어 효율을 탐구하다"Why Flink & CDC?현재 우리 팀은 Databricks 기반의 레이크하우스 환경을 운영 중이며, NoSQL(MongoDB) 파이프라인은 Source → Kafka → Spark Streaming → Delta Lake라는 표준화된 아키텍처를 따르고 있습니다. 이 구조는 안정성과 확장성 측면에서 검증된 훌륭한 아키텍처입니다.하지만 CDC 파이프라인 과제를 기획하면서.. 2026. 1. 29. 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. 이전 1 2 3 4 다음