인프런 커뮤니티 질문&답변

황영롱님의 프로필 이미지
황영롱

작성한 질문수

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

카프카 스트림즈 소개

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

작성

·

123

·

수정됨

0

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

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

 

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

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

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

 

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

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

 

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

답변 2

0

데브원영 DVWY님의 프로필 이미지
데브원영 DVWY
지식공유자

안녕하세요!

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

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

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

0

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

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

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

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

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

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

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

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

황영롱님의 프로필 이미지
황영롱

작성한 질문수

질문하기