avevo provato un paio di diversi approcci per l'esportazione di CSV utilizzando procedura descritta here e here. Ma non potevo neanche lavorare. Quindi, ecco cosa ho fatto (il mio tavolo più grande era di circa 2 GB). Questo funziona in tempi relativamente brevi, anche se sembra un sacco di passi ... meglio che combattere codice casuale che Google potrebbe essere cambiata per ore e ore, troppo:
- Andate in Cloud Storage e creare 2 nuovi secchi "DATA_BACKUP "e" data_export ". Puoi ignorarlo se hai già un secchio per conservare le cose.
- Passare a "My Console"> Google Datastore> Ammin> Apri amministratore Datastore per il datastore che si sta tentando di convertire.
- Controllare l'entità o le entità di cui si desidera eseguire il backup e fare clic su "Entità di backup". Ne ho fatto uno alla volta poiché avevo solo 5 tavoli da esportare, piuttosto che spuntare tutti e 5 contemporaneamente.
- Indicare la Google Storage (gs) secchio che si desidera conservare in
- Ora vai a Google Big Query (non avevo mai usato prima, ma era torta per andare avanti)
- Fare clic sulla piccola freccia verso il basso e seleziona "Crea un nuovo set di dati" e dagli un nome.
- Quindi fare clic sulla freccia giù accanto al nuovo set di dati appena creato e selezionare "Crea nuova tabella". Passare attraverso i passaggi per importare selezionando "Cloud Datastore Backup" sotto il passaggio Seleziona dati. Quindi scegliere il backup che si desidera importare in Big Query in modo da poterlo esportare in csv nel passaggio successivo.
- Una volta importata la tabella (che era piuttosto veloce per la mia), fare clic sulla freccia giù accanto al nome della tabella e selezionare "Esporta". Puoi esportare direttamente in csv e puoi salvare nel bucket di google che hai creato per l'esportazione e quindi scaricare da lì.
Ecco alcuni consigli:
- Se i dati sono annidati i rapporti, si dovrà esportare in JSON invece di CSV (offrono anche formato avro qualunque cosa sia)
- ho usato json2csv per convertire i miei file JSON esportati che non possono essere salvati come CSV. Funziona un po 'lento sui grandi tavoli ma lo fa.
- Ho dovuto dividere il file da 2 GB in 2 file a causa di un errore di memoria python in json2csv. Ho usato GSplit di dividere i file e controllato fuori della facoltà di cui Altre proprietà> Etichette & intestazioni> non aggiungi tag GSplit ... (questo fatto in modo GSplit non ha aggiunto alcun dato per i file divisi)
Come Ho detto, questo è stato abbastanza veloce anche se è un numero di passaggi. Spero che aiuti qualcuno a evitare un po 'di tempo trascorso a cercare di convertire strani formati di file di backup o eseguire codice che potrebbe non funzionare più.
è possibile scaricare questi backup. non è in formato csv, ma probabilmente potresti convertirlo –
Convertire in realtà è il mio problema adesso. Inoltre, posso scaricare questo backup con 'gsutil', giusto? Sembra che non scarichi tutto. – Heisenberg
sì, "probabilmente converti" :) è un dump di leveldb, quindi è un po 'complicato. non ho mai provato i download di gsutil, non sono sicuro di come funzioni. –