DSEDataSourceExplorer
DSE 1.0.1

Générer des déployables et writers universels de destination

Generate deployables crée un runner portable à partir du catalogue et/ou de définitions Output Target enregistrées. Il peut conserver les sorties CSV/Excel et router plusieurs cibles logiques vers une destination physique unique.

DSE utilise maintenant un Universal Destination Writer Framework. Tous les presets Output Target actuels disposent d’un chemin d’écriture exécutable. DSE choisit l’adaptateur approprié : provider natif, ODBC, REST/OData, SDK d’object storage, fichier ou gateway.

« Runtime writer » signifie que le runner généré sait exécuter la route. Certains prérequis restent externes : pilote ODBC du fournisseur, identifiants API, permissions cloud ou gateway approuvée pour VSAM/IMS/CICS.

Flux recommandé

  1. Découvrez les sources et vérifiez le catalogue.
  2. Créez/révisez les mappings dans Compose targets.
  3. Ouvrez Generate deployables et ajoutez les targets enregistrées.
  4. Configurez la destination avant d’activer l’écriture.
  5. Vérifiez technologie du writer, noms d’objets et mode d’écriture.
  6. Activez Route selected targets to one destination uniquement pour autoriser la route physique.
  7. Testez la connexion, choisissez plateforme/RID, puis générez.
  8. Exécutez, consultez View results et rapprochez les comptes du système cible.

Cibles logiques et destination physique

Un Output Target est un contrat logique. Il n’a pas besoin d’utiliser la même technologie que la destination physique.

Exemples :

MongoDB + Couchbase + InfluxDB -> PostgreSQL

Oracle + MongoDB + DynamoDB -> Redis

Le manifeste conserve provenance et mappings afin que les enregistrements soient envoyés au bon objet de destination.

Configurer d’abord, activer ensuite

Le preset, le mode, les noms et les types d’objets restent modifiables lorsque le routage est désactivé. La case de routage contrôle l’exécution externe, pas l’édition.

Technologies de writer

Technologie Destinations typiques Prérequis
Native SQL/Azure SQL/Synapse, PostgreSQL, MySQL/MariaDB, Oracle, SQLite, MongoDB, DynamoDB, Cassandra, Redis, Neo4j Provider packagé + réseau/identifiants
ODBC Db2, Informix, Teradata, HANA, Snowflake, Redshift, BigQuery, Spanner, Databricks, Hive, Trino, SAS Viya, Access/dBase, IBM i/zOS, etc. Pilote ODBC fournisseur + Driver=/DSN=
REST/OData CosmosDB, Couchbase/CouchDB, Elasticsearch/OpenSearch, ArangoDB, InfluxDB, Salesforce, Dynamics, SharePoint, ServiceNow, Workday, SAP OData Endpoint + authentification
Object store S3, Azure Blob, ADLS Gen2, GCS Identifiants fournisseur
File File System, SMB, NFS, Excel Chemin accessible en écriture
Gateway VSAM, IMS, CICS, Generic Gateway HTTP approuvée ou chemin ODBC

Destination object routing

Destination object est directement éditable. Les noms doivent être non vides, uniques et valides. Le type d’objet est limité par le writer : Table, Collection, Hash, Index, Label, Measurement, Bucket, etc.

Append et Replace

Pour Salesforce, Dynamics 365 CRM, SharePoint, ServiceNow, Workday et SAP OData, le writer API direct expose uniquement Append. Un Replace destructif complet nécessite une gateway approuvée avec une politique métier explicite.

Connexion

En production, préférez l’injection runtime :

DSX_DESTINATION_CONNECTION_STRING

ODBC exige un string explicite Driver= ou DSN= et le pilote installé sur l’hôte d’exécution.

REST/OData utilise généralement Url=/Endpoint=, token, utilisateur/mot de passe ou API key.

VSAM/IMS/CICS/Generic utilisent une gateway Endpoint=https://... ou une surface ODBC autorisée.

Modèle canonique

Le runner convertit d’abord les données source en enregistrements DSE neutres contenant id stable, provenance et champs mappés. L’adaptateur de destination traduit ensuite ce modèle vers la représentation physique.

AI Advisor

