Transférer les données d'une base distante vers maria DB en passant par un connecteur ODBC

Tags: #<Tag:0x00007f509fab47e8>

Bonjour,

Je souhaites backuper une base contenant plusieurs tables d’une application métier, je n’ai qu’un accès via ODBC à cette base et je souhaiterais pouvoir transférer les données sur une base MariaDB.

Je voulais savoir si l’un d’entre vous à déja réalisé cette tâche et si oui comment ?

Le but de ce transfert est de pouvoir avoir un backup que nous pourrons également exploité sur du Pentaho dans un second temps

Je suis sous debian 11

Merci par avance

Tu souhaite effectuer un dump depuis un accès ODBC ?

Pour ce genre de manipulation tu peux t’appuyer sur de la documentation MySQL.

https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-examples-tools-with-access-export.html

Oui en gros je veux dumper la base via l’ODBC et éventuellement remonter les données de MariaDB

Le but est de pouvoir mettre ensuite une CRON pour programmer un dump régulier tout en gardant un .sql de l’état de la base au moment du dump

Le plus simple serait tout de même d’avoir un mysql-client avec un user dédié pour faire ça proprement et simplement.

l’ODBC je fuis ça comme la peste.

Dans notre cas nous n’avons pas le choix que de passer via ODBC malheureusement…

Ce qui va être très lent au regard d’une connexion directe.
y a-t-il beaucoup de données?

Il te faut faire l’opération en deux passes.

  1. Dump les données de ta base distante
  2. Injecter les données dans ta base de données MariaDB (effacement des anciennes données et schéma, injection des nouveaux)

Petit problème, dans ta base de données MariaDB tu devras tout injecter à chaque fois. Donc supprimer tout auparavant.
Il n’y a pas plus mauvaise méthode ceci-dit en passant.

Juste une question, cet accès ODBC, c’est imposé par de l’interne ou par un fournisseur?
L’application Métier est-elle de votre ressort en termes de responsabilité ou c’est une application louée sur internet (SaaS) ?

L’intérêt est :

  1. de sécurisé les données en les backupant
  2. de pouvoir exploiter les dernières données via un outil type Pentaho

Après si je parviens déjà à backuper la base de donnée à distance ca serait déja un bon point, l’ODBC est l’unique point d’entré fournis par le fournisseur sur le serveur pour des raisons de responsabilités

C’est bien ce que je pensais; un fournisseur marron.
L’ODBC à distance, en terme de sécurité, on ne peut pas faire plus mauvais, tout transite en clair ans le flux.
Ensuite en terme de responsabilité, vu que ce sont vos données, c’est à lui de vous les fournir étant donné qu’elles vous appartiennent, sans compter le fait qu’il est tenu de vous fournir des sauvegardes à moins que votre gestionnaire interne des contrats de prestations ne soit pas très pertinent.
Il va te falloir un requête d’extraction de schéma et des données, c’est très pénible à faire en ODBC. Et ça ne marque que si ton prestataire a donné les droits suffisants dans l’ODBC pour le faire.

Il va te falloir développer un script pour faire cet extraction si tu veux le faire en automatique.

Quel est le volume des données? car ton fournisseur n’a qu’à faire un dump de la base, et te l’envoyer au format compressé: soit en le mettant à ta disposition sur un serveur d’où tu peux télécharger (SFTP, HTTPS, etc…) soit (si la taille le permet) par courriel envoyé à une adresse courriel de service sur laquelle tu peux ensuite faire un script plus simple.

le problème via ODBC c’est qu’à chaque fois que le schéma va être modifié, tu risque d’avoir à modifier ton script.

Alors le point positif est que l’ODBC est en local, c’est de la donnée plates sous une liste de tables, rien de très « complexe ».
Concernant les modifications de structures de données, c’est une base qui n’évolue pas forcément beaucoup

Ce sont juste des tables sans relations et contraintes liées?
Effectivement c’est uin peu plus simple. Sauf que tu va devoir avoir un script quand même.
Et en cas de modification du schéma, soit tu sais laquelle et tout va bien, soit tu ne sais pas et ça va être difficile.

En passant, si vous avez l’occasion de changer de fournisseur faites le, car ce n’est pas professionnel :slight_smile:

En premier lieu:

  • As-tu réussi à créer une connexion ODBC avec un outil comme Heidi par exemple ou tout GUI de bases de données?
    Car tu arrive à le faire en manuel, dans un premier temps, ça te permettra de tester tes requêtes plus facilement.

J’ai ouvert une connexion sur l’ODBC via Excel sans souci, j’accède bien aux tables (qui sont sans relations)

C’est le but, le fournisseur est avare en information de peur d’être remplacé

Alors c’est qu’il faut le remplacer, car il confond avoir un meilleurs service et prendre ses clients en otage. Dnas le deuxième, il ne mérite que la poubelle :slight_smile:

Donc si je comprend bien tu fait une requête par table?

Quels sont les langages de script que tu maitrises (perl, python, etc…) ?
Tu peux utiliser ce lien qui devrait te donner des pistes: Creating a Data Source with MariaDB Connector/ODBC - MariaDB Knowledge Base