К сожалению, вы не можете обойти это ограничение, но я могу помочь вам смоделировать данные немного по-другому.
Во-первых, Bigtable подходит для очень быстрого считывания больших баз данных - то, что вы делаете, когда в ваше приложение одновременно попадает миллион пользователей.То, что вы пытаетесь сделать здесь, это отчет по историческим данным.Хотя я бы порекомендовал перенести отчетность в RDBMS, есть способ, которым вы можете сделать это на Bigtable.
Сначала переопределите метод put () в модели элементов, чтобы разделить дату перед ее сохранением.Что бы вы сделали, это что-то вроде
def put(self):
self.manufacture_day = self.manufacture_date.day
self.manufacture_month = self.manufacture_date.month
self.manufacture_year = self.manufacture_date.year
super(self.__class__, self).put()
Вы можете сделать это с любым уровнем детализации, который вам нужен, даже часами, минутами, секундами и т. Д.
Вы можете применить это задним числом к вашемубазы данных, просто загружая и сохраняя ваши объекты сущностей. mapper очень удобен для этого.
Затем измените свой запрос, чтобы использовать неравенство только для количества элементов, и выберите дни / месяцы / годы, которые вы хотите, используя нормальные равенства.Вы можете сделать диапазоны, запустив несколько запросов или используя предложение IN.(Который в любом случае делает то же самое).
Это кажется надуманным и сложным для выполнения, но имейте в виду, что ваши отчеты будут запускаться почти мгновенно, если вы сделаете это, даже когда миллионы людей пытаются запустить ихв то же время.Вам могут не понадобиться такие весы, но хорошо ... вот что вы получаете: D