Data Engineering/Kafka

Kafka CLI 정리

cstory-bo 2024. 9. 22. 23:12

Kafka CLI 정리

  • topic 리스트 확인하기
kafka-topics.sh --bootstrap-server 0.0.0.0:9092 --list
  • topic 생성하기
kafka-topics.sh --create --topic <topic name> --bootstrap-server 0.0.0.0:9092
  • topic 확인하기
kafka-topics.sh --describe --topic <topic name> --bootstrap-server 0.0.0.0:9092
  • topic에서 이벤트 읽기
kafka-console-consumer.sh --topic <topic name> --bootstrap-server 0.0.0.0:9092 --from-beginning
  • topic에 이벤트 쓰기
    • 키 없이 전송
kafka-console-producer.sh --topic <topic name> --bootstrap-server 0.0.0.0:9092 [원하는 내용 입력]
  • 키를 가지는 레코드 전송
kafka-console-producer.sh --topic <topic name> --bootstrap-server 0.0.0.0:9092 --property "parse.key=true" --property "key.separator=:" key1:no1
  • topic에 레코드 삭제
    • 카프카에서는 토픽의 파티션에 저장된 특정 데이터만 삭제할 수는 없다. 파티션에 존재하는 가장 오래된 오프셋부터 지정한 오프셋까지 삭제된다.
    vi delete-topic.json
    {"partitions": [{"topic“: ”test”, ”partition”: 0, "offset”: 50}], "version”:1)
    
    kafka-delete-records.sh --bootstrap-server 0.0.0.0:9092 --offset-json-file delete-topic.json
    

키가 존재하지 않을 경우 라운드 로빈으로 파티션에 전송한다.

키가 존재하면 기본 파티셔너 같은 경우에는 키의 해시값을 이용하여 파티션에 전송하며 커스텀 파티셔너를 생성하면 다르게 할당할 수 있다.

'Data Engineering > Kafka' 카테고리의 다른 글

Kafka 기본 개념  (1) 2024.09.16
Kafka 배경 - Event Driven Architecture  (2) 2024.09.16