問題タブ [bulkloader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-app-engine - GAE bulkloader.py sqlite データベースから CSV に再エクスポートすることは可能ですか?
bigtable を csv ファイルにエクスポートするパラメーターを指定してバルクローダーを実行しましたが、テーブルのダウンロードに多くの時間がかかりました (サイズが大きいため)。Exporter クラスのラムダ式の 1 つに問題があり、do をエクスポートできませんでした。GAE からすべてのデータを再ダウンロードしなくても、bulkloader.py を再度実行できますか? ダウンロードした .sql ファイルに戻り、CSV に再度エクスポートするように指示したいと思います。
python - バルクローダーなしですべてのデータをgaeにアップロードできますか
このコードを使用して、gae のアプリからすべてのデータをダウンロードできます。
バルクローダーを使用しないので、バルクローダーなしですべてのデータをアップロードできますか?
ありがとう
python - yaml で自動生成された構成と数値 ID を持つエンティティを使用する場合の Google App Engine バルクローダーの問題
私のアプリケーションはDjango non-relを使用しています。モデルへのアクセス権がありません。
によってbulkloader.yaml
ファイルが自動生成されましたappcfg.py create_bulkloader_config
。
問題は、エンティティの数値 ID が文字列キー名としてインポートされていることです。したがって、たとえば'62' のint ID を持つエンティティをエクスポートすると、文字列キー名が'61' のエンティティとしてインポートされ、 Django が台無しになります。
Revelant の bulkloader.yaml フラグメント:
バルクローダーを使用してデータのダウンロード/アップロードをセットアップしようとしていますが、データを理解しやすい形式 (.csv など) にしたい ---bulkloader.py --dump (...)
エンティティの内容を持つ sqlite3 ファイルが得られるため、使用は実行可能なオプションではありません一列に漬け込みました。
編集
@Nickが提案したことを試してみましたが、例外が発生しました:
これは、bulkloader.py (奇妙な sqlite 形式を使用する) に固執しなければならないということですか、それとも何かを台無しにしたということですか? ;)
変圧器のヘッダー:
スタックトレース全体:
google-app-engine - GoogleAppEngine-RemoteApiServletを使用した一括読み込み-請求
App Engine RemoteApiServletとBulkloaderを使用して、データストアにデータをロードしています。アップロードしたデータセットは巨大だったので(100万エンティティ)、アプリケーションで「請求」を有効にして、最大値を設定しました。1日の予算は5ドル、それ以降は10ドルになります。
App Engine管理コンソールを使用してエンティティを読み込んだ後、CPU時間に対して約$ 7が請求されると判断しました(最終的には約70 CPU時間を使用したため)。ただし、請求履歴を見ると、0.05ドル(ストレージの場合)とCPU時間の場合は0.0ドルしか請求されていません。
これが予想されるかどうか知りたいですか?RemoteApiServletを使用したバルクロードはCPU時間に対して請求されませんか?はいの場合、1日の最大予算を5ドルに設定し、CPUクォータを超えたときに、サービスからHTTP503を取得し始めました。RemoteApiServletの使用が請求から免除されている場合、なぜ503エラーが表示されたのですか?
python - AppEngineバルクローダーのパフォーマンス
App Engineバルクローダー(Pythonランタイム)を使用して、エンティティをデータストアに一括アップロードしています。私がアップロードしているデータは独自の形式で保存されているので、bulkload_config.py
それを中間のpython辞書に変換するために独自のコネクタ(に登録)によって実装しました。
このニュートラルなPythonディクショナリをデータストアエンティティに変換するには、YAMLで定義したカスタムのインポート後関数を使用します。
注:関数で使用entity_instance, bulkload_state
していませんfeature_post_import
。(に基づいてinput_dict
)新しいデータストアエンティティを作成し、それらを返しています。
今、すべてがうまくいきます。ただし、データの一括読み込みのプロセスには時間がかかりすぎるようです。たとえば、1 GB(〜1,000,000エンティティ)のデータには約20時間かかります。バルクロードプロセスのパフォーマンスを改善するにはどうすればよいですか。私は何かが足りないのですか?
appcfg.pyで使用するパラメーターのいくつかは(スレッドあたり10エンティティのバッチサイズの10スレッド)です。
リンクされたGoogleAppEngine Pythonグループの投稿: http://groups.google.com/group/google-appengine-python/browse_thread/thread/4c8def071a86c840
更新:一括読み込みプロセスのパフォーマンスをテストするためentities
に、「テスト」を読み込みましたKind
。これentity
は非常に単純FloatProperty
ですが、それらを一括ロードするのに同じ時間がかかりましたentities
。
バルクローダーのパラメーター、、、を変更して、rps_limit
さらにbandwidth_limit
スループットhttp_limit
が得られるかどうかを確認します。
python - bulkuploader を使用してクラスに db.SelfReferenceProperty を設定するにはどうすればよいですか?
db.SelfReferenceProperty
ツリーのような構造を作成するために使用しているクラスがあります。
を使用してデータベースにデータを入力しようとするとappcfg.py upload_data -- config_file=bulkloader.yaml --kind=Group --filename=group.csv (...)
、例外が発生しますBadValueError: name must not be empty
。(以下のフルスタック)
データを並べ替えて、それらを指している外部キーを持つグループが最初になるようにしました。それはうまくいきませんでした。
変換を行う行 "import_transform: transform.create_foreign_key('Group')" を bulkloader.yaml からコメントすると、データはアップロードされますが、そのプロパティが文字列として保存され、アプリケーション ロジックが壊れます。
バルクローダーに自己参照を考慮させる方法はありますか、またはバルクロードされたデータの変換サーバーサイドを作成するか、独自のバルクロードアルゴリズムを実装する必要がありますか?
python - 新しいバルクローダーでキーを設定
新しいバルクローダーを使用するようにスクリプトを変換しています。(元のバルクローダーの何が問題になっていますか?-構成ファイルを編集するよりもPythonを作成する方が好きです...)
とにかく、プロパティの組み合わせをキーに割り当てることで、重複を防ぎたいと思います。ドキュメントによると:
インポートデータからキーを使用または計算する場合は、プロパティマップと同じ構文を使用してキーを指定します。つまり、external_name、import_templateなどです。
すべての例は、現在のプロパティに変換を適用します。代わりに、他のプロパティの組み合わせを使用するにはどうすればよいですか?
次のようなものにする必要があります:
google-app-engine - AppEngineバルクローダーダウンロードの警告「__key__に降順のインデックスがありません。シリアルダウンロードを実行しています」
私は以下を使用して、私の種類の1つのすべてのインスタンスをダウンロードしています。
種類にバッチサイズよりも多くのインスタンスがある場合、次の警告が表示されます。
カスタムインデックス、またはインデックスが無効になっているプロパティがありません。
この警告を解決するために何かをする必要がありますか、それとも単に無視できる警告ですか?ダウンロードの速度に影響しますか?
バルクローダーに関するこの記事では、サンプル出力に警告メッセージが含まれていますが、それについては言及されていません。
App Engineグループに関するこの投稿では、インデックスを作成する必要があると述べています。ただし、インデックスを追加すると、エンティティへの書き込みが遅くなります。データの一括ダウンロードを行うよりも頻繁にエンティティを書き込むため、これは行いません。
ありがとう。
google-app-engine - バルクローダーを使用してブロブストアにアップロードすることは可能ですか?
バルクローダーを使用してデータを GAE Blobstore にプッシュできるかどうかを知っている人はいますか?
Google アプリにプッシュする必要がある 100,000 個のタイル イメージはほとんどありません。
現在、私はゆっくりとそれらをデータストアにプッシュしています(エラーのために「バックオフ」し続けるため、信じられないほど遅いようです)。おそらく、Blobstore の方がタイルのバックアップをより効率的に提供できると思います。