繁体   English   中英

合并-Google Cloud Datastore中的upsert / delete

[英]merge - upsert/delete in google cloud datastore

我正在研究POC(将部分功能从关系数据库迁移到云数据存储)。 我有几个问题:

  1. 由于数据来自不同的数据源(通过平面文件),我每晚都需要刷新一些“种类”。 我读了一下,并了解到数据存储中没有TRUNCATE类型的功能。 我相信,唯一的选择是在循环中从“种类”中检索键并逐个删除实体。 并使用导入功能加载新的数据集。 有没有更好的选择?
    1. 假设我有一个叫做部门的部门,还有一个叫做商店的部门。 现在,我需要一种叫做dept-store的类型。 因此,对于此父节点,是部门和存储。 有没有办法加强这种关系? 从文档中,我看到只能有一个父母。
    2. 如果我在kind1中有一个子实体,其父级在kind2中存在,并且它们链接在一起,是否可以同时查询在kind1和kind2中存在的所有属性? 从关系数据库的角度来看,它与“ SELECT *”等效连接。 我正在寻找数据存储中的等效功能。

为了回答您的问题:

  1. 有两种删除多个实体的方法。 首先,您可以使用Cloud Dataflow删除Bulk [ 1 ]中的实体。 其次,一旦检索到密钥,就可以通过将密钥传递给数据存储删除功能来进行批量删除操作,这里有使用示例[ 2 ]。 为了检索密钥,您可以运行仅密钥查询[ 3 ]。

  2. 在数据存储区中,一个实体只能有一个父级,但可以有多个子级。 但是对于您的用例,您可以尝试拥有第三种类型的百货商店,并将其属性分配为部门和商店类型中实体的键。 该解决方案可能需要对实现的需求有充分的了解,因为数据存储本质上是非关系数据库。

  3. 您可以查找多个实体,并通过批处理操作[ 2 ]提供从kind1和kind2检索到的密钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM