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

更新:我刚刚能够在数据存储查看器中捕获我已删除的实体之一。尽管这里只有一种已删除的实体类型和一种可见的实体(在我看到 3 或 4 种实体类型和数千个实体之前)。在我在数据存储查看器中捕捉到它之后,我立即前往数据存储管理控制台,发现这里可以看到相同的实体类型,尽管在这种情况下有两个。这次我也没有在数据存储区管理员中找到and _GAE_MR_MapreduceStatenor _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 种实体类型,大多数有几十个实体,一个有几千个。在数据存储管理控制台中,每一种实体类型都会以相同数量的实体再次列出。

在数据存储查看器中,仍然保留了两种实体类型,与删除操作之前相比,实体数量更少(但仍然很重要)。删除前从 6,855 中的 2,172 之一。另一个从 44 中删除 17。

我再次刷新了 Memcache。它没有任何区别。

我看到数据存储管理员是实验性的,但我不希望它通过执行简单的删除操作来完全破坏我的数据存储,之后无法重置数据存储。我现在有两个应用程序,它们都启用了计费功能,但都需要花费我的客户资金,但它们无法使用,因为它们的数据存储已损坏。我在这里有什么选择?我可以从 Google 的某个人那里得到回复吗?这是Google App Engine 支持的推荐论坛。

4

1 回答 1

0

看起来您在开发应用程序中设置了旧式导出。您可能应该检查您的 cron.yaml 并禁用这些导出。理想情况下,您将使用托管导入/导出服务切换到更新(且更便宜)的导出。对于批量删除,当前的建议是将 Cloud Dataflow 与批量删除模板一起使用。托管导入/导出和基于 Cloud Dataflow 的删除都不会在您的项目中使用 Cloud Datastore 数据库,而旧样式的导出和删除都将使用您的 Cloud Datastore 数据库。

于 2019-03-26T00:34:24.213 回答