Google数据存储-在没有热点的情况下对创建日期字段进行索引

2024-03-29

我正在使用 Google Datastore,需要查询它来检索一些实体。这些实体需要按从最新到最旧的顺序排序。我的第一个想法是拥有一个包含时间戳的 date_created 属性。然后我会索引该字段并对该字段进行排序。这种方法的问题是它会导致数据库中出现热点(https://cloud.google.com/datastore/docs/best-practices https://cloud.google.com/datastore/docs/best-practices).

不要为具有单调递增值的属性(例如 NOW() 时间戳)建立索引。维护此类索引可能会导致出现热点,从而影响具有高读写速率的应用程序的 Cloud Datastore 延迟。

显然,按日期对数据进行排序是对数据库执行的最常见的排序。如果我无法索引时间戳,是否有另一种方法可以实现在没有热点的情况下将我的查询从最新到最旧进行排序?


正如您所注意到的,索引单调变化的值不会扩展,并且可能导致热点。您是否可能受到此影响取决于您的特定使用情况。

作为一般规则,此模式的热点点是每秒 500 次写入。如果您知道自己肯定会处于这种状态,那么您可能不需要担心。

如果您确实需要每秒超过 500 次写入,但有上限,则可以尝试分片方法。基本上,如果每秒写入次数上限为 x,则 n =上限(x/500),其中 n 是分片数量。当您写入时间戳时,请在开头添加 random(1, n) 。这将创建 n 个随机密钥范围,每个密钥范围每秒最多可执行 500 次写入。当您查询数据时,您需要发出 n 个查询并对结果流进行一些客户端合并。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google数据存储-在没有热点的情况下对创建日期字段进行索引 的相关文章

  • 使用 Google App Engine 和 Django 将第三方库 (twilio) 添加到项目中

    每个人 我是这个领域的新手 我使用 django 框架使用 google 应用引擎开发 Web 应用程序 我有一个关于 python lib dir 问题的故障排除 导入错误 没有名为 的模块 我的 appengine config py
  • Google Cloud Platform App Engine 节点灵活实例 Ruby RAM 使用率为 50%

    有一个 ruby 进程始终处于 50 RAM 利用率 无论实例分配了多少 RAM 我在弹性环境中运行 Node 并使用一个简单的 Express 应用程序 该应用程序通过 Sequelize 连接到 Cloud SQL 实例 我尝试将 RA
  • 非关系数据库设计[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解您使用过的设计策略非关系型 nosql 数据库 也就是说 不使用传统关系设计或 SQL 的 大多数是新的 数据存储类 例如
  • 修订:算法和数据结构

    我需要通过修订来构建和处理数据的想法 例如 我有一个对象数据库 例如汽车 每个对象都有许多属性 这些属性可以是任意的 因此没有一个固定的模式来描述这些对象 这些对象可能保存为键值对 现在我需要更改对象的属性 我不想完全重写它 我希望能够返回
  • 字符串插值搜索

    对于那些不熟悉插值搜索的人来说 这是一种在排序数组中搜索值的方法 可能比二分搜索更快 您查看第一个和最后一个元素 并 假设数组的内容均匀分布 线性插值以预测位置 例如 我们有一个长度为 100 的数组 其中 array 0 0 和 arra
  • 如何对同一列上的数据帧列表中的所有数据帧进行排序?

    我有一个数据框列表dataframes list 举个例子 我把dput dataframes list 在底部 我想对列列表中的所有数据框进行排序enrichment 我可以对一个数据框进行排序 first dataframe lt da
  • 什么时候不应该使用 Cassandra? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 相关话题已经有很多讨论了卡桑德拉 http cassandra apache org lately Twitter Digg Facebook
  • Apache Cassandra 中的复合索引

    我正在尝试设置一个 cassandra 列族 其中一些列上有二级索引 在读回数据时我需要进行过滤 在我最初的测试中 当我一起使用多个索引时 速度会变慢 这是我当前的配置方式 通过 cassandra cli update column fa
  • PHP 中的 MongoDB - 如何将项目插入集合中的数组中?

    这必须很容易 但我似乎无法弄清楚 假设我有一个集合users这是集合中的第一项 id ObjectId 4d8653c027d02a6437bc89ca name Oscar Godson email email protected cdn
  • Mongodump之后,调用MongoRestore挂起

    我们正在尝试在相对较小的数据库上做一个简单的 MongoDump 我们的步骤很简单 export 从目标机器上删除现有数据库 在目标机器上导入 MongoDump 完美执行 mongodump out root mongo prod DB
  • Google Datastore python 每页返回较少数量的实体

    我正在使用 Python 客户端 SDK for Datastore google cloud datastore 版本 1 4 0 我正在尝试运行仅键查询获取 query client query kind SomeEntity quer
  • 按常量 id 对自定义类型的向量进行排序

    我需要对自定义类型的向量进行排序std vector
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • 独立对列进行排序,使得所有空值都位于每列的最后

    这是一个名为的示例表animal name color fox brown fox red dog gold 现在 我想要的是这样的结果 fox dog brown gold red 名称应该是结果的列 不同颜色值作为行 我的第一个想法是
  • API 调用 datastore_v3.Put() 的请求太大

    我正在使用 google cloud sql 和 appengine 我正进入 状态com google apphosting api ApiProxy RequestTooLargeException The request to API
  • 在本地 SDK 服务器上工作时,实时 Google App Engine 上出现 404

    我已经在GAE标准环境上部署了几个PHP应用程序 一切正常 现在我正在部署一个新应用程序 该应用程序位于由gcloudSDK按预期工作 终端命令 dev appserver py log level warning app yaml 问题是
  • Google App Engine 实例不断快速关闭

    所以我已经使用应用程序引擎很长一段时间了 没有任何问题 我知道 如果应用程序有一段时间没有被访问者点击 那么实例将关闭 并且第一个访问该网站的访问者将有几秒钟的延迟 同时新实例启动 然而 最近这些实例似乎只在很短的时间内保持活动状态 有时不
  • 如何让Web Workers在执行计算的同时接收新数据?

    我想使用 Web Workers 对数组进行排序 但随着时间的推移 该数组可能会收到新值 而工作线程仍在执行排序功能 所以我的问题是 在收到新项目后 如何 停止 工作人员的排序计算 以便它可以对该项目的数组执行排序 同时仍然保持已经进行的排
  • 在 Java 中对多语言环境字符串进行排序

    我正在尝试按字符串字段 国家 地区 对对象列表进行排序 每个国家 地区都使用其母语 阿根廷 澳大利亚 奥地利 例如 我想要做的是让 出现在 A 国家之后 因为字母 对应于拉丁语 B 我正在尝试使用默认的 Collat er 但非拉丁名称仍然
  • 在 python 中使用 IOT 适配器和 google pub/sub api 将 MQTT 与 GCP 集成

    与 App Engine Standard 中的 Cloud Pub Sub API 集成 我正在标准 Python 环境中开发 Google 应用程序引擎应用程序 对于代码的某些部分 我需要与 Google Cloud pub sub A

随机推荐

  • $(window).height() 与 $(document).height

    我遇到了高度错误的问题 window height 并得到了类似的问题here https stackoverflow com questions 10569301 why is window height so wrong 就我而言 当我
  • 在 Java 中写入文本文件时插入新行

    我对学习 FileWriter 有一点点困惑 最终目标是编写一个程序 该程序将 生成 一个 bat 文件 该文件将由启动 jar 的批处理代码执行 问题是 我不知道如何确保每个 FileWriter write 将打印在新行上 有什么想法吗
  • 如何向下滚动 - JQuery

    我不是程序员 但我使用下面的代码将页面滚动到顶部 我该如何调整它以向下滚动 a class btnMedio href img src http desmond imageshack us Himg41 scaled php server
  • 如何在 Rails 之外的 ruby​​ 脚本中使用 ActiveRecord?

    我有一个小的 ruby 脚本 我想在其中使用 ActiveRecord 轻松访问数据库模型 最好的方法是什么 require active record Change the following to reflect your databa
  • WAR 中的安全配置文件放在哪里?

    我正在尝试在我的 WAR 中使用 JAAS 进行身份验证 我明白我的配置文件 http download oracle com javase 6 docs api javax security auth login Configuratio
  • 扩展初始值设定项列表仅适用于

    我对 C 很陌生 我在阅读错误时遇到了困难 我能够消除其中的大部分错误 但我只剩下一些错误 我请求对它们的帮助 这是程序 include
  • “数组下标不是整数”c

    我正在尝试使用 for 循环进行矩阵乘法 但收到错误 数组下标不是整数 请问我可以得到一些帮助吗 include
  • Android Proguard 警告:无法写入资源(重复的 zip 条目)

    我启用了 proguard 并得到 Warning can t write resource META INF LICENSE txt Duplicate zip entry commons io 2 4 jar META INF LICE
  • Singleton 对象 - 在静态块中或在 getInstance() 中;应该使用哪个

    下面是两种实现单例的方法 各自的优点和缺点是什么 静态初始化 class Singleton private Singleton instance static instance new Singleton public Singleton
  • Facebook JSON 字符串的反序列化?

    我无法从运行 fql 查询后生成的 JSON 字符串中提取 facebook 用户的 work history 从属关系和 current loc 我已经上过这门课 public class Data public CurrentLocat
  • UI自动化切换窗口

    我注意到 setforegroundwindow 可能非常不稳定 无论你怎么做 我注意到 在可能的情况下使用 UIAutomation 似乎可以改善情况 例如 获取 WindowPattern 并使用类似以下内容 windowPattern
  • .setAttribute 与 .attribute= 背后发生了什么?

    描述 我正在使用简单javascript设置 a 的值input 我使用了多种看似相同但结果不同的方法 这是一个例子 HTML
  • Spring MVC 请求映射不起作用

    我想用一个控制器创建简单的 hello world 应用程序 没有任何类的普通 spring 可以工作 但是当我添加控制器 更改 xml 文件 按照分步教程 并尝试打开 localhost project hello html 时 它会抛出
  • 从 Android 应用程序中的本机库访问根文件(/system、/dev)

    我有一个原生库 它将尝试在 Android 设备的 system dev 文件夹中创建文件 使用 open fopen 等 现在我已经使用 JNI 和 NDK 将库与 A ndroid 应用程序集成 但在根文件夹中创建文件失败 我尝试从本机
  • 可以使用 Flutter 复制 iOS App Store 转换吗?

    是否可以使用Flutter复制iOS App Store的转场效果 我尝试通过将两个标签放入两个小部件的根布局中来使用英雄动画 但动画看起来很卡顿或者不是我所期望的 但这样做的好处是 当我使用 MaterialPageRoute 时 我可以
  • Logger 和 System.out.println 的输出不按顺序

    我想要记录器的输出inputstream在 Eclipse 控制台中 但每次执行的时候 结果的顺序总是不一样 我有几个类 其中一个主类可以调用其他类 并且我将记录器放入每个方法中进行调试 我将结果打印到控制台 我也有检索的方法inputst
  • 在 javascript 中使用 .css() 设置细边框

    因此 当用户单击页面上的按钮时 我试图在按钮周围设置边框 要设置处理程序 我要 reportButtons click function change border color 我尝试了两种方法来更改其中按钮的边框颜色 第一种方法是使用 c
  • Asp.net mvc 表单发布和分页

    我有一个操作方法 搜索 在发布表单时调用该方法 根据表单的发布值 可能有数千个搜索结果 我想逐页显示搜索视图 但如何知道第一次发布的表单值是什么 这样我就可以通过传递页面参数来调用搜索视图 最好的方法是接受系统的无状态性 每次渲染视图时 请
  • 如何将 C# 转换为 C++ [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有人可以帮我将 C 转换为 C 吗 这是一个例子 using System using System Net using System
  • Google数据存储-在没有热点的情况下对创建日期字段进行索引

    我正在使用 Google Datastore 需要查询它来检索一些实体 这些实体需要按从最新到最旧的顺序排序 我的第一个想法是拥有一个包含时间戳的 date created 属性 然后我会索引该字段并对该字段进行排序 这种方法的问题是它会导