목록Data Engineer/데이터 인프라 (8)
취미가 좋다
카프카 실시간으로 대용량 스트리밍 데이터를 처리하는 메시지 큐 플랫폼 풀어서 설명 데이터를 주고받는 굉장히 많은 어플리케이션과 DB 들이 있다. 이 많은 데이터 파이프라인을 관리하기란 어렵다. 파이프라인의 중간 통로로 카프카를 사용해서 데이터를 카프카에 넣고 데이터를 카프카로부터 꺼내가도록 한다. 높은 처리량, 확장성, 영속성, 고가용성의 장점을 통해 데이터 파이프라인을 안전하고 확장성 높게 운영할 수 있다. 브로커 데이터를 저장하고 관리하는 서버 주로 여러 서버를 묶어서 클러스터로 운영한다. 컨트롤러 클러스터 내 브로커 중 한 대가 수행 클러스터 내 브로커가 죽으면 그 브로커가 가진 리더 파티션을 재분배한다. 코디네이터 클러스터 내 브로커 중 한 대가 수행 컨슈머 그룹의 상태를 체크하고 파티션과 컨슈머..
Stream Processing 이전 글에서 설명한 스트리밍 플랫폼의 event producer들이 스트림을 발생하면, 플랫폼을 통해 흘러서 여러 곳으로 보내지게 된다. 그 과정에서 이벤트들을 중간에서 처리하는 부분이다. batch로 처리하거나 실시간으로 처리할 수 있다. kafka는 실시간으로 처리하고, spark는 micro batch로 처리한다. 아래의 사진처럼 producer에서 만든 이벤트와, Database의 변경사항을 kafka에 싣는다. 그렇게 받은 이벤트 스트림들을 kafka consumer에서 가져가거나, connect sink를 통해 target DB에 저장한다. 그 중간에서 kafka streams, KSQL을 통해 스트림에 대한 처리를 한다. 1. Kafka Streams kafk..
Data Streaming 클라우드 이전 시절, Data Warehouse만을 사용하였고, 많은 데이터를 저장할 수 없으니, 엄격한 schema를 사용하여 분석을 위한 데이터만을 뽑아 저장하였다. 데이터를 읽어오기 위해서는 ETL의 Load가 끝난 시점부터 가능했고, BI 툴을 이용하여 접근할 수 있었다. 하둡의 Batch 시스템이 나오고나서, 다양한 schema를 사용할 수 있었지만, 여전히 배치의 데이터 Load 이후 데이터 접근이 가능했다. 그래도 programmable한 접근(언어를 이용한)이 가능하였다. Streaming이 나오고나서, 다양한 schema뿐 아니라 Ingestion(데이터를 빼오는 시점)이 끝나면 바로 접근이 가능해서 실시간으로 접근할 수 있었다. Batch와 마찬가지로 Prog..
이전에 살펴본 Workflow Manager는 큰 빅데이터를 다룰 때, 분산해서 처리해야하는 작업이 이루어져야 한다. Airflow는 Task를 실행하는 엔진일 뿐, 실제 작업은 Spark에서 이루어진다. 1. Python Libs pandas로 데이터를 분석하는 코드를 작성하고, Dart나 Ray로 분산하여 처리할 수 있다. 1.1) Pandas 표(DataFrame)로 된 데이터를 다루는 툴이다. SQL과 비슷하지만, 파이썬 코드로 데이터를 조작할 수 있다는 점이 다르다. DataFrame의 원하는 데이터를 가져와서, 새로운 DataFrame을 만들 수 있다. DataFrame을 원하는 그래프 등의 형태로 나타낼 수 있다. 원하는 데이터끼리 연산하여 새로운 행/열을 만들 수 있다. 기본적인 통계(평균..
Data Modeling 소스로부터 데이터를 받지 않고, Data Warehouse / Data Lake와 연결되어 있다. 1. dbt (data build tool) : dbt is a transformation workflow that lets teams quickly and collaboratively deploy analytics code following software engineering best practices like modularity, portability, CI/CD, and documentation. Now anyone who knows SQL can build production-grade data pipelines. 데이터 분석가들을 위한 분석 엔지니어링 도구 보통 데이터 분..
Connectors 소스에서 발생한 데이터를 연결하여, Data Warehouse / Data Lake로 전달하는 기능을 수행한다. 1. Fivetran 아래의 데이터들을 정규화하고, SQL Transform 해서 Analysis Ready Schemas(분석 가능한 스키마)로 변환해주는 역할을 수행한다. Applications : salesforce와 같은 CRM, ERP 도구들 Database : 사내 데이터 Events : Event Collector로 모은 여러 이벤트들 Files : S3와 같은 각종 문서 파일들 Functions : 람다와 같은 클라우드 함수들 데이터 웨어하우스(Amazon Redshift, Snowflake, Databrics, Google BigQuery, Panoply)을..