Just Fighting
[Kafka] 카프카 개념정리 - 토픽 본문
카프카에는 다양한 데이터가 들어갈 수 있음
이 데이터가 들어가는 공간을 ‘토픽’이라고 함
일반적인 AMQP와는 다르게 동작함
카프카는 토픽을 여러 개 생성할 수 있음
토픽은 데이터베이스의 테이블이나 파일시스템의 폴더와 유사한 성질을 가짐
프로듀서가 토픽에 데이터를 넣고, 컨슈머가 그 데이터를 가져감
토픽은 이름을 가질 수 있음. 무슨 데이터를 담는지 명시하면 추후 유지보수에 편리함.
하나의 토픽은 여러개의 파티션으로 구성될 수 있으며, 파티션의 번호는 0부터 시작함.
파티션에 데이터가 차곡차곡 쌓이게 됨.
컨슈머는 데이터를 가장 오래된 순으로 가져감.
더 이상 데이터가 들어오지 않으면 컨슈머는 새로운 데이터가 들어올 때까지 기다림.
이 때, 컨슈머가 데이터를 가져가더라도 데이터는 삭제되지 않는다. 파티션에 그대로 남음.
새로운 컨슈머가 붙으면 데이터를 다시 가장 오래된 데이터부터 가져갈 수 있음.
단, 컨슈머 그룹이 달라야하고, auto.offset.reset = earliest여야함.
이렇게 하면 동일 데이터를 두 번 처리할 수 있음. 이게 카프카를 사용하는 중요한 이유!
예를 들어, 엘라스틱 서치에 저장을 할 수도 있고, 하둡에 저장을 할 수도 있음.
파티션이 여러 개일 때,
키가 null이고, 기본 파티셔너를 사용할 경우에는 라운드 로빈으로 파티션에 할당됨.
키가 있고, 기본 파티셔너를 사용할 경우네는 키의 해시값을 구하고 특정 파티션에 할당됨.
파티션을 늘릴 때 조심해야함. 파티션을 늘리는 건되지만 줄이는 건 불가능 하기 때문!
파티션의 개수를 늘리면 컨슈머의 개수를 늘려서 데이터 처리를 분산시킬 수 있음.
파티션에 있는 데이터를 삭제는?
삭제되는 타이밍은 옵션에 따라 다름.
레코드가 저장되는 최대 시간과 크기를 지정할 수 있음.
참고 : https://www.youtube.com/watch?v=7QfEpRTRdIQ&list=PL3Re5Ri5rZmkY46j6WcJXQYRlDRZSUQ1j&index=2
'Big Data' 카테고리의 다른 글
[Kafka] 카프카 기본개념 (0) | 2022.05.10 |
---|---|
[PySpark] 하이퍼 파라미터 튜닝하기 (0) | 2022.04.02 |
[PySpark] Pipeline 사용하기 (0) | 2022.03.29 |
[PySpark] MLlib를 이용한 로지스틱 회귀분석 (0) | 2022.03.24 |
[Spark] 데이터 전처리하기(spark sql사용, 결측값 처리) (0) | 2022.03.15 |