Проблема моделирования данных Механизма приложения

Я довольно плохо знаком с моделированием моей модели данных для эффективных запросов с GAE, но имею обширные знания с RDBMS.

Вот проблема: Я получил примерно миллион условий (строки) и потребность запросить и сравнить связанные численные значения как временной ряд с еженедельными точками данных. Думайте о нем как о графике со временем на оси X и линейной оси Y, показывающей числовые меры.

До сих пор я понял мысли дискретных данных на термин и день в хранилище данных, и я ищу способ агрегировать данные к неделе и хранить данные так, чтобы я мог запросить хранилище данных эффективно. Я думал о предварительном вычислении многих временных рядов другой длины (4 недели, 5 недель, 6 недель и т.д.) на термин, и сохраните каждую запись как {term, start_week, [time series]}

С RDBMS я мог легко сгруппироваться к неделе и создать ряд данных программно, или как хранимая процедура или в бэкэнде приложения. Из-за ограничений GAE и природы BigTable как очень распределенная система, это не опция.

Любые идеи высоко ценятся!

1
задан poezn 11 August 2010 в 21:46
поделиться

1 ответ

Подход, к которому вы идете, кажется разумным, но все зависит от типа запросов, которые вам нужно выполнить. Если предположить, что вам нужно искать временные ряды по имени (строке) и неделе, и вы, как правило, хотите получить от 1 до 100 последовательных недель данных, я бы предложил следующее:

  • Иметь одну сущность для данных за каждую неделю для каждого срока, как вы предлагаете
  • Вместо того, чтобы хранить данные "в свободном виде" и периодически агрегировать их, храните новые точки непосредственно в этой форме. Каждый раз, когда вы получаете новую точку данных, если это первая точка за неделю, создайте новую сущность. Если это не так, извлеките существующую сущность за эту неделю и добавьте к ней свою точку данных.
  • Когда вы захотите построить график данных, запросите нужный вам термин и период времени и получите результаты в порядке возрастания времени.
2
ответ дан 2 September 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: