У нас есть многолетние данные о погоде, которые нам нужны для создания приложения для составления отчетов.Данные о погоде имеют много полей различных типов, например, город, штат, страна, почтовый индекс, широта, долгота, температура (привет / нет), температура (средн.), Осадки, скорость ветра, дата и т. Д. И т. Д.отчеты требуют, чтобы мы выбирали комбинации этих полей, а затем сортировали, искали и фильтровали их, например,
WeatherData.all().filter('avg_temp =',20).filter('city','palo alto').filter('hi_temp',30).order('date').fetch(100)
или
WeatherData.all().filter('lo_temp =',20).filter('city','palo alto').filter('hi_temp',30).order('date').fetch(100)
Может быть легко увидеть, что эти запросы требуют разных индексов.Также может быть очевидно, что ограничение индекса 200 очень легко можно пересечь с любой такой моделью данных, где комбинация полей будет использоваться для фильтрации, сортировки и поиска объектов.Наконец, число объектов в такой модели данных, очевидно, может исчисляться миллионами, учитывая, что существует много городов, и мы можем делать почасовые данные вместо ежедневных.
Может кто-нибудь порекомендовать способ моделирования этих данных, который учитываетвсе запросы, которые все еще будут выполняться, в то же время оставаясь в пределах 200 индексов?Стоимость записи в этой модели не такая большая, но нам нужно супер быстрое чтение.