Dans Destinations, sélectionnez une seule recommandation IA avec le bouton radio. Utiliser la destination sélectionnée dans Deployables prépare cette destination pour la prochaine session Generate Deployables. Créer des cibles brouillon crée ou actualise uniquement la destination sélectionnée afin d’éviter les brouillons IA en double.

AI Advisor recommande et transmet une route, mais n’écrit pas silencieusement dans les systèmes externes. L’utilisateur approuve technologie, objets, mode, connexion et package avant l’exécution.

Tous les presets actuels ayant désormais un chemin de writer, la recommandation peut conserver sa technologie cible, sous réserve des prérequis runtime.

Dépannage

Production

Testez avec peu de lignes, préférez Append au début, protégez les secrets, utilisez le moindre privilège, des objets/préfixes dédiés et conservez les artefacts d’audit avant le cutover.

Fiabilité d’entreprise, lignage et sécurité de reprise

Les deployables générés peuvent maintenant inclure une couche de fiabilité en plus des sorties CSV/Excel et du routage physique.

Chaque exécution reçoit un Run ID et peut produire sous output/audit/<run-id>/ :

Les artefacts de lignage excluent les chaînes de connexion et les secrets.

Lease et heartbeat

Activer le verrou d’exécution et le heartbeat crée un lease propre au schéma et un heartbeat dans le répertoire d’état. Deux runners partageant le même schéma et DSX_STATE_DIR ne peuvent pas s’exécuter simultanément. Pour un modèle actif/passif, utilisez un stockage durable partagé.

Overrides utiles : DSX_RUN_ID/--run-id, DSX_STATE_DIR/--state-dir, --lease-timeout-seconds, --heartbeat-seconds.

Reprises et checkpoints

Les lectures confrontées à des erreurs transitoires utilisent un backoff exponentiel borné. Les écritures ne sont rejouées que lorsque le writer annonce des garanties transactionnelles ou Upsert adaptées.

La reprise conserve des checkpoints des écritures de destination terminées. Après une panne, un nouveau processus peut éviter de les rejouer tout en reconstruisant CSV/Excel. La reprise est désactivée pour Replace.

Différence avec CDC

Les checkpoints améliorent la reprise mais ne constituent pas un Change Data Capture (CDC) basé sur les journaux. Le mode de lecture reste Snapshot. Un CDC de production exige des adaptateurs par source et des curseurs durables : LSN SQL Server CDC, WAL/logical replication PostgreSQL, resume tokens MongoDB, continuations Cosmos Change Feed, positions de shards DynamoDB Streams, etc.

Voir Docs/Enterprise-Reliability-CDC-Governance-HA-Plan.md.

<!-- DSE_DEPLOYABLE_CERTIFICATION_HELP_V1 -->

20. Exécution certifiée des déployables Windows et Linux générés

Utilisez cette section après la fin de Generate deployables. Elle documente le flux de certification/exécution pour les packages générés win-x64 et linux-x64 natifs. Il s’agit de runners d’intégration générés, et non des SKU d’installation commerciaux Windows/Container de DSE.

20.1 Déployable Windows (windows/win-x64)

Copiez le dossier Windows généré sur la machine de certification (ou extrayez l’archive transférée), puis travaillez depuis le répertoire windows\win-x64.

Vérifiez la présence de ces fichiers générés avant la première exécution :

Démarrez le Runtime Manager local :

cd /d C:\Path\To\deployables\windows\win-x64
manager.cmd

manager.cmd lance DataSourceExplorer.Runner.exe --manager. Le gestionnaire écoute sur 127.0.0.1 et ouvre normalement le navigateur par défaut. Si le navigateur ne s’ouvre pas, lancez directement l’exécutable et utilisez l’URL de gestion locale affichée dans la console.

DataSourceExplorer.Runner.exe --manager
  1. Vérifiez que Runtime status indique READY et qu’aucune exécution n’est active.
  2. Dans Connections, vérifiez que chaque source et destination requise est Configured. Laissez les champs protégés vides pour conserver la valeur enregistrée/intégrée.
  3. Pour la première certification, utilisez la planification Manual only et définissez le dossier de sortie sur output.
  4. Sélectionnez Run now et attendez le retour de l’état READY.
  5. Vérifiez que Last result et Run history indiquent Success, puis contrôlez indépendamment les sorties/données de destination attendues.

Pour une exécution unique sans interface :

