Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
AlexV1
Member

Откуда: Новосибирск
Сообщений: 613
Добрый день!
Использую MS SQL 2008 R2, T-SQL, C#.

Есть страница (S): http://www.gnivc.ru/inf_provision/classifiers_reference/kladr/
на которой отображена "Дата актуальности - 21.03.2013"

Есть файл, который надо скачать http://www.gnivc.ru/html/gnivcsoft/KLADR/BASE.7z - это заархивированный 7zip-архиватором папка с DBF-файлами.

Возможно ли написать пакет (SSIS или DTS или еще какой-то), который:
а) проверит дату актуальности на странице (S) и сравнит с той, что хранится в БД.
б) если дата более свежая, чем в БД, то скачает файл, распакует и проимпортирует DBF-файлы в базу в заранее подготовленные таблицы (структура DBF и БД известна)

Если да, то как (хоть примерно)? Пакеты ранее не создавал. Какие инструменты для разработки пакета от потребуются?
В общем буду рад любым советам.
26 мар 13, 13:45    [14096716]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
можно в ssis запускать модули на c# в Script Task.
26 мар 13, 13:58    [14096802]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Можно завести переменную дата_обновления затем в Execute SQL Task проинициализировать ее значением из базы, затем в Script Task проверить на сайте дату, скачать и разархивировать и записать полное имя файла c кладр в переменную, затем в Data flow task перекачать данные из файла Кладр в вашу таблицу.
26 мар 13, 14:03    [14096829]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
AlexV1
Member

Откуда: Новосибирск
Сообщений: 613
> Можно завести переменную дата_обновления затем в Execute SQL Task
А с чего начать разработку данного пакета. В какой среде куда лезть, чтобы осуществить задуманное?
26 мар 13, 14:19    [14096912]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
AlexV1
> Можно завести переменную дата_обновления затем в Execute SQL Task
А с чего начать разработку данного пакета. В какой среде куда лезть, чтобы осуществить задуманное?

Доустановить SSIS и использовать для разработки BIDS (business intelligent development studio ). Ну почитать еще чего нибудь или видео посмотреть, чтобы плавно войти
26 мар 13, 14:23    [14096935]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
AlexV1
> Можно завести переменную дата_обновления затем в Execute SQL Task
А с чего начать разработку данного пакета. В какой среде куда лезть, чтобы осуществить задуманное?

Учебник по службам SSIS. Создание простого ETL-пакета
26 мар 13, 14:25    [14096952]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Зайдите сюда: http://fias.nalog.ru/Public/DownloadPage.aspx Скачайте Описание "службы получения обновлений". Напишите бота, который будет ходить, получать дельту в виде XML парсить и записывать в бд уже распарсенное или скармливать в базу XML и уже на стороне бд парсить.

ЗЫ. Можно, конечно, это и через SSIS забацать при желании, но будет стрельба из пушки по воробьям.
26 мар 13, 14:30    [14096986]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
AlexV1
Member

Откуда: Новосибирск
Сообщений: 613
И еще вопрос.
Можно ли для решения данной задачи обойтись без пакета, а, скажем, написать просто ХП на T-SQL, которая сможет получить HTML-код страницы сайта, найти в нем Дату актуальности, скачать 7z-архив во временную папку, распаковать, выполнить BULK INSERT из DBF-ок в MS SQL?

На каком этапе будет проблема или в данном случае создание пакета - единственное здравое решение?
3 апр 13, 14:48    [14131374]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
AlexV1
скачать 7z-архив во временную папку, распаковать,

вот ето точно не должен делать сиквел
3 апр 13, 14:49    [14131385]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
AlexV1
Member

Откуда: Новосибирск
Сообщений: 613
А вызвать CLR-процедуру, написанную на C#, для распаковки 7z ?
3 апр 13, 14:58    [14131442]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
AlexV1
А вызвать CLR-процедуру, написанную на C#, для распаковки 7z ?

а давайте еще будем встраивать в t-sql просиду на c# которая меняет бекграунд колор в картинках которые лежат с полях в БД ? Правда ведь никто не запрещает сие делать по факту то ?
3 апр 13, 15:17    [14131581]     Ответить | Цитировать Сообщить модератору
 Re: Создать пакет в MS SQL, который выполнит ряд действий. Проконсультируйте пожалуйста.  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34998
Блог
AlexV1,

всё можно, но вам так нужны утечки памяти?
делайте через пакет
3 апр 13, 15:18    [14131583]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить