Bonnes pratiques pour l'importation et l'exportation de données

Cette page présente les bonnes pratiques à suivre pour importer et exporter des données avec Cloud SQL. Pour obtenir des instructions détaillées sur l'importation de données dans Cloud SQL, consultez la page Importer des données. Pour obtenir des instructions détaillées sur l'exportation de vos données, que ce soit dans Cloud SQL ou dans une instance que vous gérez, consultez la page Exporter des données.

Bonnes pratiques pour l'importation et l'exportation

Voici les bonnes pratiques à adopter lors de l'importation et de l'exportation de données :

Ne pas utiliser les buckets "Paiements" du demandeur Cloud Storage

Vous ne pouvez pas utiliser de buckets Cloud Storage pour lesquels les paiements du demandeur sont activés pour réaliser des importations et des exportations depuis Cloud SQL.

Compresser les données afin de réduire les coûts

Cloud SQL permet d'importer et d'exporter des fichiers compressés ou non. Grâce à la compression, vous pouvez économiser un espace de stockage considérable sur Cloud Storage et réduire les coûts de stockage, en particulier lorsque vous exportez des instances volumineuses.

Lorsque vous exportez un fichier BAK, utilisez une extension de fichier .gz pour compresser les données. Lorsque vous importez un fichier avec une extension .gz, il est automatiquement décompressé.

Conseils pour exécuter des tâches d'importation et d'exportation de longue durée

Les importations et les exportations dans Cloud SQL à l'aide de la fonctionnalité d'importation (via un bucket Cloud Storage) peuvent prendre beaucoup de temps selon la taille de la base de données. Cela peut avoir les conséquences suivantes :

  • Vous ne pouvez pas arrêter une opération de longue durée.
  • Vous ne pouvez effectuer qu'une seule opération d'importation ou d'exportation à la fois pour chaque instance.

Vous pouvez réduire le temps nécessaire à l'exécution de chaque opération en utilisant la fonctionnalité d'importation ou d'exportation Cloud SQL avec de plus petits lots de données.

Dépannage

Cliquez sur les liens du tableau pour en savoir plus :

Pour ce problème... Le problème peut être... Essayez ce qui suit...
Impossible d'afficher l'état de l'opération. L'interface utilisateur n'affiche que les opérations réussies ou échouées. Exécutez ces commandes de base de données pour en savoir plus.
L'exportation prend trop de temps. Cloud SQL n'est pas compatible avec les opérations synchrones simultanées. Utilisez le déchargement des exportations. En savoir plus
L'importation prend trop de temps. Un trop grand nombre de connexions actives peut interférer avec les opérations d'importation. Fermez les connexions inutilisées ou redémarrez l'instance Cloud SQL avant de lancer une opération d'importation.
Échec de l'importation. Le fichier exporté peut contenir des utilisateurs de base de données qui n'existent pas encore. Créez les utilisateurs de la base de données avant d'effectuer l'importation.
Fermeture de la connexion lors de l'exportation. La requête doit produire des données dans les sept premières minutes. Testez la requête manuellement. En savoir plus
Erreur inconnue lors de l'exportation. Problème de bande passante possible. Assurez-vous que l'instance et le bucket Cloud Storage se trouvent dans la même région.
Vous souhaitez automatiser les exportations. Cloud SQL ne permet pas d'automatiser les exportations. Créez votre propre pipeline pour exécuter cette fonctionnalité. En savoir plus
ERROR_RDBMS: system error occurred Autorisations Cloud Storage ou table inexistante. Vérifiez les autorisations OU assurez-vous que la table existe.

Impossible d'afficher l'état de l'opération

Vous ne pouvez pas voir l'état d'une opération en cours.

Cause possible

Une fois l'opération terminée, Google Cloud Console ne signale que les réussites ou les échecs, mais n'est pas conçu pour renvoyer des avertissements.

Solutions possibles

Connectez-vous à la base de données et exécutez SHOW WARNINGS.


L'exportation prend trop de temps.

L'exportation prend trop de temps et bloque les autres opérations.

Cause possible

Cloud SQL n'est pas compatible avec les opérations synchrones simultanées.

Solutions possibles

Essayez d'exporter des ensembles de données plus petits.


L'importation prend trop de temps

L'importation prend trop de temps, ce qui bloque d'autres opérations.

Cause possible

Un trop grand nombre de connexions actives peut interférer avec les opérations d'importation. Les connexions consomment des ressources de processeur et de mémoire, limitant ainsi leur disponibilité.

Solutions possibles

Fermez les opérations inutilisées. Examinez l'utilisation du processeur et de la mémoire pour vérifier que vous disposez de ressources suffisantes. Le meilleur moyen de s'assurer de la présence d'un nombre maximal de ressources pour l'opération d'importation consiste à redémarrer l'instance avant de lancer l'importation. Un redémarrage :

  • ferme toutes les connexions ;
  • met fin à toutes les tâches susceptibles de consommer des ressources.


Échec de l'importation

L'importation échoue lorsqu'un ou plusieurs utilisateurs référencés dans le fichier de vidage SQL exporté n'existent pas.

Cause possible

Avant d'importer un fichier de vidage SQL, tous les utilisateurs de la base de données qui possèdent des objets ou disposent d'autorisations sur les objets qu'elle contient doivent exister. Si ce n'est pas le cas, la restauration ne parvient pas à recréer les objets en rétablissant les propriétaires et/ou les autorisations d'origine.

Solutions possibles

Créez les utilisateurs de la base de données avant d'importer le fichier de vidage SQL.


Fermeture de la connexion lors de l'exportation

La connexion se ferme lors de l'exportation.

Cause possible

La connexion à Cloud Storage expire peut-être parce que la requête exécutée lors de l'exportation ne produit aucune donnée dans les sept minutes suivant le lancement de l'exportation.

Solutions possibles

Testez la requête manuellement en vous connectant depuis n'importe quel client et en envoyant le résultat de votre requête à STDOUT à l'aide de la commande ci-dessous :

COPY (INSERT_YOUR_QUERY_HERE) TO STDOUT WITH ( FORMAT csv, DELIMITER ',', ENCODING 'UTF8', QUOTE '"', ESCAPE '"' )

Ce comportement est normal, car le client est censé commencer à envoyer des données immédiatement après le lancement de l'exportation. Une connexion maintenue ouverte sans envoyer de données finit par s'interrompre, ce qui entraîne l'échec de l'exportation et laisse l'opération dans un état d'incertitude. En outre, le message d'erreur de gcloud suivant s'affiche :

operation is taking longer than expected


Erreur inconnue lors de l'exportation

Le message d'erreur Unknown error s'affiche lorsque vous tentez d'exporter une base de données vers un bucket Cloud Storage.

Cause possible

Le transfert peut échouer en raison d'un problème de bande passante.

Solutions possibles

L'instance Cloud SQL peut se trouver dans une région différente de celle du bucket Cloud Storage. La lecture et l'écriture de données d'un continent à l'autre impliquent une utilisation importante du réseau, pouvant entraîner ce type de problèmes intermittents. Vérifiez les régions de votre instance et de votre bucket.


Vous souhaitez automatiser les exportations

Vous souhaitez automatiser les exportations.

Cause possible

Cloud SQL ne permet pas d'automatiser les exportations.

Solutions possibles

Vous pouvez créer votre propre système d'exportation automatisé à l'aide des produits Google Cloud suivants : Cloud Scheduler, Pub/Sub et Cloud Functions, comme décrit ici.


Erreur système de type ERROR_RDBMS

Le message d'erreur [ERROR_RDBMS] system error occurred s'affiche.

Cause possible

  • Il se peut que l'utilisateur ne dispose pas de toutes les autorisations Cloud Storage dont il a besoin.
  • La table de base de données n'existe peut-être pas

Solutions possibles

  1. Vérifiez que vous disposez tout au moins des autorisations WRITER sur le bucket et READER sur le fichier d'exportation. Pour en savoir plus sur la configuration du contrôle d'accès dans Cloud Storage, consultez la page Créer et gérer des listes de contrôle d'accès.
  2. Assurez-vous que la table existe. Si tel est le cas, vérifiez que vous disposez des autorisations appropriées sur le bucket.

Étapes suivantes