【问题标题】:Storing User Events History in Google Cloud Datastore vs Google Cloud Bigtable在 Google Cloud Datastore 与 Google Cloud Bigtable 中存储用户事件历史记录
【发布时间】:2016-10-08 03:15:51
【问题描述】:

我正在尝试通过存储在后端的数据库中来跟踪我的 android 应用程序中的用户事件。我正在为我的移动后端使用 Google App Engine。我想弄清楚 Google App Engine 中的 Datastore 是否适合这个。另外,我遇​​到了 NoSQL 的 Bigtable(计费功能)。

在 Google App Engine 中使用 Cloud Datastore 与 Bigtable 的优缺点是什么?

此外,我找不到自动清除 Datastore 中旧数据(即,早于特定日期等)的方法(我找到了一些使用 cron-job 的建议)。

【问题讨论】:

  • BigQuery 专为您的应用而设计
  • @IgorArtamonov -- 不,BigQuery 不适合这个。 BigQuery 非常适合在收集数据之后查询数据,但对于需要频繁写入的数据来说,它不是很好的存储。我已经看到使用 Datastore 完成了此操作,但据我所知,它不提供开箱即用的“清除早于...的数据”功能。您必须自己构建它(也许是cron 的工作来清理它或其他东西)。我猜 Datastore 会更快,因为它不使用传统的 REST api,但我没有任何真实数据来支持这种说法。
  • 是的,我知道这样的问题只会得到基于意见的答案 :) 无论如何,afaik 每个人都在为此使用 BQ(人们需要对这些数据进行临时分析,不只是存储和以后燃烧)
  • @IgorArtamonov -- 我并不是说 BQ 不适合临时查询数据 -- 只是你不能使用 BQ 来收集数据在(据我所知)。即,当应用中发生点击时,您不能在 BigQuery 表中仅添加一行来表示该点击。在我的团队中,我们收集数据存储区中的数据并每天备份到 CloudStorage(然后将其导入 BigQuery 进行分析)。无论如何,我认为这个问题是在询问数据收集部分,而不是“一旦我拥有数据,我该如何理解它”部分......
  • 你说的“你不能”是什么意思?这绝对是允许的,没有额外的费用或任何东西(afaik 它是免费的应用程序引擎)。我们有一个应用程序可以做到这一点,绝对没问题

标签: python google-app-engine google-cloud-datastore google-cloud-bigtable


【解决方案1】:

Cloud Bigtable 目前不适用于 Google App Engine 标准,但该功能正在积极开发中。 Cloud Bigtable 可以灵活处理当前的 Google App Engine。

要将用户事件导入 Bigtable,您必须使用稍微不同的架构。这是一个关于物联网的讨论,它类似于捕获用户事件,因为它是不变的时间序列数据:https://www.youtube.com/watch?v=8PibIlXmd-Q

Cloud Bigtable 适用于您希望针对大负载优化吞吐量的情况。最小的 Cloud Bigtable 设置允许 30k QPS(每秒查询)。 The cost 与您需要多少吞吐量有关,这会转化为节点数,以及您使用多少存储空间。

综上所述,Cloud Datastore 应该更易于使用。 Cloud Bigtable 是一种更专业的工具,需要一定程度的架构设计和表管理专业知识。

如果您正确设置时间戳,Cloud Bigtable 会自动清除。

您可以在Overview of Cloud Bigtable 中查看更多信息。

注意:这篇文章是在晚上 6 月 18 日编辑的。

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2020-08-23
      • 2022-01-12
      • 2020-10-03
      • 2014-07-30
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      • 2019-04-28
      相关资源
      最近更新 更多