Лучший способ получить данные CSV в App Engine, когда массовый загрузчик занимает слишком много времени / генерирует ошибки? - PullRequest
1 голос
/ 22 апреля 2011

У меня есть 10 МБ CSV-файл данных геолокации, который я пытался загрузить в хранилище данных App Engine вчера. Я следовал инструкциям в этом сообщении в блоге и использовал инструмент bulkloader / appcfg. Хранилище данных показало, что записи были загружены, но это заняло несколько часов и использовало всю мою квоту ЦП за день. Процесс завершился ошибкой к концу, прежде чем я фактически превысил свою квоту. Но, само собой разумеется, 10 МБ данных не должны требовать столько времени и энергии.

Итак, есть ли какой-то другой способ передать эти CSV-данные в мое хранилище данных App Engine (для приложения Java).

Я видел пост Икай Лана об использовании инструмента картографа, который он создал для этой цели, но он выглядит довольно сложным.

Вместо этого, как насчет загрузки CSV в Google Docs - есть ли способ перенести его в хранилище данных App Engine оттуда?

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Я ежедневно загружаю 100000 записей (20 мегабайт) через загрузчик. Настройки, с которыми я играл: - конфигурация bulkloader.yaml: автоматическая генерация ключей. - включить строку заголовка в сырой CSV-файл. - параметры скорости установлены на макс. (не уверен, что сокращение уменьшит расход процессора)

Эти настройки сжигают мои 6,5 часов бесплатной квоты примерно за 4 минуты - но он загружает данные (возможно, их 'из генерируемых индексов).

appcfg.py upload_data --config_file=bulkloader.yaml  --url=http://yourapp.appspot.com/remote_api --filename=data.csv --kind=yourtablename --bandwidth_limit=999999 --rps_limit=100 --batch_size=50 --http_limit=15

(я автоматически генерирую эту строку с помощью скрипта и использую Autohotkey для отправки своих учетных данных).

0 голосов
/ 22 апреля 2011

Я написал этот соединитель gdata для извлечения данных из таблицы Google Docs и вставки их в хранилище данных, но он использует Bulkloader, поэтому он как бы возвращает вас к решению одной из ваших проблем.

http://code.google.com/p/bulkloader-gdata-connector/source/browse/gdata_connector.py

Однако вы могли бы взглянуть на источник, чтобы увидеть, как я извлекаю данные из gdocs и создаю задачу (и), которая делает это, вместо того, чтобы проходить через Навалдер.

Также вы можете загрузить свой документ в хранилище BLOB-объектов и аналогичным образом создать задачу, которая считывает данные CSV из хранилища BLOB-объектов и создает объекты.(Я думаю, что это будет проще и быстрее, чем работа с фидами gdata)

...