기본 콘텐츠로 건너뛰기

라벨이 Data Engineering인 게시물 표시

[ROAD TO DATA ENGINEER] Kafka Basic Concepts

Topic 특정한 data stream database의 테이블과 비슷한 개념 원하는 만큼 생성가능 이름으로 구분됨(identified by name) Topic들은 partition으로 나누어짐 각각의 파티션은 정렬되어있음 partition 내에 있는 메시지들은 offset이라 불리는  incremental한 아이디를 가진다. ( partition 0, partition 1, ... ) Offset은 오직 specific partition에서 의미가 있음. partition 내에서만 순서가 존재함(partition 간에는 순서가 보장되지 않음) Data가 제한된시간 (기본 1주)내에 존재함 데이터가 partition에 써지면, 바꿀수없음(immutability) Brokers Kafka cluster는 broker(servers)들로 구성되어있다. broker들은 id로 구분 각각의 브로커는 특정 topic partition들을 가지고 있음 아무 브로커에게 연결되면 (called a bootstrap broker), 전체 클러스터에 연결됨 Topic-A는 3개의 파티션, Topic-B는 2개의 파티션을 가지고 있음. Topic replication factor broker가 down되어도 다른 broker가 계속 데이터를 서빙할수있음. 위 경우는 replication factor가 2인경우이다. 특정 한 partition에는 하나의 broker만이 leader가 될수 있다. 그 leader만 data를 주고 받을 수 있다. 다른 broker들은 leader의 데이터를 동기화한다. 이때 다른 broker들을 ISR(In-Sync-Replica)라고 부른다. Producers ack=0: Producer는 ack를 기다리지 않는다.(data 손실가능) ack=1: Producer는 leader에대한 ack를 기다린다.(limited 데이터 손실) ack=all : Leader + replicas의 ack를 기다린다(data 손실 없음) Message Ke...

[ROAD TO DATA ENGINEER] 09.24

 What Is Spark? : Open-source distributed general-purpose cluster-computing framework. How to start data engineering projects?   Choose any framework, let's say Kafka.   Write some codes using that framework.    Keep Expanding (try adding other technology) Project Idea : Creating Real Time REST API crawls data from popular websites like Twitter,Forex. store them in buffer (by producer in Kafka). store them in MySQL database (by consumer in Kafka). Web server provides real-time REST API.

[ROAD TO DATA ENGINEER] 09.22

What Is Apache Storm? : distributed realtime computation system. makes it easy to reliably process unbounded streams of data What Is Apache Kafka? : distributed event streaming platform Why do we use Kafka Without Kafka Using Kafka Distributed, resilient architecture, fault toloerant Horizontal Scalability High performance (latency of less than 10ms) - real time Source