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

Откуда:
Сообщений: 598
Какой метод лучше для экпорта данных в файл (CSV к примеру): через OLE, xp_cmdshell или Agent job/SSIS.
С любых точек зрения: секьюрити, производительности, просто обслуживания и т.п.
Или есть другие более цивильные способы?
Поделитесь кто чего юзает?
25 сен 09, 04:09    [7706344]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Semen81
Member

Откуда:
Сообщений: 160
Я пользуюсь ssis. Экспортирую в Excel. Быстро и хорошо. Как раз только один из пакетов дописал.
25 сен 09, 04:50    [7706360]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
вариант из ФАКа: https://www.sql.ru/faq/faq_topic.aspx?fid=122
25 сен 09, 06:40    [7706402]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Idol_111
Member

Откуда:
Сообщений: 598
Semen81
Я пользуюсь ssis. Экспортирую в Excel. Быстро и хорошо. Как раз только один из пакетов дописал.

А вызываете как свой пакет?
25 сен 09, 06:50    [7706409]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Idol_111
Member

Откуда:
Сообщений: 598
Knyazev Alexey
вариант из ФАКа: https://www.sql.ru/faq/faq_topic.aspx?fid=122

Написано, что SSIS самый правильный вариант, а вот чем он правильнее не написано.
Мне вот, к примеру, не кажется правильным задействовать административные инструменты (SQL Agent) для работы какой-либо программы. А если этих вызовов десятки или больше, я должен под каждый создать отдельный жоб.

Такая обыденная операция, а все как-то через одно место сделано.
25 сен 09, 06:58    [7706413]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Idol_111
Knyazev Alexey
вариант из ФАКа: https://www.sql.ru/faq/faq_topic.aspx?fid=122

Написано, что SSIS самый правильный вариант, а вот чем он правильнее не написано.
Мне вот, к примеру, не кажется правильным задействовать административные инструменты (SQL Agent) для работы какой-либо программы. А если этих вызовов десятки или больше, я должен под каждый создать отдельный жоб.

Такая обыденная операция, а все как-то через одно место сделано.


Что за бред !!! SSIS пакет можно запускать не только через SQL Server Agent.
Вкуривай dtexec.
25 сен 09, 09:07    [7706570]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Idol_111
Member

Откуда:
Сообщений: 598
--__Александр__--
Idol_111
Knyazev Alexey
вариант из ФАКа: https://www.sql.ru/faq/faq_topic.aspx?fid=122

Написано, что SSIS самый правильный вариант, а вот чем он правильнее не написано.
Мне вот, к примеру, не кажется правильным задействовать административные инструменты (SQL Agent) для работы какой-либо программы. А если этих вызовов десятки или больше, я должен под каждый создать отдельный жоб.

Такая обыденная операция, а все как-то через одно место сделано.


Что за бред !!! SSIS пакет можно запускать не только через SQL Server Agent.
Вкуривай dtexec.

Очень хочется посмотреть как это вы делаете.
Будьте добры обрисуйте в двух словах.
25 сен 09, 09:40    [7706648]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Idol_111
http://msdn.microsoft.com/ru-ru/library/ms162810.aspx

Я поражаюсь вашей лени. Забить в гугл dtexec религия не позволяет ?
25 сен 09, 09:45    [7706669]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
--__Александр__--
SSIS пакет можно запускать не только через SQL Server Agent.
Вкуривай dtexec.
Поэтому xp_cmdshell лучше Agent job/SSIS.

Idol_111
Какой метод лучше для экпорта данных в файл (CSV к примеру): через OLE, xp_cmdshell или Agent job/SSIS.
А что лучше для вскапывания - лопата/сапа/трактор или колхоз? Для простенького экспорта целый колхоз?

Надо привести реальные показатели "скорости" хотяб и грабли каждого варианта.
25 сен 09, 10:06    [7706748]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
А BCP уже не в моде?
25 сен 09, 10:43    [7706930]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31175
Idol_111
Какой метод лучше для экпорта данных в файл (CSV к примеру): через OLE, xp_cmdshell или Agent job/SSIS.
С любых точек зрения: секьюрити, производительности, просто обслуживания и т.п.
Или есть другие более цивильные способы?
Поделитесь кто чего юзает?
Вы опишите, как вам нужно делать экспорт: по расписанию, из программного кода на T-SQL, из программного кода клиентского приложения. Ещё - какой размер файлов, какая структура, нужно ли делать какое-то преобразование файлов.

Для каждой из этих задач есть оптимальные способы решения.

Использовать SSIS просто для запуска bcp - абсурд. Просто лишний слой, который придётся потом обслуживать, поддерживать и т.д.
25 сен 09, 10:45    [7706939]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Idol_111
Member

Откуда:
Сообщений: 598
Ребята все спасибо за ответы, советы и мнения.
Мне казалось, что вопрос вполне ясно изложен. Перефразируя - это обмен мнениями кто чего использует, чтобы понять а все ли я знаю, ничего ли не упустил.

Конечно, я в курсе как использовать dtexec и согласен, что существуют случаи где он просто не заменим. Можно даже и OLE объекты туда еще прикрутить, ну чтобы следующему админу было не скучно работать :).

Попробую изложить свою точку зрения, а вы меня поправите, где посчитаете нужным.
Абсолютно согласен, что каждый случай надо рассматривать отдельно и есть много нюансов. Однако существуют и общие моменты.
Безопасность: все говорят, что xp и ole надо отключать из-за безопасности. однако если использовать связку SP-(xp or ole), установить разрешение на использование xp/ole только одному логину, то я не вижу большой опастности. плюс в 2008 прикрутили прокси аккаунт к xp.
Но все же считается, что самый безопасный способ это job-ssis.
Также в xp надо светить логин/пароль, в ole нет.

Производительность: xp-bcp выглядит самым привлекательным. просто и со вкусом.

Обслуживание: вариант с agent представляется самым муторным.

Под конец хотел бы предложить разобрать один случай.
Приходит ко мне разработчик и говорит: могу сделать экспорт как хочешь: из программы, с помощью xp или ole или ssis. Как лучше для сервера так и сделаем. 2-4 разных экспорта по 2-10 раз в день пользователями. Преобразований не нужно. На сервере находится еще с пару десятков баз и xp и ole не активированы.
Ваше решение?
25 сен 09, 13:46    [7708174]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Преобразований не нужно - и BCP опять игнорируем?

Ага, SSIS уже установлен и администрируется на боевом?
Нда, есть колхоз, лопаты и сапы нет - и что выбрать?

У нас есть на SSIS, частично, счас прикрываем это убогое наследие. Административные проблемы (доступ-безопасность, настройка, трассировка ...) просто невыносимые, не стоит оно целого колхоза.
Хотя можно набыдлокодить на ровном месте, тогда пофигу что на чём.
28 сен 09, 09:21    [7713751]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Idol_111
Member

Откуда:
Сообщений: 598
Mnior,
Я правильно понял, что вы не очень жалуете нагромождение из SSIS пакетов?

И ваше решение для моего примера было бы: включить xp на сервере и юзать bcp.
28 сен 09, 10:41    [7714149]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Idol_111

Под конец хотел бы предложить разобрать один случай.
Приходит ко мне разработчик и говорит: могу сделать экспорт как хочешь: из программы, с помощью xp или ole или ssis. Как лучше для сервера так и сделаем. 2-4 разных экспорта по 2-10 раз в день пользователями. Преобразований не нужно. На сервере находится еще с пару десятков баз и xp и ole не активированы.
Ваше решение?

Ну так вы определитесь с идеалогией вашего экспорта
Толи у вас пользователь инициирует экспорт, толи сервер
Толи формат файла динамический, толи постоянный
28 сен 09, 10:47    [7714186]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
Mnior
--__Александр__--
SSIS пакет можно запускать не только через SQL Server Agent.
Вкуривай dtexec.
Поэтому xp_cmdshell лучше Agent job/SSIS.


Лучше не лучше, а в некоторых конторах xp_cmdshell задизейблен... из соображений безопасности.

SSIS, кстати, можно использовать далеко не только для того, чтобы обернуть им bcp...
28 сен 09, 12:28    [7714793]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
Idol_111
--__Александр__--
Idol_111

Такая обыденная операция, а все как-то через одно место сделано.


Что за бред !!! SSIS пакет можно запускать не только через SQL Server Agent.
Вкуривай dtexec.

Очень хочется посмотреть как это вы делаете.
Будьте добры обрисуйте в двух словах.


Делаете деплоймент пакета в file system.

Затем: Start->Run->cmd

в командной строке: dtexec /F "path\Package.dtsx"

(еще полезно запустить dtexec /H для просвещения)
28 сен 09, 12:31    [7714804]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Idol_111
И ваше решение для моего примера было бы: включить xp на сервере и юзать bcp.
Уточню, xp_cmdshell/OLE у нас и так было включено, решение за вами.
Более того, у нас ещё DBF-ки им(экс)портируются, а т.к. DBF провайдер это слабое место (есть косяки + на 64 платформе нету), мы юзаем свой собственный конвертер (в XML). Благо его проще сделать/поддерживать чем провайдер. Т.е. опять, между граблями или трактором, мы выбрали первое .
28 сен 09, 12:32    [7714811]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Ах да, не обязательно включать xp_cmdshell, моно и через Agent job.

Кудряшка
Mnior
--__Александр__--
SSIS пакет можно запускать не только через SQL Server Agent.
Вкуривай dtexec.
Поэтому xp_cmdshell лучше Agent job/SSIS.
Лучше не лучше, а в некоторых конторах xp_cmdshell задизейблен... из соображений безопасности.

SSIS, кстати, можно использовать далеко не только для того, чтобы обернуть им bcp...

Шутку не вкурили.
Если уже юзается SSIS (т.е. инфраструктура налажена) мои аргументы не канают.

SET Rusty_Logic ON;
28 сен 09, 12:45    [7714882]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
Mnior,

У меня есть ощущение, что мы обе не вкурили...
28 сен 09, 12:52    [7714918]     Ответить | Цитировать Сообщить модератору
 Re: экспорт данных в файл, какой метод лучше?  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
Mnior

Шутку не вкурили.


Мнэээ...
Прочитала еще раз и поняла, что пойду ка я спать уже...
28 сен 09, 13:05    [7714984]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить