数据存储模拟器查询/问题

Posted

技术标签:

【中文标题】数据存储模拟器查询/问题【英文标题】:Datastore Emulator Query/Issue 【发布时间】:2021-03-28 11:05:13 【问题描述】:

我已经在我的本地机器上安装了谷歌数据存储模拟器,并编写了一个示例 Spring Boot 应用程序,该应用程序对数据存储执行 crud 操作。 当我通过邮递员点击其余端点时,我实际上可以看到数据被插入到 gcp 控制台的数据存储中

有人可以通过清除以下查询来帮助我吗:

1>即使在本地使用模拟器,数据是否被插入到云中的实际数据存储 (gcp)

2>模拟器的目的是什么(如果qn 1是正确的)

【问题讨论】:

【参考方案1】:
    数据存储服务器上没有插入数据,所有内容都是本地的,如提到的here

模拟器模拟Datastore,在指定的数据目录下创建/WEB-INF/appengine-generated/local_db.bin,并将数据存储在local_db.bin中。默认情况下,模拟器使用数据目录 ~/.config/gcloud/emulators/datastore/。 local_db.bin 文件在模拟器的会话之间持续存在。您可以设置多个数据目录,并将每个目录视为一个单独的本地 Datastore 模式实例。要清除 local_db.bin 文件的内容,请停止模拟器并手动删除该文件。

    有多种用途,例如:
无需将实际数据写入服务器即可在本地开发和测试您的应用程序,从而避免在开发过程中产生费用 帮助您在 Datastore 模式实例中为生产 Firestore 生成索引并删除不需要的索引,这些索引可能是 exported 然后进入生产环境

编辑

为了在同一台机器上使用模拟器,建议自动设置环境变量,如documentation中所述

【讨论】:

local_db.bin 在我检查 /WEB-INF/appengine-generated/ 时从未创建,我添加了 spring.cloud.gcp.emulator-enabled=true,spring.cloud.gcp.datastore。 emulator-host=localhost:8484 在应用程序属性中,你能帮我解决为什么调用没有重定向到我的模拟器而不是插入到数据存储服务器中 根据您的评论,我假设您的应用程序和模拟器在同一台机器上运行。如果是这样,请避免手动设置应用程序属性并使用automatic setting variables 知道了,现在问题已解决,感谢您提供的信息 太好了,如果答案帮助您解决了问题,我邀请您将其标记为已接受,以便在社区中获得更多可见性

以上是关于数据存储模拟器查询/问题的主要内容,如果未能解决你的问题,请参考以下文章

数据存储模拟器返回“事务内只允许祖先查询”。它不支持 Datastore 模式下的 Firestore 吗?

测试数据库与存储过程支持一起使用

基于云上分布式NoSQL的海量气象数据存储和查询方案

数据库原理与应用实验7--[数据库的存储过程与并发控制]

如何使用生产存储桶数据启动 Firebase 存储模拟器?

Python:在谷歌云数据存储模拟器中保存数据