Kafka Connect란? 카프카는 단순한 메세지 큐 이상으로 하나의 DB의 형태로 자리 매김을 하고 있다. 특히 실시간 데이터 처리가 중요한 스트림 처리의 경우 카프카에서 데이터를 읽어와서 처리하는 형식이 많이 이루어지고 있다. 그런데 최근에 나온 녀석들은 카프카를 대상으로 데이터를 공급하고 읽어오는 형태를 지원한다. 그렇지만 전통적으로 사용하고 있던 RDBMS는 카프카와 연동되는 기능이 제공되고 있지는 않다. 카프카 커넥트는 카프카 메세지 시스템(Broker / Producer / Consumer)를 기반으로 다양한 데이터 소스 시스템에서 발생한 데이터를 타겟 시스템으로 전달하기 위해 만들어진 Component다. 주요한 특징 중 하나는 Kafka와 관련된 코딩 없이 설정만으로 데이터를 Source..
들어가기 전 이 글은 카프카 스트림즈와 ksqlDB 정복의 11장을 공부하며 작성한 글입니다. 11.1 데이터 보강 (Data Enrich) 데이터 보강은 Raw Data에 새로운 데이터를 추가해서 더 의미있는 데이터를 만들어내는 행위를 의미한다. 단순히 데이터를 변경하는 작업과는 다르다. 데이터 보강의 대표적인 행위는 Join이 있다. 11.1.1 Join RDBMS에는 여러 테이블이 존재하고 각 테이블에서 데이터를 가져와 Join해서 의미있는 데이터를 만들어낸다. 마찬가지로 ksqlDB에서는 여러 Stream / Table에 데이터가 존재하고 여기서 메세지를 가져와 Join해서 의미있는 데이터를 만들어 낼 수 있다. Join은 두 가지 차원으로 분리할 수 있다. Join에 사용하는 식 : Inner,..
들어가기 전 이 글은 카프카 스트림즈와 ksqlDB 정복 10장을 공부하며 작성한 글입니다. 10.1 데이터 타입 ksqlDB는 여러 형태의 데이터 타입을 지원해준다. 타입 설명 ARRAY 동일 데이터 타입 요소들의 집합. → ARRAY BOOLEAN True / False INT 32비트 부호가 있는 정수 BIGINT 64비트 부호가 있는 정수 DOUBLE 754 부동 소수점 수 DECIMAL(precision, scale) 전체 자릿수(precisio와 소수점 자릿수 MAP(key-type, element-type) 각 데이터 타입과 일치하는 키와 값을 포함하는 객체 STRUCT 구조체 STRUCT VARCHAR / STRING 유니코드 문자열 (UTF8) 기본적으로는 쿼리를 생성할 때 각각의 컬럼명..
들어가기 전 이 글은 Kafka Streams와 ksqlDB 정복 8장을 공부하며 작성한 글입니다. 8.1 ksqlDB 시작하기 ksqlDB는 카프카 스트림즈 위에 한층 더 추상화 된 녀석이다. ksqlDB와 카프카 스트림즈는 스트리밍 처리 도구로 이해를 하면 되는데 각 컴포넌트마다 서로 다른 특성이 있기 때문에 필요한 곳에 적절히 사용할 수 있어야 한다. ksqlDB는 SQL 문법으로 되어있어 진입장벽이 낮은 대신에 복잡한 스트리밍 로직을 처리하는데 있어서는 한계가 존재한다. 반면 카프카 스트림즈는 진입장벽이 상대적으로 높은 대신 더 많은 자유도를 제공한다. 그리고 ksqlDB는 카프카 스트림즈가 한층 더 추상회 된 도구이기 때문에 카프카 스트림즈를 이해하는 것이 ksqlDB를 운영하는데 있어 큰 도움..
들어가기 전 이 글은 카프카 스트림즈와 ksqlDB 정복 7장을 공부하며 작성한 글입니다. 7.0 Processor API 카프카 스트림즈는 DSL / Processor API로 구성되어있다. DSL은 상위 수준의 추상화를 가져와서 개발 생산성을 확보해주지만 상대적으로 자유도는 떨어진다. Processor API는 자바 코드를 직접 작성해야하기 때문에 하위 수준의 추상화를 보여주지만 DSL에 비해서 넓은 자유도를 보장한다. 카프카 스트림즈에서는 DSL / Processor API를 각각 쓰거나 섞어서 사용하면서 어플리케이션을 개발한다. 이 곳에서는 Processor API를 언제 사용하는지에 대해 살펴보고자 한다. 7.1 Processor API는 언제 사용해야 할까? 스트림 처리 어플리케이션을 구축할 ..