일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Kafka
- cloud platform
- AWS
- Tableau
- PCCP
- superset
- airflow
- beuatifulsoup
- 데이터 엔지니어
- 슈퍼셋
- 데브코스
- 코딩 테스트
- 데이터 시각화
- GCP
- SQL
- Til
- 코딩테스트
- VPC
- django
- 코테 연습
- Selenium
- Snowflake
- HTML
- Spark
- 팀 프로젝트
- Today
- Total
주니어 데이터 엔지니어 우솨's 개발일지
데이터 엔지니어링 64일차 TIL 본문
학습 내용
kafka CLI Tool 접근 방법
- docker ps로 Broker의 Container ID 파악
- 해당 컨테이너로 로그인
=> docker exec -it Broker_Container_ID sh
- 다양한 클라이언트 툴 사용가능
- kafka-topics : Kafka-topics --bootstrap-server kafka1:9092 --list
- kafka-configs
- kafka-console-consumer : Command line을 통해 Topic에서 Message 읽기가 가능하다.
- kafka-console-producer : Command line을 통해 Topic을 만들고 Message생성이 가능하다.
- kafka-console-producer --bootstrap-server kafka1:9092 --topic test_console
Kafka Producer 파라미터
Kafka Producer 동작
Kafka Consumer 파라미터
Consumer가 다수의 Partitions들로부터 읽어 오는 방법
- Consumer가 하나이고 다수의 Partitions들로 구성된 Topic으로부터 읽어야한다면 ?
- Consumer는 각 Partition들로부터 라운드 로빈 형태로 하나씩 읽게 됨
- 병렬성이 떨어지고 데이터 생산 속도에 따라 Backpressure가 심해질 수 있다.
- Consumer Group을 통해 어느정도 해결가능
- 한 프로세스에서 다수의 Topic을 읽는 것 가능
- Topic 수만큼 KafkaConsumer 인스턴스를 생성하고 별도의 Group ID와 Client ID를 지정해야한다.
Consumer Group이란?
- Consumer가 Topic을 읽기 시작하면 해당 Topic내 일부 Partition들이 자동으로 할당됨
- Consumer의 수보다 Partition의 가 더 많은 경우, Partition은 라운드 로빈 방식으로 Consumer들에게 할당됨
- 이를 통해 데이터 소비 병렬성을 늘리고 Backpressure를 경감
- Consumer가 일부 중단되더라도 계속해서 데이터 처리 가능
- Consumer Group Rebalancing
- 기존 Consumer가 무슨 이유로 사라지거나 새로운 Consumer가 Group에 참여하는 경우 Partition들이 다시 지정이 되어야한다.
- 이를 Consumer Group Rebalancing이라고 부르며 Kafka에서 알아서 수행해준다.
ksqlDB
- REST API나 ksql 클라이언트 툴을 사용해서 Topic을 테이블처럼 SQL로 조작
'데브코스' 카테고리의 다른 글
데이터 엔지니어링 66일차 TIL (0) | 2024.07.02 |
---|---|
데이터 엔지니어링 65일차 TIL (0) | 2024.06.30 |
데이터 엔지니어링 63일차 TIL (0) | 2024.06.30 |
데이터 엔지니어링 62일차 TIL (0) | 2024.06.30 |
데이터 엔지니어링 61일차 TIL (1) | 2024.06.30 |