Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7   вперед  Ctrl      все
 Re: Получение данных через http протокол  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Yuri Abele
Претензии начнутся, когда через пару лет нужно будет что-то изменить, а разработчиков уже нет (скажем ушли на повышение в фирму конкурента :-) )
Так вот именно! Я к разработчикам не обращаюсь! Нет необходимости распылять задачу на большое число участников.
Сложную систему никто не будет реализовывать в БД, но элементарные несложные функции и процедуры - почему нет?
9 сен 15, 13:47    [18128103]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
ART-CODE
Member

Откуда:
Сообщений: 1095
Winnipuh
когда найдёте этих классиков поделитесь

Где-то здесь витает эта мысль:
http://rsdn.ru/article/db/goodoraapp.xml
Вообще, Том Кайт высказывался за полное и активное использование всех возможностей, предоставляемых СУБД,
в разных ситуациях, и я уже не помню, когда и где впервые прочитал. Наверно, в какой-то его книжке.
Но к тому моменту у меня уже было такое же мнение, так что принял как подтверждение правильности.

Товарищи, которые стремятся к "независимости" своего приложения от типа СУБД,
и относящиеся к ней как простому (тупому) хранилищу-складу данных - в корне не правы.
Хотя, конечно, задачи разные бывают, и если нужен тупой склад, то MS SQL и Oracle ставить - излишне.
Лучше что-то другое использовать.
9 сен 15, 13:52    [18128134]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Jovanny
Yuri Abele
причем, если необходимо произвести обращение к внегнему HTTP сервису по изменению в таблице, то можно настроить Job, который дёргает SSIS-пакет и тот уже осуществляет все "вылазки" во вне

Т.е. всё-таки Job (SQL Server), SSIS-пакет (SQL Server)

Да, и что? Это один из вариантов. Т.е. кто породит событие и какой обработчик на него как отреагирует не совсем связано с тем, какой инструмен этот самый обработчик вызовет выполняться.
Можно и с коммандной строки стартануть, можно по расписанию в шедулере операционной системы.

Jovanny
, но ни в коем случае не
Glory
Напишите программу и запускайте ее
?

Спросите автора цитируемых слов ;-)
Я могу лишь сказать, что ETL- (SSIS к примеру) пакет это тоже программа. И не суть, что возможно там нет ни строки на каком-то языке програмирования.
9 сен 15, 13:54    [18128149]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Yuri Abele
Jovanny,

Вы могли бы убедить, что упомянутое вами лучше (удобнее, дешевле, ETC) засунуть в базу, чем во внешнее решение/посредник?


Я не Jovanny, но могу сказать, в частности:

бывает удобнее сделать минимум внешних компонент, чтобы юзер даже не знал что там и как работает.
Причина: когда юзер далек от того, что такое база, что такое сервер и т.д. и когда у него даже если есть админы, то они далеки от sql server.
А так бывает.
9 сен 15, 13:59    [18128177]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
ART-CODE
Winnipuh
когда найдёте этих классиков поделитесь

Где-то здесь витает эта мысль:
http://rsdn.ru/article/db/goodoraapp.xml
Вообще, Том Кайт высказывался за полное и активное использование всех возможностей, предоставляемых СУБД,
в разных ситуациях, и я уже не помню, когда и где впервые прочитал. Наверно, в какой-то его книжке.
Но к тому моменту у меня уже было такое же мнение, так что принял как подтверждение правильности.

Товарищи, которые стремятся к "независимости" своего приложения от типа СУБД,
и относящиеся к ней как простому (тупому) хранилищу-складу данных - в корне не правы.
Хотя, конечно, задачи разные бывают, и если нужен тупой склад, то MS SQL и Oracle ставить - излишне.
Лучше что-то другое использовать.


Это бесспорно, но это немножко другое, чем было сказано до того ;-)
9 сен 15, 14:00    [18128180]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Jovanny
Yuri Abele
Претензии начнутся, когда через пару лет нужно будет что-то изменить, а разработчиков уже нет (скажем ушли на повышение в фирму конкурента :-) )
Так вот именно! Я к разработчикам не обращаюсь! Нет необходимости распылять задачу на большое число участников.

Под разработчиком я имел в виду Вас ;-)

Jovanny
Сложную систему никто не будет реализовывать в БД, но элементарные несложные функции и процедуры - почему нет?

