【问题标题】:App Engine data modeling problemApp Engine 数据建模问题
【发布时间】:2011-03-28 15:31:29
【问题描述】:

我对为我的数据模型建模以进行高效查询有点陌生 GAE,但对 RDBMS 有广泛的了解。

问题来了: 我有大约一百万个术语(字符串),需要查询和比较 关联的数值作为与每周数据点的时间序列。 将其视为 X 轴和线性 Y 轴上的时间图 显示数值测量。

到目前为止,我在 数据存储,我正在寻找一种方法来聚合数据按周 并存储数据,以便我可以有效地查询数据存储。 我正在考虑预先计算一些不同的时间序列 每学期长度(4 周、5 周、6 周等)并存储每个条目 如{term, start_week, [time series]}

使用 RDBMS,我可以轻松地按周分组并以编程方式创建数据系列,无论是作为存储过程还是在应用程序后端。由于 GAE 限制和 BigTable 作为高度分布式系统的性质,这不是一个选项。

非常感谢任何想法!

【问题讨论】:

    标签: google-app-engine google-cloud-datastore data-modeling bigtable


    【解决方案1】:

    您采用的方法似乎是合理的,但这完全取决于您需要执行的查询类型。假设您需要按名称(字符串)和周查找时间序列,并且您通常希望获取连续 1 到 100 周的数据,我建议如下:

    • 按照您的建议,为每个学期每周的数据提供一个实体
    • 与其“松散”地存储数据并定期汇总数据,不如直接以这种形式存储新点。每当您收到一个新数据点时,如果它是一周的第一个点,则创建一个新实体。如果不是,请检索该周的现有实体并将您的数据点附加到它。
    • 当您要绘制数据时,查询您需要的期限和时间段,并按时间顺序获取结果。

    【讨论】:

    • 问题是:我必须查询的不是 1 个术语的时间序列,而是数百个术语。然后查询需要很长时间才能完成。
    • 您能详细说明您的用例吗?如果您知道术语和时间段,通过正确使用键名,您可以针对所需的所有记录执行单个批量数据存储获取,这比许多查询要高效得多。
    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多