24601/surreal-skills

Migration et synchronisation de données vers SurrealDB depuis MongoDB, PostgreSQL, MySQL, Neo4j, Kafka et JSONL. Synchronisation complète et incrémentielle via CDC. Fait partie de la collection surreal-skills.

Qu'est-ce que surreal-skills ?

Surreal-Sync est un outil en ligne de commande (CLI) conçu pour migrer et synchroniser des données de diverses sources vers SurrealDB. Il prend en charge les migrations complètes (full sync) ainsi que les synchronisations incrémentielles en temps réel via le Change Data Capture (CDC). Les sources supportées incluent MongoDB, MySQL, PostgreSQL, Neo4j, Kafka et les fichiers JSONL, avec des méthodes de CDC adaptées à chaque source (change streams, logs WAL2JSON, déclencheurs, suivi temporel, etc.). L'outil est particulièrement utile pour les développeurs et ingénieurs de données travaillant avec SurrealDB, car il automatise la création de schémas, la correspondance des identifiants, l'extraction de relations et la gestion des points de reprise. Il est disponible via Cargo (Rust), et sa documentation complète se trouve dans le fichier SKILL.md ou le dépôt upstream.

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

Installed? Explore more Recherche et analyse de données skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Surreal-Sync -- Migration et synchronisation de données

Surreal-Sync est un outil CLI pour migrer des données de diverses sources de base de données vers SurrealDB, avec synchronisation complète et incrémentielle via Change Data Capture (CDC).

Sources prises en charge

SourceSynchronisation complèteCDC incrémentielMéthode
MongoDBOuiOuiChange streams
MySQLOuiOuiCDC basé sur des déclencheurs + points de contrôle de séquence
PostgreSQL (déclencheurs)OuiOuiCDC basé sur des déclencheurs + points de contrôle de séquence
PostgreSQL (wal2json)OuiOuiRéplication logique avec plugin wal2json
Neo4jOuiOuiSuivi basé sur les horodatages
Fichiers JSONLOuiN/AImport par lots depuis JSON Lines
Apache KafkaOuiOuiAbonnements consommateur avec déduplication

Démarrage rapide

# Installer surreal-sync (binaire Rust)
cargo install surreal-sync

# Synchronisation complète depuis PostgreSQL (basée sur déclencheurs)
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 incrémentiel depuis 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

# Synchronisation complète depuis 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

# Import par lots depuis 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

# Consommation depuis 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

Modèle CLI

surreal-sync from <SOURCE> <COMMANDE> \
  --connection-string [CHAÎNE DE CONNEXION] \
  --surreal-endpoint [ENDPOINT SURREAL] \
  --surreal-username [NOM D'UTILISATEUR SURREAL] \
  --surreal-password [MOT DE PASSE SURREAL] \
  --to-namespace <NS> \
  --to-database <BD>

Fonctionnalités clés

  • Inférence automatique du schéma et création de tables SurrealDB
  • Correspondance des identifiants d'enregistrement à partir des clés primaires source
  • Extraction de relations et création d'arêtes de graphe
  • Tailles de lots et parallélisme configurables
  • Synchronisation reprenable avec suivi des points de contrôle
  • Déduplication pour les consommateurs Kafka

Documentation complète

Voir le fichier de règles principal de la compétence pour des conseils complets :

Individual skills in this repo

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

Skills associés