Речь не о сложности, а об обстрагировании и отделении слоев логики друг от друга.
Можно слепить сложную на 20 экранов SP, которая производит многошашовую трансформацию данных в рамках одой и той же RDBMS - и это нормально, хотя я лично в тако случае, если производительности позволяет, то я бы вынес это в отдельный ETL - вопрос наглядности и быстроты понимания прикладной (business) логики.

А вот простенькая, в полэкрана, процедура, которая создает экземпляры COM объектов и через них тянет что-то из интернета - это работает, но это IMHO не правильно.
9 сен 15, 14:01    [18128189]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Yuri Abele,
автор
3. Посредник/интегратор - SSIS к примеру, хотя мне лично намного больше PDI нравится (в отдельной ветке могу эти оба продукта сравнить)



да, было бы интересно.
9 сен 15, 14:01    [18128190]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
ART-CODE
Member

Откуда:
Сообщений: 1095
Winnipuh,
значит я не так понял, извините.
9 сен 15, 14:01    [18128191]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Winnipuh
А так бывает.

Бывает всякое, я как-то давно выдел программу, где была inline вставка прекомпилированных машинных кодов - "чтобы не раскрывать knowhow суперважного алгоритма".
Да, бывает, но речь не об извара исключениях, а об надежной и максимально простой архитектуре.

P.S. вообще это одна из тех Holly Wars, которая никогда не закончится: "Где правильней размещать ETL логику - максимально запихивать в RDBMS или выносить в ETL"
Я лично лет 15-20 назад был в пользу первого варианта, а чем дальше и больше шишек, тем однозначно в пользу второго.
9 сен 15, 14:10    [18128247]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Yuri Abele
Претензии начнутся, когда через пару лет нужно будет что-то изменить, а разработчиков уже нет (скажем ушли на повышение в фирму конкурента :-) )

Yuri Abele
Под разработчиком я имел в виду Вас ;-)

Так а в чём проблема? В чём отличие ухода веб-разработчика от ухода БД-разработчика?
Нужно что-то поменять - новый разработчик внесёт изменения в код.
В чём сложность?
9 сен 15, 14:15    [18128277]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
И вообще:
Тема топика - Получение данных через http протокол.
Подтекст топика - можно ли обращаться к внешним ресурсам в рамках SQL Server.

Варианты ответов:
1 - Напишите программу и запускайте ее (внешнее решение).
2 - Используйте SSIS или CLR (решение внутри SQL Server).

Как-то так.
9 сен 15, 14:20    [18128297]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Jovanny,

Вы только без обид, я же не говорю, что Вы плохой разработчик, совсем наоборот.
Я просто про корректную архитектуру с абстрагированием избеганием cross dependencies.
Всему свое место. По моему крепкому мнению место HTTP Request-ов вне RDBMS
9 сен 15, 14:22    [18128311]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Jovanny
И вообще:
Тема топика - Получение данных через http протокол.
Подтекст топика - можно ли обращаться к внешним ресурсам в рамках SQL Server.

Варианты ответов:
1 - Напишите программу и запускайте ее (внешнее решение).
2 - Используйте SSIS или CLR (решение внутри SQL Server).

Как-то так.

3 - использование в SP COM компонентов

А SSIS и есть внешнее решение
9 сен 15, 14:24    [18128324]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Yuri Abele,

Да, про COM я как-то забыл, так как не использую его.
9 сен 15, 14:30    [18128371]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Winnipuh
Yuri Abele,
автор
3. Посредник/интегратор - SSIS к примеру, хотя мне лично намного больше PDI нравится (в отдельной ветке могу эти оба продукта сравнить)



да, было бы интересно.

https://www.sql.ru/forum/1174609/sravnenie-microsoft-ssis-i-penatho-kettle-pdi
Только по-моему скоро переедит в другое место
9 сен 15, 16:57    [18129370]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Yuri Abele
Winnipuh
Yuri Abele,
пропущено...



да, было бы интересно.

https://www.sql.ru/forum/1174609/sravnenie-microsoft-ssis-i-penatho-kettle-pdi
Только по-моему скоро переедит в другое место


я там спросил пару вопросов ;-)
9 сен 15, 17:41    [18129586]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Трость
Guest
У меня получилось вот что:

declare @url nvarchar(3890)
set @url = 'https://http.Testttt.com:8001/send1.rar'


SET NOCOUNT ON
DECLARE @xml int, @hr int


--EXEC @hr = master.dbo.sp_OACreate 'Microsoft.XMLHTTP', @xml OUTPUT
EXEC @hr = master.dbo.sp_OACreate 'MSXML2.XMLHTTP', @xml OUTPUT
--EXEC @hr = master.dbo.sp_OACreate 'IXMLHTTPRequest', @xml OUTPUT

-- ну тут еще всякая ерунда
EXEC @hr = master.dbo.sp_OAMethod @xml, 'Open', NULL, 'GET', @url, 0
EXEC @hr = master.dbo.sp_OAMethod @xml, 'Send', NULL

-- Можно посмотреть размер и тип файла
EXEC @hr = master.dbo.sp_OAMethod @xml, 'getResponseHeader', null, 'Content-Length'
EXEC @hr = master.dbo.sp_OAMethod @xml, 'getResponseHeader', null, 'Content-Type'

--EXEC @hr = master.dbo.sp_OAMethod @xml, 'SendoADOStream.Mode', null, 0
 
-- вставляю в имеющуюся таблицу результат
DELETE FROM [test]
insert [test] ([txt]) EXECUTE master.dbo.sp_OAGetProperty @xml, 'responsebody'
--insert [test] ([txt]) EXECUTE master.dbo.sp_OAGetProperty @xml, 'responseStream'


-- убиваем
EXEC @hr = master.dbo.sp_OADestroy @xml


Если файл маленький, то отрабатывает на отлично, если большой (у меня чуть более 6 мегабайт), то responsebody = null,
хотя Content-Length показывает правильный размер файла

Помогите разобраться
9 сен 15, 18:30    [18129726]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Winnipuh
я там спросил пару вопросов ;-)

А я ответил :-)
10 сен 15, 08:39    [18130933]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Трость
Guest
Yuri Abele
Winnipuh
я там спросил пару вопросов ;-)

А я ответил :-)


Касаемо моего последнего вопроса я не нашёл ответа.
10 сен 15, 09:26    [18131058]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Трость
Касаемо моего последнего вопроса я не нашёл ответа.

Я наверное проглядел. Повторите его пожалуйста там:
https://www.sql.ru/forum/1174609/sravnenie-microsoft-ssis-i-penatho-kettle-pdi
10 сен 15, 09:31    [18131075]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Трость
Guest
Yuri Abele,

Я смотрел данный топик,
но там про сравнение SSIS и PDI.

Помогите разобраться, если знаете ответ на мой вопрос по поводу свойства "responsebody".

Я предполагаю - это из-за ограничения на ответ в 8000 байт. Если оно так, то есть способ обойти данное ограничение используя T-SQL (+sp_OACreate или что-то подобное)?
10 сен 15, 09:41    [18131119]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Glory
Member

Откуда:
Сообщений: 104751
Трость
Помогите разобраться, если знаете ответ на мой вопрос по поводу свойства "responsebody".

Возьмите уже готовый скрипт и сравните со своим.

Трость
Я предполагаю - это из-за ограничения на ответ в 8000 байт.

И откуда вы узнали про такое "ограничение" ?
10 сен 15, 09:44    [18131135]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Трость
Я смотрел данный топик,
но там про сравнение SSIS и PDI.

Помогите разобраться, если знаете ответ на мой вопрос по поводу свойства "responsebody".

Не, тут я не помогу. Ведь я тот böse, кто против таких решений :-)
10 сен 15, 09:49    [18131155]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Трость
Guest
Glory
Трость
Помогите разобраться, если знаете ответ на мой вопрос по поводу свойства "responsebody".

Возьмите уже готовый скрипт и сравните со своим.

Трость
Я предполагаю - это из-за ограничения на ответ в 8000 байт.

И откуда вы узнали про такое "ограничение" ?


Спасибо,
я пишу после того, как на форуме перерыл кучу топиков с множеством примеров, но ответа не нашёл.

Glory помогите плж разобраться с данным вопросом
10 сен 15, 10:07    [18131284]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных через http протокол  [new]
Glory
Member

Откуда:
Сообщений: 104751
Трость
я пишу после того, как на форуме перерыл кучу топиков с множеством примеров, но ответа не нашёл.

Какой ответ вам нужен для чужого _работающего_ примера ?
10 сен 15, 10:08    [18131292]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить