24601/surreal-skills

Migración y sincronización de datos a SurrealDB desde MongoDB, PostgreSQL, MySQL, Neo4j, Kafka y JSONL. Sincronización completa e incremental CDC. Parte de la colección surreal-skills.

¿Qué es surreal-skills?

Surreal-Sync es una herramienta de línea de comandos (CLI) diseñada para migrar y sincronizar datos desde diversas fuentes (bases de datos relacionales, documentales, grafos, sistemas de mensajería y archivos) hacia SurrealDB. Ofrece tanto sincronización completa como sincronización incremental mediante Change Data Capture (CDC), lo que la hace ideal para mantener datos actualizados en tiempo real o en lotes. Soporta fuentes como MongoDB, MySQL, PostgreSQL (con dos métodos: triggers y wal2json), Neo4j (con seguimiento por marcas de tiempo), archivos JSONL y Apache Kafka (con consumidores y deduplicación). La herramienta infiere automáticamente el esquema de datos, crea tablas en SurrealDB, mapea IDs de registros de origen, extrae relaciones para crear aristas de grafo y permite reanudar sincronizaciones mediante puntos de control. Está disponible como un binario de Rust instalable con cargo y se integra fácilmente en pipelines de datos. Su documentación completa cubre configuración de fuentes, mapeo de esquemas, configuración de CDC y estrategias de resolución de conflictos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/24601/surreal-skills/tree/main/skills/surreal-sync

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Surreal-Sync -- Migración y Sincronización de Datos

Surreal-Sync es una herramienta CLI para migrar datos desde diversas fuentes de bases de datos a SurrealDB con sincronización completa e incremental mediante Change Data Capture (CDC).

Fuentes Soportadas

FuenteSincronización CompletaCDC IncrementalMétodo
MongoDBSíSíChange streams
MySQLSíSíCDC basado en triggers + puntos de control de secuencia
PostgreSQL (triggers)SíSíCDC basado en triggers + puntos de control de secuencia
PostgreSQL (wal2json)SíSíReplicación lógica con plugin wal2json
Neo4jSíSíSeguimiento basado en marcas de tiempo
Archivos JSONLSíN/AImportación por lotes desde JSON Lines
Apache KafkaSíSíSuscripciones de consumidor con deduplicación

Inicio Rápido

# Instalar surreal-sync (binario Rust)
cargo install surreal-sync

# Sincronización completa desde PostgreSQL (basado en triggers)
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

# CDC incremental desde PostgreSQL (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

# Sincronización completa desde 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

# Importación por lotes desde 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

# Consumir desde 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

Patrón CLI

surreal-sync from <SOURCE> <COMMAND> \
  --connection-string [CADENA DE CONEXIÓN] \
  --surreal-endpoint [ENDPOINT SURREAL] \
  --surreal-username [USUARIO SURREAL] \
  --surreal-password [CONTRASEÑA SURREAL] \
  --to-namespace <NS> \
  --to-database <DB>

Características Clave

  • Inferencia automática de esquema y creación de tablas en SurrealDB
  • Mapeo de IDs de registros desde claves primarias de origen
  • Extracción de relaciones y creación de aristas de grafo
  • Tamaños de lote y paralelismo configurables
  • Sincronización reanudable con seguimiento de puntos de control
  • Deduplicación para consumidores de Kafka

Documentación Completa

Consulte el archivo de reglas del skill principal para obtener una guía completa:

Individual skills in this repo

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

Skills relacionados