Жаль, но моё решение (на первый взгляд) - не использовать GAE.
Почему?:
* самое неприятное - ограничение на CPU.
причем его нельзя как-то запланировать и просчитать
* ограничение на селекты
в принципе - оно может и правильное, но как быть, если я хочу показывать, что у меня есть, например, 5000 объявлений в базе? про шардинг я читал - все это - изврат
* нет join`ов - не удобно работать (фильтровать) связанные объекты.
можно плодить дополнительные объекты - но ведь это костыли!!!
* огромное неприятное - нет возможности наблюдать на сервером.
например - когда упадет... когда держишь несколько машин - можно повесить вачдог, чтоб письмо на почту слал... или оптимизация кода...
* ждать индексации - издевательство
вот залил я дамп, хочу тест сделать - селект с фильтром по полю - фиг вам! нельзя, пока не построится индекс!!!
Ваши мысли - приветствуются
понедельник, 28 сентября 2009 г.
GAE. Bulkload. Загрузка дампа. Русский язык.
Столкнулся с загрузкой дампа, в котором есть строки с русским языком. Загрузчик ругался...
Решение (пример, русский текст в свойстве Name. просто добавляем лямбда-функцию для конвертации)
Решение (пример, русский текст в свойстве Name. просто добавляем лямбда-функцию для конвертации)
class Organization_Shop(db.Model):
Id=db.StringProperty()
Name=db.StringProperty()
Deleted=db.BooleanProperty()
class Organization_Shop_Loader(Loader):
def __init__(self):
Loader.__init__(
self,
'Organization_Shop',
[('Id',str),
('Name',lambda x: unicode(x, 'utf-8')),
('Deleted',bool)]
)
четверг, 24 сентября 2009 г.
GAE. Bulkload. Загрузка дампа.
Изучаю Google App Engine. Тестирую. Столкнулся с необходимостью загрузить дамп таблицы. Много времени потратил, пытаясь сделать все по инструкции. Оказалось - она несколько устаревшая что-ли...
Публикую мой рабочий пример:
Конфиг app.yaml:
Класс для загрузки .csv - uploader.py (обратите внимание - класс bulkloader не подключен, в коде фигурирует просто Loader):
Дамп d.csv:
Вызов процесса аплоада дампа: (обратите внимание на то, что вызывается bulkloader.py - в текущей версии appcfg.py у меня не умеет делать аплоад! Вызов для удобства разбиваю на строки...)
Вот. Только так у меня сейчас и работает. Успехов!
Публикую мой рабочий пример:
Конфиг app.yaml:
application: fun-test version: 2 runtime: python api_version: 1 handlers: - url: /remote_api script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py login: admin - url: /.* script: main.py
Класс для загрузки .csv - uploader.py (обратите внимание - класс bulkloader не подключен, в коде фигурирует просто Loader):
# coding=UTF-8
import datetime
from google.appengine.ext import db
class Test(db.Model):
Name=db.StringProperty()
LastName=db.StringProperty()
class TestLoader(Loader):
def __init__(self):
Loader.__init__(
self,
'Test',
[('Name',str),
('LastName',str)]
)
loaders = [TestLoader]
Дамп d.csv:
Jonny, Lee Carl,Donny Nick,Cookie
Вызов процесса аплоада дампа: (обратите внимание на то, что вызывается bulkloader.py - в текущей версии appcfg.py у меня не умеет делать аплоад! Вызов для удобства разбиваю на строки...)
C:\Program Files\Google>c:\Python25\python.exe google_appengine/bulkloader.py --filename=testapp/d.csv --kind=Test --url=http://localhost:8080/remote_api --config_file=testapp/uploader.py --app_id=fun-test
Вот. Только так у меня сейчас и работает. Успехов!
вторник, 22 сентября 2009 г.
House, dr. s06e01
а-ха-ха-ха! супер. в моих липких лапках Хаус 6.1+2
в заставке - композиция радиохеад! (оччень хорошая)
Видео
в заставке - композиция радиохеад! (оччень хорошая)
Видео
понедельник, 7 сентября 2009 г.
среда, 12 августа 2009 г.
MSSQL: вставка большого кол-ва строк в таблицу с триггером
Наткнулся на большие задержки локов на важных таблицах. Оказалось если на таблице висит триггер на вставку, и вставить много-много строк (в моём случае было около 50 000) - очень долго выполняется вставка (около 30 сек). Лечится временным выключением триггера (если это позволительно логикой триггера):
Включение - enable.
disable [trigger_name] on [table_name];
Включение - enable.
пятница, 3 июля 2009 г.
Windows. Удаленный вход. Терминальная лицензия - обход
Админы люди ленивые. Кончился "льготный" период пользования терминальным сервисом - не пускает. Но если очень нужно - то можно:
mstsc /v:192.168.0.1 /console
Подписаться на:
Сообщения (Atom)