0

J'ai essayé d'effectuer une sauvegarde de l'entité dans un compartiment de stockage et de télécharger ce fichier de données de sauvegarde dans ma machine locale, mais le fichier contient également des données parasites. Ce que j'essaye de faire est de déplacer une entité de magasin de données à une base de données de SQL de nuage. Le plan consiste maintenant à télécharger l'entité du magasin de données vers un fichier local et à générer un fichier .sql à partir de celui-ci, puis à l'utiliser pour créer la base de données dans une instance cloud sql.Comment télécharger les données d'une entité google datastore en local?

Répondre

0

Le magasin de données Google App Engine import/export n'utilise pas un format standard. Vous pourriez être en mesure de le lire en utilisant les méthodes décrites au [1] ou [2]. Vous pouvez également importer ces fichiers vers BigQuery, ce qui vous permet d'exporter beaucoup plus facilement.

Une autre approche consiste à utiliser l'API Datastore pour récupérer par programmation les entités de Datastore pour écrire dans votre instance SQL. Vous pouvez même le faire en Cloud Dataflow qui a des outils pour lire depuis le magasin de données et écrire en SQL (via JDBC dans le Apache Beam).


Cependant, vous fait réaliser l'extraction, il y a quelques supplémentaires "gotchas" à prendre en considération:

  1. entités Datstore peuvent avoir des "ancêtres". Cela n'existe pas dans SQL. Vous voulez probablement que chaque type d'entité possède une table distincte. Les tables pour les entités enfants doivent avoir une colonne indiquant l'entité dans une table différente qui est le parent. Le magasin de données prend en charge les propriétés du tableau, tandis que SQL ne le fait pas. Si vous utilisez des tableaux, vous devrez trouver un moyen d'exprimer cela dans votre schéma de destination. Typiquement ceci est réalisé avec une table séparée et une relation. Par exemple, si vous avez une propriété "telephone_numbers" dans l'entité Person avec une liste de nombres, vous voulez probablement une table "telephone" qui a deux colonnes - "person_id" et "telephone_number". Le magasin de données permet à différentes entités du même type d'entité d'avoir des propriétés différentes ou pour que la même propriété ait des types différents. Cela n'est pas autorisé dans SQL, vous devrez vous assurer qu'il existe un schéma uniforme pour chaque enregistrement de la même table.