run.cmd

Le générateur tente d’abord une publication autonome. S’il a dû revenir à une publication dépendante du framework, installez les runtimes .NET 8 et ASP.NET Core 8 correspondants sur la machine cible.

20.2 Déployable Linux (linux/linux-x64) — flux Ubuntu Hyper-V validé

La procédure suivante suit le guide validé Ubuntu Server 26.04.1 LTS / Microsoft Hyper-V fourni pour la certification. Elle exécute le déployable Linux natif ; Docker n’est pas requis.

Accès navigateur sécurisé recommandé depuis Windows

Au lieu d’exposer le gestionnaire sur le réseau de la VM, créez un transfert de port SSH local depuis Windows PowerShell après avoir lu le port du gestionnaire dans le journal Linux :

ssh -L 18093:127.0.0.1:<manager-port> <linux-user>@<VM-IP>

Ouvrez ensuite http://127.0.0.1:18093/ sous Windows. Gardez la session SSH ouverte pendant l’utilisation du gestionnaire. Le relais socat décrit ci-dessous reste utile sur un réseau de certification isolé/de confiance.

Objectif

Cette procédure crée une machine virtuelle Ubuntu Server légère et exécute le déployable Linux natif généré par DSE. Elle reproduit le flux Windows : copier le package généré, démarrer le DSE Deployable Runtime Manager, ouvrir le gestionnaire depuis l’hôte Windows, exécuter le déployable et vérifier le résultat.

Le package décrit ici est un déployable natif linux-x64. Docker n’est pas requis pour ce flux.

Prérequis

Windows → Hyper-V → Ubuntu → DSE Runtime Manager → Browser

1. Créer la machine virtuelle Hyper-V

Créez une VM de génération 2 avec les paramètres de base suivants :

Nom de la VM DSE-Linux-Test
Génération Génération 2
Mémoire 4096 Mo de RAM fixe recommandés
Processeurs 4 processeurs virtuels
Disque VHDX 40 Go à extension dynamique
Réseau Commutateur par défaut Hyper-V
Secure Boot Activé - Microsoft UEFI Certificate Authority
Système Ubuntu Server LTS (26.04.1 utilisé pour cette validation)

Pendant l’installation d’Ubuntu, sélectionnez Install OpenSSH server. Après l’installation, éjectez l’ISO et démarrez sur le disque virtuel.

2. Préparer Ubuntu

Connectez-vous à Ubuntu et mettez le système à jour. Vérifiez ensuite le processeur, la mémoire, le disque et l’adresse IP.

sudo apt update
sudo apt upgrade -y
hostname -I
nproc
free -h
df -h

Si le VHDX de 40 Go existe mais que le volume racine ne fait qu’environ 18-19 Go, étendez le volume logique LVM pour utiliser l’espace libre.

sudo vgs
sudo lvextend -l +100%FREE -r /dev/ubuntu-vg/ubuntu-lv
df -h

3. Se connecter depuis Windows avec SSH

Utilisez l’adresse IP actuelle de la VM retournée par hostname -I. L’adresse du commutateur par défaut Hyper-V peut changer après un redémarrage.

ssh <linux-user>@<VM-IP>

4. Copier le dossier Linux généré

Exécutez ssh/scp depuis Windows PowerShell, et non depuis le shell Ubuntu. DSE génère un dossier linux, pas un fichier linux.zip. Remplacez le chemin, l’utilisateur et l’IP par les valeurs réelles.

ssh <linux-user>@<VM-IP> "rm -rf /home/<linux-user>/dse-deploy/linux && mkdir -p /home/<linux-user>/dse-deploy"
scp -r "C:\Path\To\GeneratedDeployables\...\linux" <linux-user>@<VM-IP>:/home/<linux-user>/dse-deploy/

Si Linux affiche « Could not resolve hostname c: », la commande scp a été exécutée dans Ubuntu. Revenez à Windows PowerShell et relancez-la.

5. Préparer le déployable

Installez socat si vous utilisez le relais, ouvrez le dossier linux-x64 copié et appliquez les droits d’exécution Linux. Les scripts générés par la version actuelle de DSE sont en UTF-8 sans BOM : aucune extraction ni suppression de BOM n’est nécessaire.

