Предупреждение о массовой загрузке движка приложения Нет нисходящего индекса для __key__, выполняется последовательная загрузка

Я использую следующее для загрузки всех экземпляров одного из моих видов:

appcfg.py download_data --config_file=bulkloader.yaml --kind=ModelName --filename=ModelName.csv --url=http://appid.appspot.com/remote_api

Если вид имеет больше экземпляров, чем размер пакета, я получаю это предупреждение:

No descending index on __key__, performing serial download

У меня нет пользовательских индексов или свойств с отключенными индексами.

Мне «нужно» что-то сделать, чтобы устранить это предупреждение, или это просто предупреждение, которое я могу спокойно игнорировать? Влияет ли это на скорость загрузки?

Эта статья о массовом загрузчике включает предупреждающее сообщение в образец вывода. , но не упоминает об этом.

В этом сообщении о группе App Engine говорится, что мне нужно создать индекс. Однако добавление большего количества индексов замедлит запись в мои объекты, чего я бы предпочел не делать, поскольку я собираюсь писать объекты чаще, чем выполнять массовые загрузки данных.

Спасибо.


person Saxon Druce    schedule 18.11.2010    source источник
comment
у вас есть запросы с убывающим порядком в вашем коде?   -  person systempuntoout    schedule 19.11.2010
comment
@systempuntoout: Да, но только для одного из моих видов (и это предупреждение появляется для любого типа с экземплярами › размера пакета), и предложение порядка не находится в ключе (оно находится в свойстве datetime ).   -  person Saxon Druce    schedule 19.11.2010


Ответы (3)


Как описано в ошибке, без нисходящего индекса __key__ для модели, которую вы загружаете, массовый загрузчик должен загружаться последовательно. Если вы добавите индекс, как описано, он сможет загружаться параллельно. Если вы этого не сделаете, он будет работать нормально, но загрузка будет медленнее, так как он работает последовательно.

Обратите внимание, что дополнительный индекс лишь незначительно влияет на задержку, поскольку строки индекса записываются параллельно с записью объекта, то есть запись занимает столько времени, сколько требуется для самого медленного обновления.

person Nick Johnson    schedule 18.11.2010
comment
... как определить нисходящий индекс? все, что я могу найти, это 2-3-летние вещи, которые выдают ошибки в 2013 году. :( - person Karel Bílek; 28.03.2013

Я решил эту проблему, добавив этот код в index.yaml

kind: books
- properties:
  name: __key__
    - direction: desc
kind: books
- properties:
  name: another_indexes_here
person noomz    schedule 26.05.2011

Если вы используете JAVA и файл datastore-indexes.xml.

Добавьте это (предположим, что название типа «Книги») в файл datastore-indexes.xml:

<datastore-index kind="Books" ancestor="false" source="auto"> 
    <property name="__key__" direction="desc"/> 
</datastore-index>

Затем повторно разверните приложение. Убедитесь, что вы проверили вкладку индекса хранилища данных, чтобы убедиться, что __key__ обслуживается. Затем вы можете повторить попытку загрузки.

person Stewie    schedule 11.06.2011