inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

카프카 스트림즈 소개

카프카 스트림즈 관련해 질문있습니다.

180

황영롱

작성한 질문수 10

0

안녕하세요 강의 막마지 수강중인대요

topic에서 데이터를 가져와 가공을 한 뒤 다른 topic에(싱크프로세서) 데이터를 저장할 때 스트림즈를 사용하면 좋다고 강의를 통해 알게는 되었는대요

 

궁금한점은 topic 데이터를 가져와 처리후 다른 토픽이 아닌 db같은 곳에 데이터를 저장할 수도 있잖아요?

그런경우는 스트림즈를 사용하지 않나요?

위와 같은 흐름이 필요한대 그럴경우 어떻게 구성하는게 좋은가요?

 

스트림즈로 데이터를 처리해 다른 토픽에 넣고

커넥트를 사용해 그 토픽에서 db로 저장하도록 구현하는게 좋을지 스트림을 통해 db까지 저장할 수 있는건지 궁금합니다

 

추가로, 데이터 가공시에 스트림즈에서 외부 db에서 데이터를 조회해서 가공하도록 해도 괜찮은가요?

kafka 데이터-엔지니어링

답변 2

0

데브원영 DVWY

안녕하세요!

토픽으로 데이터를 가져와서 DB같은 곳에 저장하기 위해서 스트림즈를 사용하는 경우도 있습니다. 컨슈머 라이브러리를 사용하게 되면 커밋 타이밍을 조절하거나 세세한 리밸런싱에 대한 조절을 할 수 있는 장점이 있습니다. 하지만, 요구사항에 따라 이러한 세세한 설정들이 반드시 필요한 것은 아니기 때문에 스트림즈를 사용하여 DB에 적재하는 파이프라인을 만드는 것이 이상한 것이 아닙니다.

그리고 커넥트를 사용하여 DB적재 파이프라인을 만드는 것도 좋은 방법입니다. 특히 커넥트를 사용하면 반복적으로 파이프라인을 만들어 운용할 수 있으므로 장점이 있습니다.

결과적으로 요구사항이 "데이터 가공 후 DB 적재 파이프라인 개발"이라고 한다면, 카프카 스트림즈를 활용하여 변환 후 적재 과정을 수행해도 좋은 방법이라 생각됩니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

카프카 스트림즈는 데이터를 처리하고 분석하는데 주로 사용되는 클라이언트 라이브러리입니다. 카프카 토픽에서 데이터를 읽어 처리 후, 다른 토픽에 저장하는 용도로 매우 적합합니다. 하지만, 직접적으로 스트림즈를 사용해 데이터베이스(DB)에 데이터를 저장하는 기능은 제공하지 않습니다.

데이터를 카프카 토픽에서 가져와 가공한 후 DB에 저장할 경우, 카프카 커넥트(Kafka Connect)를 활용하는 것이 일반적입니다. 스트림즈로 데이터를 가공하여 새로운 토픽에 넣은 뒤, 해당 토픽을 소스로 사용하여 커넥트를 통해 DB에 저장할 수 있습니다. 이렇게 함으로써 데이터 파이프라인의 각 단계에서 필요한 툴을 효율적으로 사용할 수 있습니다.

데이터 가공 시, 스트림즈에서 외부 데이터베이스를 조회하는 것도 가능합니다. 하지만, 이 경우에는 외부 시스템과의 연동을 위해 추가적인 구현이 필요할 수 있으며, 처리 성능이나 지연 시간 등을 고려하여 설계하는 것이 중요합니다.

스트림즈로 데이터를 처리한 뒤 커넥트를 사용해 데이터베이스에 저장하는 방식은 매우 효과적인 접근 방법 중 하나입니다. 소스에서 데이터를 읽어 처리하고, 결과를 다양한 싱크(Sink)로 전송할 수 있어 카프카를 중심으로 한 유연하고 확장 가능한 데이터 파이프라인을 구축할 수 있습니다.

자세한 내용은 카프카 스트림즈 문서에서 참조하실 수 있습니다:

카프카 스트림즈 문서 바로가기

이를 통해 보다 구체적인 구현 방법과 예제를 확인할 수 있을 것입니다.

consume 이후 lag가 줄어들지 않음

0

75

2

안녕하세요. 강의의 카프카 버전과 현재 시점의 카프카의 차이점 문의 드립니다.

0

118

2

멱등성 프로듀서 retries 관련 질문입니다.

0

99

2

채팅 서비스 개발 시 주의점이 있을까요?

0

100

2

충분히 큰 파티션 생성시 궁금증이 존재합니다.

0

88

2

KTable 키가 없는 레코드 처리

0

73

2

컨슈머 테스트 코드 작성

0

94

2

리밸런스 onPartitionRevoked이 필요한 상황

0

74

2

카프카 클러스터에서 감당 가능한 파티션(레플리카) 수 문의

0

120

2

reset offset 질문

0

77

2

KStreamJoinKTable 실행시 오류

0

78

2

auto.commit.interval.ms 옵션 관련 질문 드립니다.

0

142

2

파티션, 컨슈머 그룹, 컨슈머 관련 질문

0

117

1

java, kotlin

0

130

2

shutdownThread 에 대한 문의 입니다.

0

155

2

zookeeper실행시 오류가 발생합니다.

0

271

2

커스텀 소스 커넥터에서 Thread.sleep (1000) 은 왜 하는거에요?

0

153

2

처리량을 늘리기 위해서 파티션을 늘리고 컨슈머를 늘려야한다고 설명하셨는데요

0

181

3

파티션 개수와 컨슈머 개수의 처리량 관련 질문

0

164

2

동영상 및 이미지 처리 관련 문의 드립니다.

0

226

2

주키퍼 없이 사용 문의 드립니다.

0

303

1

kafka 를 띄우니 오류가 발생하고 종료합니다.

0

281

3

zookeeper 실행시 오류 .. 무엇을 해야 할까요?

0

220

2

파티션 추가로 해결할 수 있지만 늘어난 파티션은 줄일 수 없지 않나요?

0

192

2