Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: SSIS не видит файл в сетепой папке

Всем привет.
Есть SSIS пакет, который должен искать csv файлы в сетевой папке. Выполняю локально свой пакет - все находит. Деплою пакет на сервер, дал права на чтение/запись к сетевой папке логину, под которым службы SQL Server, SQL Server Agent. В Managnet Studio ищу свой пакет, п.к.м. -> Execute. По логам вижу, что файл не находится (The For Each File enumerator did not find any files that matched the file pattern, or the specified directory was empty). Помогите, пожалуйста!
Ответ:
Bosyak
Все адреса в пакете прописаны в UNC формате. (\\Server\SharedFolder\Folder\)

А имя сервера указано полное? У меня было такое. Формируешь пакет - хватает имя сервера, и все работает, а при исполнении пакета требует полное имя сервера: \\Сервер.домен\....
Вопрос: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)

Всем здравствуйте!
Имеется большой объем записей (более 100 млн.) в одной таблице, которые нужно выгрузить в xlsx файлы по категориям, при этом в одном xlsx файле должны быть строки только одной категории.
Т.е. на выходе что-то в этом роде:
Файл Содержимое
категория1_01.xlsx 1 млн. записей
категория1_02.xlsx 1 млн. записей
категория1_03.xlsx 1 млн. записей
категория1_04.xlsx 0.2 млн. записей
категория2_01.xlsx 1 млн. записей
категория2_02.xlsx 0.8 млн. записей
категория3_01.xlsx 0.1 млн. записей
категория4_01.xlsx 0.02 млн. записей
...

Пока есть мысль создать поле в таблице, которое заполнить требуемым именем файла, через T-SQL прописать чтобы одно имя файла было не более чем в 1 млн строк, а потом циклом через SSIS выгрузить xlsx файлы.
Сомнения:
1) усложнение через доп T-SQL процедуры
2) SSIS может начать выдавать не очень хорошие файлы на масштабах, близких к максимальному размеру по количеству строк. Типа файлы будут выдаваться как corrupted

Есть другая идея:
1) выгрузить каждую категорию в свой csv файл, те из них, что больше 1 млн. строк, нарубить при помощи FileSplitter на файлы с нужным количеством строк
2) сделать макрос на VBA в Excel, который пересохранить csv в xlsx файлы.

Так вот, может есть в SSIS какой-то готовый подход по порционной выгрузке больших таблиц на диск?
Ответ: Это классический цирк с вишенкой на торте.
Вопрос: БД с общим доступом на сетевой папке

Добрый день!
Хочу сделать Базу данных в Аксесе и поместить ее на сетевую папку для общего пользования.

Если например создать Экселевский файл и поместить его на сетевую папку,то если кто-нибудь его откроет и будет в нем сидеть,то другой пользователь не сможет зайти и ввести данные.Т.к. будет написано:" извините,занято".

В аксессе же тоже самое будет.
Как это можно обойти?
Ответ:
Сообщение от Uchimata
Если например создать Экселевский файл и поместить его на сетевую папку,то если кто-нибудь его откроет и будет в нем сидеть,то другой пользователь не сможет зайти и ввести данные.Т.к. будет написано:" извините,занято".
если надо, то можно настроить, чтобы работали одновременно несколько пользователей.
Вопрос: SSIS: Получить атрибуты файла

Здравствуйте.
Прошу помощи в реализации задачи для SSIS:
из переменной пакета Variable1 (string) берётся полный путь файла, в переменную пакета Variable2 (boolean) пишется признак File In Use, в переменную Variable3 (Int64) пишется размер файла в байтах.
Очевидно, что задача решается через Script Task.

Проблема - вообще не знаю С# и VB, копипаста нагугленных решений давала невозможность выполнения кода с целой россыпью ошибок.

Использую SSDT 2016
Ответ: Trurl,

