Community연구 & 데이터 분석github.com

24601/surreal-skills

MongoDB, PostgreSQL, MySQL, Neo4j, Kafka 및 JSONL에서 SurrealDB로의 데이터 마이그레이션 및 동기화. 전체 동기화 및 증분 CDC 동기화를 지원합니다. surreal-skills 컬렉션의 일부입니다.

surreal-skills란 무엇인가요?

Surreal-Sync는 다양한 데이터베이스 소스에서 SurrealDB로 데이터를 마이그레이션하기 위한 CLI 도구입니다. 전체 동기화와 CDC(Change Data Capture)를 통한 증분 동기화를 모두 지원하여 데이터의 지속적인 일관성을 유지합니다. MongoDB, MySQL, PostgreSQL(트리거 기반 및 wal2json 논리 복제), Neo4j, JSONL 파일, Apache Kafka 등 다양한 소스를 지원하며, 각 소스에 대해 최적화된 동기화 방법을 제공합니다. 자동 스키마 추론, 레코드 ID 매핑, 관계 추출 및 그래프 에지 생성과 같은 고급 기능을 통해 SurrealDB로의 데이터 통합을 단순화하고, 중단된 동기화를 재개할 수 있는 체크포인트 추적 기능도 제공합니다. 이 도구는 Rust로 작성된 바이너리로 `cargo install surreal-sync` 명령어로 간편하게 설치할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/24601/surreal-skills/tree/main/skills/surreal-sync

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Surreal-Sync -- 데이터 마이그레이션 및 동기화

Surreal-Sync는 다양한 데이터베이스 소스에서 SurrealDB로 데이터를 마이그레이션하기 위한 CLI 도구로, CDC(Change Data Capture)를 통한 전체 동기화 및 증분 동기화를 지원합니다.

지원 소스

소스전체 동기화증분 CDC방법
MongoDB예예변경 스트림(Change streams)
MySQL예예트리거 기반 CDC + 시퀀스 체크포인트
PostgreSQL (트리거)예예트리거 기반 CDC + 시퀀스 체크포인트
PostgreSQL (wal2json)예예wal2json 플러그인을 사용한 논리 복제
Neo4j예예타임스탬프 기반 추적
JSONL 파일예해당 없음JSON Lines에서 배치 가져오기
Apache Kafka예예중복 제거 기능이 있는 컨슈머 구독

빠른 시작

# surreal-sync 설치 (Rust 바이너리)
cargo install surreal-sync

# PostgreSQL에서 전체 동기화 (트리거 기반)
surreal-sync from postgres trigger-full \
  --connection-string "postgresql://user:pass@localhost/mydb" \
  --surreal-endpoint "http://localhost:8000" \
  --surreal-username root \
  --surreal-password root \
  --to-namespace prod \
  --to-database main

# PostgreSQL에서 증분 CDC 동기화 (wal2json)
surreal-sync from postgres wal2json \
  --connection-string "postgresql://user:pass@localhost/mydb" \
  --surreal-endpoint "http://localhost:8000" \
  --surreal-username root \
  --surreal-password root \
  --to-namespace prod \
  --to-database main

# MongoDB에서 전체 동기화
surreal-sync from mongo full \
  --connection-string "mongodb://localhost:27017/mydb" \
  --surreal-endpoint "http://localhost:8000" \
  --surreal-username root \
  --surreal-password root \
  --to-namespace prod \
  --to-database main

# JSONL에서 배치 가져오기
surreal-sync from jsonl import \
  --file data.jsonl \
  --surreal-endpoint "http://localhost:8000" \
  --surreal-username root \
  --surreal-password root \
  --to-namespace prod \
  --to-database main

# Kafka에서 소비
surreal-sync from kafka consume \
  --bootstrap-servers "localhost:9092" \
  --topic my-events \
  --surreal-endpoint "http://localhost:8000" \
  --surreal-username root \
  --surreal-password root \
  --to-namespace prod \
  --to-database main

CLI 패턴

surreal-sync from <SOURCE> <COMMAND> \
  --connection-string [CONNECTION STRING] \
  --surreal-endpoint [SURREAL ENDPOINT] \
  --surreal-username [SURREAL USERNAME] \
  --surreal-password [SURREAL PASSWORD] \
  --to-namespace <NS> \
  --to-database <DB>

주요 기능

  • 자동 스키마 추론 및 SurrealDB 테이블 생성
  • 소스 기본 키에서 레코드 ID 매핑
  • 관계 추출 및 그래프 에지 생성
  • 구성 가능한 배치 크기 및 병렬 처리
  • 체크포인트 추적으로 재개 가능한 동기화
  • Kafka 컨슈머용 중복 제거

전체 문서

전체 가이드는 메인 스킬의 규칙 파일을 참조하세요:

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

관련 스킬