sudo apt update && sudo apt install -y socat
cd ~/dse-deploy/linux/linux-x64
chmod +x DataSourceExplorer.Runner manager.sh run.sh
ls -l DataSourceExplorer.Runner manager.sh run.sh

6. Vérifier la connectivité source/destination

Avant de démarrer DSE, vérifiez que la VM Ubuntu peut atteindre le port requis. L’exemple utilise MongoDB sur le port 27017.

timeout 5 bash -c '</dev/tcp/<source-host>/<source-port>' \
  && echo 'Port reachable' \
  || echo 'Port NOT reachable'

# MongoDB example
timeout 5 bash -c '</dev/tcp/192.168.50.124/27017' \
  && echo 'MongoDB port reachable' \
  || echo 'MongoDB port NOT reachable'

7. Démarrer le DSE Deployable Runtime Manager

Démarrez le gestionnaire et consultez son journal. Le gestionnaire écoute sur 127.0.0.1 et choisit un port local.

cd ~/dse-deploy/linux/linux-x64
./manager.sh
sleep 2
cat .dse-manager/manager-console.log
curl http://127.0.0.1:<manager-port>/ | head

Un journal correct contient une ligne comme : Local management URL: http://127.0.0.1:51827. Le port peut changer après redémarrage.

8. Rendre le gestionnaire accessible au navigateur Windows

Utilisez socat dans Ubuntu pour relayer un port stable de la VM (18093) vers le port local actuel du gestionnaire. Les commandes détectent automatiquement l’IP de la VM et le port du gestionnaire.

cd ~/dse-deploy/linux/linux-x64
VM_IP=$(hostname -I | awk '{print $1}')
MANAGER_PORT=$(grep -oE '127\.0\.0\.1:[0-9]+' .dse-manager/manager-console.log | tail -1 | cut -d: -f2)
nohup socat TCP-LISTEN:18093,bind="$VM_IP",reuseaddr,fork TCP:127.0.0.1:"$MANAGER_PORT" > ~/dse-relay.log 2>&1 &
echo "Open: http://$VM_IP:18093/"
ss -ltnp | grep 18093

Utilisez ce relais uniquement sur un réseau de test de confiance. Tant que socat fonctionne, le gestionnaire est accessible via l’interface réseau de la VM.

9. Exécuter le déployable depuis l’interface

  1. Ouvrez dans Edge ou Chrome l’URL affichée par la commande de relais.
  2. Vérifiez que Runtime status indique READY et qu’aucune exécution n’est active.
  3. Dans Connections, vérifiez que la source et la destination indiquent Configured. Laissez les champs protégés vides pour conserver les valeurs intégrées.
  4. Pour le premier test, définissez Scheduler configuration sur Manual only, Output directory sur output, puis enregistrez.
  5. Cliquez sur Run now et attendez le retour à READY.
  6. Vérifiez que Last result et Run history indiquent Success, puis contrôlez les fichiers de sortie et les données de destination.

10. Arrêt, redémarrage et nettoyage

L’IP de la VM et le port du gestionnaire peuvent changer après redémarrage. Relancez manager.sh, lisez le nouveau port et recréez le relais socat. Pour arrêter le relais :

pkill -f 'socat TCP-LISTEN:18093' || true

Liste de vérification

Dépannage

Issue / Symptom Action
scp affiche Could not resolve hostname c: Exécutez scp depuis Windows PowerShell, pas depuis Ubuntu.
Permission denied ou le script ne démarre pas Exécutez chmod +x DataSourceExplorer.Runner manager.sh run.sh.
curl -I retourne 405 Method Not Allowed C’est normal si le gestionnaire accepte GET mais pas HEAD. Testez avec curl http://127.0.0.1:<port>/.
Le navigateur n’ouvre pas l’URL 127.0.0.1 Utilisez le relais socat et ouvrez http://<VM-IP>:18093/ depuis Windows.
La page ne fonctionne plus après redémarrage Relancez manager.sh et recréez le relais ; l’IP et le port peuvent changer.
Le test de source échoue Vérifiez le routage/le pare-feu et testez l’hôte/port cible depuis Ubuntu.

Pour l’intégration à l’aide produit, utilisez la page HTML localisée de ce package. Ne traduisez pas les commandes ; traduisez uniquement les explications et les indications d’interface.