SSIS всего лишь контейнер WorkFlow с некоторыми стандартизированными блоками
он вовсе не покрывает абсолютно весь спектр возможных задач (как и любой другой инструмент)
так что остальное только скриптами и прочими кастомными блоками.

да хоть через SQL (xp_dirtree, xp_cmdshell, xp_fileexist и т.д.) можешь запросить
что там в директории происходит и в каком состоянии находится, никто ведь не запрещает.

для работы с файлами - лучше использовать для этого предназначенные инструменты, в самом
Windows есть куча утилит как GUI так и API (.bat скриптовые, .vb, .NET и пр.) для решения таких вопросов
вызвать их из SSIS - всегда было довольно просто.

кстати переименование файла на котором стоит Lock : вывалится с ошибкой,
это свойство успешно и можно использовать в SSIS для проверки
(а дальше : ошибка - одна ветвь алгоритма, ок - другая).

в общем вопрос фантазии и опыта реализации.

если отбросить завесу мутности и примитивности некоторых персонажей
то в остальном тебе дали достаточно широкий спектр потенциальных направлений решений
дальше - вопрос личных предпочтений.
Вопрос: Резервное копирование баз в сетевую папку

Доброго времени суток форумчане! Есть sql server 2012, задача настроить резервное копирование баз данных в сетевую папку.
Настраиваю стандартно: в менеджмент студии - управление -создаю план обслуживания - в нём назначаю резервное копирование. Копирование не отрабатывает, в логах справедливо выдаёт ошибку, что доступ к папке отказан, ведь MSSQLS запускает процесс копирования от учётной записи службы "агент sql server", других нет. Подскажите как быть?
Ответ:
djuwa4
Только уточнить хотел, ведь у самого сервера есть проверка целостности копии. Он её разве не перезаписывает в случае обнаружения ошибок?
Увы. Он конечно мог бы проверять записываемые блоки, и повторять их передачу и перезапись, но считается, что это должно делаться на сетевом уровне.

В общем, все архитекторы посчитали, что повтор в случае ошибки должен делаться не у них, а "где-то там" :-)
Вопрос: Восстановление базы из сетевой папки

День добрый всем знатокам sql.
Помогите пжлста с восстановлением базы.

USE [master]
RESTORE DATABASE [app_ais_polic]
FROM DISK = N'\\10.8.0.6\base\POL_2018_10_21.bak'
WITH FILE = 1,
MOVE N'registers' TO N'G:\base_mdf\app_ais_polic.mdf',
MOVE N'DB2015' TO N'H:\base_mdf\DB2015.mdf',
MOVE N'DB2016' TO N'H:\base_mdf\DB2016.mdf',
MOVE N'DB2017' TO N'H:\base_mdf\DB2017.mdf',
MOVE N'DB2018' TO N'H:\base_mdf\DB2018.mdf',
MOVE N'registers_log' TO N'H:\base_ldf\app_ais_polic_1.ldf', NOUNLOAD, STATS = 5

GO

при восстановлении пишет отказано в доступе.
Какие права и кому выдавать не знаю.
p.s. При подключении к сетевой папке просит логин и пароль.

И можно ли как то восстановить базу из сетевого диска?
Заранее благодарю за помощь.
Ответ:
Владислав Колосов
Kadraliyev,

восстановление бэкапа с сетевого ресурса намного медленнее. Предусмотрите резервный диск для локальных копий.
10Gbit-сеть делает процесс рестора не таким унылым.
Вопрос: SSIS Excel error на сетевой папке

Есть стандартный подход - расшаренная папка в сети, в ней Excel файл, с ним работают пользователи, SSIS по ночам забирает этот файл.
Настроен стандартный Excel Datasource в SSIS.
Но - если этот взять этот Excel файл и подменить его на точно такой же, но например более старый (важно - все листы, названия полей - все то же самое) то SSIS при следующей загрузке выдает что то типа: "External table is not in the expected format"
Захожу в студию, нажимаю на F5 - все выполняется нормально..В джобе же выпадает вот эта ошибка.

