📂 데이터베이스 및 컬렉션 생성1. 데이터베이스 생성Method: PUTURL: http://localhost:8080/mydb이 요청은 mydb라는 이름의 데이터베이스를 생성합니다.2. 컬렉션 생성Method: PUTURL: http://localhost:8080/mydb/mycollection이 요청은 mydb 데이터베이스 내에 mycollection이라는 컬렉션을 생성합니다.📝 문서 작업3. 문서 생성 (Create)Method: POSTURL: http://localhost:8080/mydb/mycollectionHeaders:Content-Type: application/jsonBody (raw JSON):{ "item": "notebook", "qty": 50, "size": { "..
📦 RESTHeart란?RESTHeart는 MongoDB를 위한 전문 REST API 서버입니다.MongoDB를 바로 HTTP REST API로 사용할 수 있게 만들어줍니다.별도 애플리케이션 코딩 없이, MongoDB를 그대로 API처럼 열어줍니다.완전 프로덕션(운영) 레벨까지 고려해서 만든 고성능 서버입니다.MongoDB를 HTTP REST API로 쉽게 열어주는, 고성능 오픈소스 서버✅ RESTHeart 주요 특징 항목 내용기능MongoDB 데이터베이스 → 자동 REST API 변환지원 APICRUD(Create, Read, Update, Delete) 전부 지원설치Docker, Standalone Jar인증/보안Basic Auth, JWT, OAuth2 지원확장성Custom 플러그인, 비즈니스 로..
MongoDB Source Connector는 대략 3가지 범주로 설정을 나눌 수 있습니다:기본 연결 / 필수 항목고급 옵션 / 스트리밍 관련오류 처리 / 변환 처리(SMT) / 성능 조정범주별로 모든 항목을 설명 + 언제 사용하는지까지 구체적으로 적어볼게요.1. 기본 연결 / 필수 항목항목 필수 설명connector.class✅com.mongodb.kafka.connect.MongoSourceConnector 로 고정tasks.max✅병렬 실행할 태스크 수. 기본 1. 복수 지정시 컬렉션을 샤딩해서 분산 읽기 가능connection.uri✅MongoDB 접속 URI (Authentication, ReplicaSet, TLS 모두 설정 가능)database⭕관찰할 데이터베이스 이름. 생략 가능 (컬렉션 ..
MongoDB에서 Kafka로 보내기 전에, 3단계 과정을 거칠 수 있습니다.필터링 (Filter)MongoDB Change Stream 이벤트 중 필요한 것만 선택 (→ MongoDB 서버단 처리)변환 (Transform)Kafka로 보내기 전에 메시지 구조를 바꾸거나 수정 (→ Kafka Connect SMT)포맷팅 (Formatting)Kafka 메시지의 Key/Value 직렬화 형태 지정 (→ JSON, BSON 등)이 3단계를 조합하면 훨씬 깔끔하고, 목적에 맞는 데이터 스트림을 만들 수 있어요.✋ 1. 필터링 (Filter) - MongoDB 단에서 필요한 데이터만 선택방법MongoDB Source Connector의 pipeline 옵션 사용MongoDB의 Aggregation Pipelin..
MongoDB Source Connector는 MongoDB의 데이터를 Kafka로 실시간 스트리밍하는 역할을 합니다.주요 개념:항목 설명역할MongoDB → Kafka 로 데이터 복제 (변경 스트림 기반)방식MongoDB Change Streams 활용패턴CDC(Change Data Capture)제공 형태Confluent MongoDB Source Connector 또는 Debezium MongoDB Connector 등 사용 가능기본 설정 항목 (MongoDB Source Connector)Kafka Connect용 Connector 설정 JSON(or YAML)을 예시로 보여드리겠습니다.{ "name": "mongo-source-connector", "config": { "connecto..
전체 구조MongoDB (Change Streams) ↓Kafka Connect (MongoDB Source Connector) ↓Kafka Topic ↓(필요하면) Kafka Consumer → 다른 시스템🔥 핵심 항목설명MongoDB데이터 변경(CRUD) 발생Change StreamsMongoDB의 변경 이벤트를 실시간 감지Kafka ConnectMongoDB Source Connector를 통해 Kafka로 변경 이벤트를 전송Kafka Broker이벤트를 Topic에 저장Kafka Consumer소비하여 다른 서비스/API/DB로 전파 가능🛠 세팅 방법 정리1. MongoDB 준비버전: MongoDB 4.0 이상 필요Replica Set 또는 Sharded Cluster 구성 필수➔ 단일 ..
🎯 Kafka Connect Transformer란?Kafka Connect SMT (Single Message Transformation)Kafka Connect에서 Kafka 메시지를 MongoDB로 보내기 전에 변형/필터/가공하는 기능입니다.즉,Kafka에 들어온 원본 메시지를MongoDB에 저장하기 좋게 가공할 수 있어요.예시:필드 추가/삭제JSON 구조 변경특정 필드를 키로 설정값 변환 (대문자/소문자, 타입 변경)토픽 이름에 따라 다른 컬렉션으로 분기🛠 Transformer 사용하는 방법Connector 등록할 때 transforms 설정을 추가합니다.{ "transforms": "변환이름", "transforms.변환이름.type": "org.apache.kafka.connect.tr..
등록 (Insert)✅ 가능기본 동작수정 (Update)✅ 가능특정 설정 + 메시지 포맷 필요삭제 (Delete)✅ 가능특정 설정 + Tombstone 메시지조회 (Select)❌ 불가Sink는 쓰기 전용(읽기 불가) 1. 등록 (Insert)아무 설정도 추가 안 해도 Kafka → MongoDB로 "Insert" 됩니다.Kafka에 JSON 데이터가 오면 → MongoDB 컬렉션에 새 문서로 들어갑니다.Kafka 메시지 예시:{ "id": "123", "name": "Alice", "email": "alice@example.com"}MongoDB 결과:{ "_id": ObjectId("..."), "id": "123", "name": "Alice", "email": "alice@exampl..
✅ MongoDB Sink Connector 설정에 유용한 주요 옵션들키설명connection.uri필수. MongoDB 접속 주소 (mongodb://user:pass@host:port/?authSource=...)topicsKafka에서 수신할 토픽 이름 (쉼표로 여러 개 가능)databaseMongoDB 내 사용할 데이터베이스 이름collectionMongoDB 내 컬렉션 이름tasks.max병렬 태스크 수 (성능 확장용)writemodel.strategyReplaceOneDefaultStrategy, InsertOneDefaultStrategy 등 쓰기 전략document.id.strategy문서의 _id 생성 방식 (예: BsonOidStrategy, ProvidedInKeyStrategy, F..
📦 아키텍처 요약 +------------------+ | Your App (API) | +--------+---------+ | MongoDB Driver | +----------v----------+ | FerretDB | (MongoDB 프로토콜 호환 서버) +----------+----------+ | PostgreSQL (JSONB 기반 저장)1. ✅ Kubernetes에 PostgreSQL & FerretDB 배포(1) PostgreSQ..