MSSQL IS: определение дельты
1) Что ты имеешь в виду под дельтой?
2) Что ты имеешь в виду под хвостом?
Я нихуя не понял.дельта - различающиеся строки в мастер-базе и зеркале, зеркало на эту дельту как раз обновляется, что б синхронизировать с мастер-базой
1) Что ты имеешь в виду под дельтой?
2) Что ты имеешь в виду под хвостом?
"хвост" - записи за какой-то крайний период, например за последнюю неделю. Т.к. мастер-база обновляется раз в неделю то разумно просто в качестве дельты брать все данные за определённый временной период - это и есть хвост
4) Зеркал много?
5) Как ты хочешь чтобы себя вели коллизии? Как быть если в мастере поменяли одно поле, а в зеркале другое? При импорте изменений из зеркала, данные в мастере просто затираются?
3) Данные меняются и в мастер базе и в зеркале?3) данные меняются только в мастер-базе
4) Зеркал много?
5) Как ты хочешь чтобы себя вели коллизии? Как быть если в мастере поменяли одно поле, а в зеркале другое? При импорте изменений из зеркала, данные в мастере просто затираются?
4) одно
5) в зеркале ничего не правится. коллизия может быть если в мастере поменяли какое-то поле, то его надо обновить в зеркале.
Если тебе MSSQL нужен только для Analysis Servises, так может оттуда напрямую в Access лезть?
1) В таблице в мастере добаляешь поле версия. (с индексом!)
2) Создаёшь секуенс.
3) На обновление таблицы в мастере вешаешь триггер, который в поле версия пишет значение секуенса.
при синхронизации:
4) Выбираешь максимальное значение версии в зеркале.
5) Скидываешь в зеркало все строки у которых значение поля версия больше этого числа.
в 2008ом analysis services видимо так не умеют
но поменять процесс ведения access базы не получится
Это почему это?
огульный долбоебизм и нежелание чего-либо менять
Еще как идея - перенести таблицы из Access на сервер. Сам не делал, но по идее должно быть довольно просто + прозрачно для пользователей
Если достаточно просто удаленно обновляться, то смотри оператор MERGE (старые записи обновятся, новые вставятся).
Разумеется желательно количество выбираемых данных с источника минимизировать.
Если ты ручками в lookup сравниваешь все столбцы, то лучше добавь hash-по всем столбцам и сравнивай его.
P.S. IS не видел ни разу.
Сделай джоб, запускающий процедуру по графику. Процедурой можно просто брать весь access и мерджить с зеркалом. зачем is?
нашёл
Оставить комментарий
Elen13
есть БД на access, файлдостаточно тупой - плоский
хочется его загнать в SQL Server, а потом синхронизировать, для доступа из analysis services
обновления раз в неделю, данные привязаны по времени + задним числом старые данные могут меняться (до пары месяцев)
integration services ни разу не пользовался поэтому вопросы
1) сделал проект, определил control flow из одного пункта, сделал data flow
как определить график запуска приложения? навскидку рецептов и примеров найти не удалось, почти всё top of search сконцентрирована на построении ETL модели
2) база не особо большая, но всё равно не хотелось бы заново подгружать только новые строки, и обновившиеся, поменять процесс ведения БД в Access не получится, поэтому хотелось бы автоматического определения дельты
в крайнем случае устроит удаление "хвоста" в последние пару месяцем, и импорт такого же "хвоста" из access
как это сделать?
с хвостом думаю сделать через контрол lookup nomatch output, в качестве референса взять все существующие даты из таблицы минус 2 месяца
как перед импортом данных вычистить от "старых" данных базу? это делается в самом MS SQL, или это из integration services можно сделать?