Je dois écrire un ensemble de résultats à partir de MySQL au format csv dans un compartiment de Google Cloud Storage.Ecriture du résultat MySQL dans un fichier CSV dans Google Cloud Storage
En suivant les instructions here, j'ai créé le code exemple suivant:
import cloudstorage
from google.appengine.api import app_identity
import db # My own Mysql wrapper
dump = db.get_table_dump(schema) # Here I made a simples SQL SELECT and fetchall()
bucket_name = app_identity.get_default_gcs_bucket_name()
file_name = "/" + bucket_name + "/finalfiles/" + schema + "/" +"myfile.csv"
with cloudstorage.open(file_name, "w") as gcsFile:
gcsFile.write(dump)
Il ne fonctionne pas parce que write
attend un paramètre de chaîne et dump
est tuple de tuples résultent de fetchall()
.
Je ne peux pas utiliser this approach (ou similaire) car je ne peux pas écrire des fichiers dans GAE et enviroment Je ne peux pas créer une chaîne CSV à partir tuple comme here, en raison de la taille o mon jeu de résultats (En fait, Je l'ai essayé et ça prend trop de temps et ça a expiré avant la fin). Donc, ma question est la suivante: quelle est la meilleure façon d'obtenir un ensemble de résultats à partir de MySQL et de l'enregistrer au format CSV dans un seau de stockage Google Cloud?
Pouvez-vous écrire dans des fichiers de mémoire? –
Désolé @JohannesReichard, mais je n'ai pas compris votre question. Je suis un peu nouveau dans GAE. Est-ce que les fichiers de mémoire sont quelque chose que je peux écrire? – James
Je n'ai jamais utilisé GAE mais python supporte non seulement l'écriture dans un fichier sur un disque dur mais aussi dans un fichier comme objet qui vit en mémoire: docs.python.org/3/library/io.html#in-memory –