2

あるアプリから別のアプリにデータストアをコピーしようとしています(開発サーバーにライブ)。最初に、開発サーバー上のすべてのエンティティを削除する必要があります(ローカル開発サーバーと混同しないように、使用している実際の開発アプリ)。データストア管理コンソールでこれを行っていますが、プロセスが完了した後も_GAE_MR_MapreduceState_GAE_MR_ShardStateエンティティが残っています。私が理解している限り、これらは削除プロセス中の一時的なものである必要があります。これに加えて、データストア管理コンソールにアクセスすると(約半分の時間)、削除されたエンティティの数も再び表示されることがあります。何度か削除しました。

データストアビューアには表示されませんが、常にそうであるかどうかはわかりません。私はまだそれらがこのビューに再び表示されるのを見ていません。データストアビューアには、タイプ_AE_Backup_Information、、、およびのエンティティのみがあります。このビューにはエンティティが表示されません。_AE_Backup_Information_Kind_Files_AE_Backup_Information_Kind_Type_Info_AE_DatastoreAdmin_Operation_GAE_MR_MapreduceState_GAE_MR_ShardState

更新:データストアビューアで削除されたエンティティの1つをキャッチできました。削除されたエンティティタイプは1つだけで、ここに表示されるエンティティは1つだけでしたが(3つまたは4つのエンティティタイプと数千のエンティティが表示される前)。データストアビューアでそれをキャッチした直後に、データストア管理コンソールに移動し、同じエンティティタイプがここに表示されていることを確認しましたが、この場合は2つです。また、今回はデータストア管理者のエンティティ、およびエンティティ_GAE_MR_MapreduceState_GAE_MR_ShardState見つかりませんでした。更新を終了_AE_Backup_Information_AE_Backup_Information_Kind_Files_AE_Backup_Information_Kind_Type_Info_AE_DatastoreAdmin_Operation

データストア管理コンソールで_GAE_MR_MapreduceStateおよびエンティティを削除しようとしませんでした。_GAE_MR_ShardStateこれらのエンティティは削除操作中に作成されるため、これは一種の安全ではないようです。それが何をするのかわかりません。datstoreビューアで削除しようとしましたが、表示されません。

削除したエンティティがデータストアの管理コンソール_AE_Backup_Informationに表示されたとき_AE_Backup_Information_Kind_Files、、、_AE_Backup_Information_Kind_Type_Infoおよび_AE_DatastoreAdmin_Operationエンティティもそこに表示されます。ですから、これも奇妙です。

タスクキューにタスクはなく、実行中のジョブもありません。

これはある種の同期の問題ですか?キャッシュはどこかで更新されていませんか?これらのエンティティをクリアするために何かをリセットする方法はありますか?

更新2: Memcacheをフラッシュしようとしましたが、違いはありませんでした。エンティティは、ほぼ100%の時間、データストア管理コンソールに表示され続けます。削除したエンティティがデータストアビューアに表示されるのを見たことがありませんが、以前に表示されたエンティティを削除してからです。

更新3:別のアプリで同じタイプのデータストア削除操作を実行しようとしましたが、結果として同じ破損が発生します。最初にバックアップを作成し、次にすべてのエンティティを選択して削除しました。どちらの操作もデータストア管理コンソールから実行しました。

削除操作ジョブが完了しました。それらは、完了した操作の下にログに記録されて表示されます。タスクキューにこれ以上ジョブが残っていません。ただし、すべてのエンティティがデータストア管理コンソールに再び表示されます。私は10のエンティティタイプを削除しましたが、そのほとんどは数十のエンティティで、1つは数千のエンティティです。データストア管理コンソールには、すべてのエンティティタイプが同じ数のエンティティとともに再度一覧表示されます。

データストアビューアでは、2つのエンティティタイプが残っており、削除操作前よりもエンティティの数が少なくなっています(ただし、まだかなりの数です)。削除前の6,855から2,172の1つ。もう1つは、削除前の44から17です。

もう一度、Memcacheをフラッシュしました。違いはありませんでした。

データストア管理者は実験的なものですが、後でデータストアをリセットする方法がない単純な削除操作を実行しても、データストアが完全に破壊されるとは思いません。現在、2つのアプリがあり、どちらも課金が有効になっているため、クライアントの費用がかかります。これらのアプリは、データストアが破損しているため使用できません。ここでの私のオプションは何ですか?Googleの誰かから返信をもらうことはできますか?これは、GoogleAppEngineサポートに推奨されるフォーラムです。

4

1 に答える 1

0

開発アプリで古いスタイルのエクスポートが設定されているようです。おそらく、cron.yaml を確認して、それらのエクスポートを無効にする必要があります。理想的には、 Managed Import/Export サービスを使用して、新しい (そして安価な) エクスポートに切り替えることをお勧めします。一括削除の場合、現在の推奨事項は、Cloud Dataflow と一括削除テンプレートを使用することです。マネージド インポート/エクスポートと Cloud Dataflow ベースの削除の両方が、プロジェクト内の Cloud Datastore データベースを使用しません。古いスタイルのエクスポートと削除の両方が Cloud Datastore データベースを使用します。

于 2019-03-26T00:34:24.213 に答える