2010-11-18 2 views
4

Я использую следующий для загрузки всех экземпляров одного из моих видов:App насыпного двигателя загрузчик загрузить предупреждение «Нет убывающий индекс __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 

у меня нет каких-либо пользовательских индексов, или какого-либо свойства с индексами отключены.

Нужно ли мне что-то делать, чтобы разрешить это предупреждение, или это просто предупреждение, которое я могу смело игнорировать? Это влияет на скорость загрузки?

This article on the bulkloader содержит предупреждающее сообщение в образце, но не упоминает об этом.

This post on the app engine group говорит, что мне нужно создать индекс. Однако добавление большего количества индексов замедлило бы запись в мои сущности - что я бы предпочел не делать, поскольку я собираюсь писать объекты чаще, чем я буду делать массовые загрузки данных.

Спасибо.

+0

У вас есть запросы с убывающим кодом в вашем коде? – systempuntoout

+0

@systempuntoout: Да, но только на одном из моих видов (и это предупреждение происходит в любом виде с экземплярами размера партии), а предложение заказа не находится на __key__ (оно находится в свойстве datetime). –

ответ

6

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

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

+0

Спасибо за то, что Ник. –

+3

... как определить нисходящий индекс? все, что я могу найти, это 2-3-летние вещи, которые порождают ошибки в 2013 году. :( –

2

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

kind: books 
- properties: 
    name: __key__ 
    - direction: desc 
kind: books 
- properties: 
    name: another_indexes_here 
0

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

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

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

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