小编Dan*_*ath的帖子

如何在Google Datastore中添加综合索引?

我现在正在将Google Datastore用于我公司的数据库.今天,我做了一个索引,并成功列入'指数'.但是我做的索引的大小和实体是空的.

谷歌数据存储区的文档说该索引是自动生成的,但事实并非如此.

是否有任何命令或事情可以生成索引?

下图是截图.

上面一个是新的.以下是已经使用过的.

在此输入图像描述

indexing google-app-engine google-cloud-datastore

5
推荐指数
1
解决办法
1590
查看次数

GAE NDB"结果无法设置两次"错误

我点击这个结果不能设置两次运行时错误GAE Ndb异步查询在做ndb.Future.wait_all(futures)一堆异步查询时.

像这样的东西:

futures = []
for item in items:
    item._future_get = MyEntity.query(...).get_async()
    futures.append(item._future_get)

ndb.Future.wait_all(futures)
# ...
Run Code Online (Sandbox Code Playgroud)

它失败了wait_allwith with result无法设置两次

SO上没有提到此错误消息.谷歌在2011年有2-3次提及它,并没有明确的解释.

更多信息:

items是前一次获取的ndb实体.但它们在这里并不重要(至少我认为),因为查询是在MyEntity上执行的.我习惯以这种方式将期货附加到它们所涉及的对象上,因此当所有已完成时更容易理清.

堆栈跟踪:

  File "/home/my_project/app/main/admin/my_module.py", line 166, in admin_base_cleanup_details ndb.Future.wait_all(futures)
  File "/usr/lib/python2.7/google_appengine/google/appengine/ext/ndb/tasklets.py", line 350, in wait_all ev.run1()
  File "/usr/lib/python2.7/google_appengine/google/appengine/ext/ndb/eventloop.py", line 235, in run1 delay = self.run0()
  File "/usr/lib/python2.7/google_appengine/google/appengine/ext/ndb/eventloop.py", line 197, in run0 callback(*args, **kwds)
