У меня есть небольшая проблема, которая нуждается в некоторых предложениях:
- Допустим, у нас есть несколько сотен таблиц данных с несколькими десятками миллионов строк.
- Таблицы данных - это метка времени (ключ) - значение
- Таблицы данных записываются один раз в секунду
Последняя запись каждой таблицы должна быть быстро доступной и, скорее всего, будет запрашиваться наиболее (сортировать как "следить за данными в реальном времени" ). С отсутствием "Last()" или аналогичного, я думал о создании другой таблицы "LatestValues", где последняя запись каждой таблицы данных обновляется для более быстрого поиска. Это, однако, добавит дополнительное обновление для каждой операции записи. Кроме того, большая часть трафика будет сосредоточена на этой таблице (хорошая/плохая?). Есть ли лучшее решение для этого или я чего-то не хватает?
Кроме того, скажем, мы хотим запросить значения в таблицах данных. Поскольку сканирование, очевидно, не может быть и речи, является единственным вариантом, чтобы создать вторичный индекс, дублируя данные, эффективно удваивая требования к хранению и операции записи количества? Любые другие решения?
Я в первую очередь смотрю на DynamoDB и Azure Table Storage, но мне также интересно, как BigTable справляется с этим.