Connection String в Excel Connection Manager прописан вручную в Expressions..
В чем еще может быть подвох?
Кто сталкивался с таким "динамическим" Excel датасорсом? (интересует кейс именно когда файл подменяется другим)
Ответ:
Santa89
Да в принципе всё уже работает.

Проблема как я понял еще не решена.
2016-12-20 - 2016-12-16 = 4 дня
За это время можно было на коленке сделать редактор справочника, с помощью:
1. php / bootstrap / jquery - "совсем"-бесплатно
2. c# / win-forms / dxperience - "условно"-бесплатно
Но да, мы упорно продолжаем жевать кактус (использовать инструменты не по назначению) и ждать залетного "дятла", который разрушит вашу ИТ-идиллию. И вы снова прибежите спрашивать совета, как лучше употреблять кактус.
Вопрос: SSIS источник файлов

всем привет. Подскажите, как обработать файлы CSV из папки. Файлы создаются с именем, в котором содержится дата и время. Затруднение вызывает цикличное обращение к файлам с динамическим именем.

Заранее спасибо.
Ответ: это связано скорее всего с тем, куда смотрит контейнер.
Пакет постоянно пытается проверить работу (валидносрть) всех соединений и остальных элементов.
Вроде как выход редактировать пакет в "офлайн моде", меню SSIS\Work offline
Вопрос: Ошибка выполнения пакета SSIS в Job

Добрый день!

Создан пакет SSIS для загрузки файла MS Excel 2003 в MS SQL 2005.
В режиме отладки пакет работает нормально, данные из excel загружаются в таблицу.

Пакет сохранен в SSIS, как пакет SQL сервера.
Создан job, в котором происходит запуск пакета.

Командная строка в job
/SQL "\пакет" /SERVER имя /CONNECTION DestinationConnectionOLEDB;"\"Data Source=имя;Initial Catalog=WORK;Provider=SQLNCLI.1;Integrated Security=SSPI;Auto Translate=false;\"" /CONNECTION SourceConnectionExcel;"\"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\сервер\каталог\файл.xls;Extended Properties=""EXCEL 8.0;HDR=NO"";\"" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING E

в результате работы job получаю ошибку
Executed as user: Домен\пользователь . Microsoft (R) SQL Server Execute Package Utility Version 9.00.5000.00 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Option "Source=\\сервер\каталог\файл.xls;Extended" is not valid. The command line parameters are invalid. The step failed.

Подскажите что не так с параметром Extended Properties=""EXCEL 8.0;HDR=NO""
Ответ:
w76
На закладке Set values ничего не задавал. Что там можно задать?
Ну у вас же задаются какие то параметры, вот это "/CONNECTION SourceConnectionExcel" откуда берётся? Может, в Data Sources нажата галочка какая то, и там в строке значения параметра введена кавычка не туда.
w76
Только отделил дополнительными кавычками Data Source=\\сервер\каталог\файл.xls;Extended Properties=""EXCEL 8.0;HDR=NO"";\""
И она работает.
Ну понятно, если поправить ошибку в задании параметров, то будет работать :-)
Вопрос: Права на сетевую папку для резервного копирования

Создал устройство резервного копирования и пытаюсь через job сделать бекап:
BACKUP DATABASE Master TO NetBackup
Во владельцах указал того пользователя, с которого вручную успешно записываю данные в эту сетевую папку и который имеется в списке "Роли сервера - sysadmin".
Пишет:
-------------------
Не удалось определить<c/> есть ли у владельца (SAN\Alex) задания Net backup
доступ к серверу (причина: Не удалось получить сведения о пользователе или группе Windows NT "SAN\Alex"<c/>
код ошибки: 0x5. [SQLSTATE 42000] (Ошибка 15404)).,00:00:01,0,0,,,,0
-------------------
Что не так?
Ответ: max44, спасибо.