2015-10-27 28 views
7

にデータをエクスポートします。old answerGoogle App Engine documentationのリンクを示していますが、ダウンロードしていないGAEデータをバックアップしています。Google App Engineからcsv

どのようにcsvにすべてのデータをダウンロードするには?データが小さい、つまり< 1GB

+0

このバックアップをダウンロードできます。それはcsv形式ではありませんが、おそらくそれを変換することができます –

+0

これを変換することは、実際には今私の問題です。また、私は 'gsutil'でこれをダウンロードできますか?それはすべてをダウンロードしていないようです。 – Heisenberg

+0

はい、「おそらく変換します」:leveldbのダンプなので、少し複雑です。私はgsutilのダウンロードを試みたことは一度もありません。 –

答えて

3

appcfg.pyを使用すると、Kindのデータをcsv形式でダウンロードできます。

$ appcfg.py download_data --help

使用法:データストアからappcfg.py [オプション]

download_dataダウンロードエンティティ。

'download_data'コマンドはデータストアエンティティをダウンロードし、 をCSV形式または開発者定義形式としてファイルに書き込みます。

+0

appcfg.pyはどこから来たのですか? –

+0

これはGoogleのアプリケーションエンジンの一部です。 –

+0

いいえ、それはPython SDKの一部であり、通常のSDKではありません。 appcfg.shには悲しいことに、そのコマンドはありません。 –

13

herehereの手順を使用して、CSVへのエクスポートにいくつかのアプローチを試しました。しかし、私は働くことができませんでした。だからここに私がしたことがあります(私の最大のテーブルは約2GBでした)。それは...手順の多くのように、Googleが最後に時間変更された可能性があるランダムなコードを戦うよりも良さそうですが、これはあまりにも、比較的速く動作します:

  1. をクラウドストレージに移動し、2つの新しいバケットを作成する「DATA_BACKUPを"と" data_export "を指定します。
  2. 変換しようとしているデータストアの[My Console]> [Google Datastore]> [管理者]> [データストア管理を開く]に移動します。
  3. バックアップするエンティティをチェックし、[バックアップエンティティ]をクリックします。一度に5つすべてをチェックするのではなく、エクスポートするテーブルが5つしかなかったので、私は一度に1つを実行しました。
  4. (私は前にこれを使用したことがありませんでしたが、軌道に乗るためにケーキだった)
  5. 少し下の矢印をクリックして今すぐGoogleのビッグクエリに行くあなたは
  6. に保存したいバケットGoogleのストレージ(GS)を示し、 "Create a New Dataset"を選択して名前を付けます。
  7. 次に、作成したばかりの新しいデータセットの横にある下向き矢印をクリックし、[新しいテーブルを作成]を選択します。 「データの選択」ステップの下にある「Cloud Datastore Backup」をインポートする手順を実行します。その後、Big Queryにインポートするバックアップを選択して、次の手順でcsvにエクスポートできます。
  8. テーブルがインポートされたら(これはかなり速い)、テーブル名の横にある下矢印をクリックして、「エクスポート」を選択します。 CSVに直接エクスポートして、エクスポート用に作成したGoogleストレージバケットに保存してからそこからダウンロードできます。 (彼らはまた、それが何であれアブロフォーマットを提供します)
  9. 私はjson2csvを使用してデータが関係を入れ子にしている場合、あなたはJSONではなく、CSVにエクスポートする必要があります

は、ここではいくつかのヒントですエクスポートしたJSONファイルをCSV形式で保存することはできませんでした。それは大きなテーブルで少し遅く実行されますが、それは完了です。

  • json2csvのpythonメモリエラーのため、2GBファイルを2つのファイルに分割する必要がありました。私は同じよう
  • (これはGsplitは分割ファイルにデータを追加していないことを確認しました)... Gsplitタグを追加しないでください> &ヘッダファイルを分割するためにgsplitを使用し、その他のプロパティ>タグの下のオプションをオフにチェック私は言った、これは実際にかなり速かったが、それは多くのステップです。誰かが奇妙なバックアップファイル形式を変換しようとしたときや、もう動作しない可能性のあるコードを実行するのに費やされた時間を避けるのに役立つことを願っています。

    +5

    これはきれいです、Scottに感謝します。私はステップ7で、エンティティのバケットに格納されているエンティティに対応する拡張子.backup_infoをファイルに提供する必要があります。 –

    +0

    ありがとうございます。私はあなたのステップを試して、それは動作します。私はちょうど何回これをする必要があるかについて混乱しています。テーブルごとにそれを行う必要がありますか?またはすべてを一度にエクスポートする方法はありますか?ありがとう – filias

    +0

    私は各テーブルのためにそれをしました@filias。私は5または6つの本当に大きなテーブルしか持っていませんでした。それがあなたのために働くならば、それを正解とすることができれば素晴らしいでしょう。ありがとう! – Scott