INFO     2016-04-26 08:40:04,152 module.py:808] default: "GET /admin/cleanup/details?mode=status HTTP/1.1" 500 -
  File "/usr/lib/python2.7/google_appengine/google/appengine/ext/ndb/tasklets.py", line 475, in _on_future_completion self._help_tasklet_along(ns, ds_conn, gen, …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine app-engine-ndb google-cloud-datastore

5
推荐指数
1
解决办法
103
查看次数

如何在android中具有一对一或一对多关系的objectify实体中插入记录

我有如下类 City 的模型:

@Entity
public class City {
    @Id
    Long id;
    String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
Run Code Online (Sandbox Code Playgroud)

我有另一个模型类 Person 下面给出:

@Entity
public class Person {
    @Id
    Long id;
    String name;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    @ApiResourceProperty(ignored = AnnotationBoolean.TRUE)
    Key<City> city;
}
Run Code Online (Sandbox Code Playgroud)

之后,我使用 android studio 为这两个类生成端点并部署它。

这是生成的端点的代码:

个人端点

@Api(
        name = "personApi",
        version = "v1",
        resource = "person", …
Run Code Online (Sandbox Code Playgroud)

google-app-engine android objectify google-cloud-endpoints google-cloud-datastore

5
推荐指数
1
解决办法
797
查看次数

设计应用引擎数据存储和文本搜索建模的最佳方式

我们在谷歌应用引擎上运行了一个Java应用程序.有一种叫做联系.以下是示例模式

Contact
{
  long id
  String firstName
  String lastName
  ...
}
Run Code Online (Sandbox Code Playgroud)

以上是existig模型,用于支持我们在数据存储和文本搜索中存储此对象的一些要求

现在我们想要将联系人与他们的页面查看数据集成.

每个联系人可以拥有数千个页面浏览记录,甚至可以拥有数百万个联系人

以下是示例页面访问对象[注意:我们目前没有此对象,这只是提供有关页面访问的信息]

PageVisit
{

  long id
  String url
  String refUrl
  int  country
  String city
  ....
}
Run Code Online (Sandbox Code Playgroud)

我们有一个要求,需要查询联系核心属性和他的页面访问数据

对于前:

select * from Contact where firstName = 'abc' and url = 'cccccc.com';
select * from Contact where firstName = 'abc' or url = 'cccccc.com';
Run Code Online (Sandbox Code Playgroud)

要编写此类查询,我们需要联系核心属性和访问的页面需要在Contact对象本身中可用,但联系人可以拥有大量的页面视图.因此,这将跨越实体最大大小限制

那么如何在数据存储和文本搜索中设计这种情况下的联系模型.

谢谢

google-app-engine gql google-cloud-datastore google-cloud-platform

5
推荐指数
1
解决办法
127
查看次数

5
推荐指数
1
解决办法
171
查看次数

循环数据存储查询结果需要太长时间.有没有办法加快速度?

我正在查询看起来像这样的数据存储区:

Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,
                                    "SELECT * FROM " + kind
                                            + " WHERE Location = place").build();
results = datastore.run(query);
Run Code Online (Sandbox Code Playgroud)

结果存储在一个 QueryResults<Entity> results;

然后我遍历结果并提取我需要的数据.

这种类型有大约10000个实体,我将它们全部提取出来.

while (results.hasNext()) {

   Entity result = results.next(); 
   ....
}
Run Code Online (Sandbox Code Playgroud)

这需要10秒才能实现.有没有办法减少这个时间?我知道循环结果导致减速.

google-app-engine google-cloud-datastore

5
推荐指数
1
解决办法
361
查看次数

Cloud Datastore“喜欢”查询

我在 Google Cloud Datastore 中有一个实体。属性之一是字符串数组。例如:

属性:技能

实体 1:
值:["mysql","sqlserver","postgresql","sqllite","sql-server-2008","sql"]

实体 2:
值:["css","css3"]

现在,我需要查询那些包含数组元素的实体css*

在典型的 SQL 中,它将是select * from kindName where skills like 'css%'

我尝试过select * from kindName where skills = 'css',效果很好,但是如何获取具有css*与 SQL 查询类似的元素的实体?

或者

为此建立数据模型的最佳方法是什么?

google-app-engine gql google-cloud-datastore google-cloud-platform

5
推荐指数
1
解决办法
2214
查看次数

Google的扳手中的TrueTime API是什么?

我试图多次阅读该文档但未能理解它.有人可以用外行的话来解释吗?

database distributed google-cloud-platform google-cloud-spanner

5
推荐指数
1
解决办法
2793
查看次数

GAE因401而刷新(尝试1/2)

我使用gcloud app deploy部署应用程序.它运行良好几个小时,然后工作陷入以下信息日志:

03:54:59.748 Refreshing due to a 401 (attempt 1/2)
03:58:44.816 Refreshing due to a 401 (attempt 1/2)
03:58:55.781 Refreshing due to a 401 (attempt 1/2)
03:58:56.317 Refreshing due to a 401 (attempt 1/2)
Run Code Online (Sandbox Code Playgroud)

好像它是从内部serviceName记录的:"appengine.googleapis.com"

部署的应用程序从GCS读取一些文件,并使用google pubsub发布一些计算的指标.我使用谷歌客户端API库,它使用凭据进行身份验证.

    credentials = GoogleCredentials.get_application_default()
    if credentials.create_scoped_required():
        credentials = credentials.create_scoped(['https://www.googleapis.com/auth/devstorage.read_only)
    http = httplib2.Http()
    credentials.authorize(http)
    return discovery.build('storage', 'v1', http=http)
Run Code Online (Sandbox Code Playgroud)

pubsub的类似片段也是如此.有任何人遇到类似的问题,其中请求似乎永远停留在显示401状态代码的信息日志.不确定为什么请求不会超时并导致失败.任何变通方法?

google-app-engine google-authentication google-cloud-storage google-cloud-platform

5
推荐指数
1
解决办法
759
查看次数

Google Datastore 跨区域复制

我们有一个在美国和欧盟托管的应用程序。为了获得出色的性能,我们将在两个位置托管一个数据存储实例。

现在我们的问题是如何将数据从美国数据存储复制到欧盟数据存储?

或者从技术角度来看,我们将数据存储在哪里并不重要?

database-replication google-cloud-datastore

5
推荐指数
1
解决办法
4629
查看次数