powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
26 сообщений из 26, показаны все 2 страниц
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39663794
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?

То есть каждую неделю в папку падает файл данных, у которого есть переменная часть - номер недели года. Как это обрабатывать?
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39663796
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

In this lesson, you will modify the simple ETL package created in Lesson 1 to take advantage of the Foreach Loop container. You will also set user-defined package variables to enable the tutorial package to iterate through all the flat files in the folder.
https://docs.microsoft.com/en-us/sql/integration-services/lesson-2-adding-looping-with-ssis?view=sql-server-2017
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39663804
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mind,

Спасибо огромное!
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39664350
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так... доехали до переменной в соединении...

В общем так:
18409133
автор Проблему случайно раскрыл.
Но в примере микрософта об это ни слова.
Соединение при создании является объектом проекта и это происходит по умолчанию.
В проекте может быть несколько пакетов и соединение проекта может использоваться в любом пакете.
Переменные создаются только в пакете и видны только внутри пакета, но не вне.
Соединение как объект проекта видит только параметры проекта, что и наблюдалось.
Поэтому соединение проекта не будет видеть переменные пакетов.
У соединения проекта в контектном меню есть такая команда: Перестроить в соединение пакета.
После этой команды в построителе выражений появляется узел Переменные и параметры уже не пустой.
В документации мне это не попадалось.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39664374
Glebanski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

Попробуйте File watcher task
http://www.sqlis.com/post/file-watcher-task.aspx
Я его юзал в одном проекте, вроде норм. работает.
У него есть OutputVariableName: The name of the variable into which the full file path found will be written on completion of the task.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39664573
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glebanski,

Спасибо, позже посмотрю. Пока стандартное решение устраивает.

У меня сейчас другая проблема возникла.
Надо в пакет засунуть команды распаковки pgp-файлов, их объединение и распаковка получившегося архива.

При этом ещё надо использовать конкретные утилиты - gpg, tar и gz.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39664577
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

есть еще вариант - сделать контейнер цикла по файлам.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39664590
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DaniilSeryiТак... доехали до переменной в соединении...

Так это не проблема. Есть минимум два способа решения.
1. Делаете Conn Manager уровня пакета (можете клонировать проектный) и там пользуетесь выражениями с переменными пакета.
2. Делаете параметр проекта. Далее - в expression Conn Manager используете данный параметр. При запуске пакета - указываете значение параметра проекта.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39664732
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FerdipuxDaniilSeryiТак... доехали до переменной в соединении...

Так это не проблема. Есть минимум два способа решения.
1. Делаете Conn Manager уровня пакета (можете клонировать проектный) и там пользуетесь выражениями с переменными пакета.
2. Делаете параметр проекта. Далее - в expression Conn Manager используете данный параметр. При запуске пакета - указываете значение параметра проекта.

Ну да, как раз первый вариант я и задействовал.

Владислав Колосов - он и используется.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39688674
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подниму тему новым вопросом - как в SSIS выполнить набор команд для командной строки?
При условии, что этот набор команд не был заранее оформлен в виде .bat файла ?

Проблема в том, что задача «Выполнение процесса» / «Execute process» требует на вход .com, .exe. или .bat файл.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39688814
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

Создать пакетный файл. Выполнить.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39688815
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ удалить пакетный файл.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39688917
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовDaniilSeryi,

Создать пакетный файл. Выполнить.

а это при помощи какой задачи?
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39688959
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryiВладислав КолосовDaniilSeryi,

Создать пакетный файл. Выполнить.

а это при помощи какой задачи?Все три можно сделать в одной Script Task, на C#.

А если логика в оном файле прямолинейная, то возможно получится и без файла обойтись, вызывая оные команды непосредственно из шарпа.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39689002
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor TiegaelА если логика в оном файле прямолинейная, то возможно получится и без файла обойтись, вызывая оные команды непосредственно из шарпа.
А если не линейна, то не получится?
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39689187
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexEnnor TiegaelА если логика в оном файле прямолинейная, то возможно получится и без файла обойтись, вызывая оные команды непосредственно из шарпа.
А если не линейна, то не получится? Ну если там IF'ы, или pipelining, или прочее из того же рода, то придется все это имитировать на шарпе. Теоретически написать можно все, другое дело что степень корявости и объем усилий такого результата могут сильно превзойти вариант "сохранить бат-файл, выполнить, удалить".
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39689276
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryiВладислав КолосовDaniilSeryi,

Создать пакетный файл. Выполнить.

а это при помощи какой задачи?Можно сделать Data Flow task, в котором источником будет SELECT с содержимым cmd-файла, а приёмником Flat File Destination
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39693648
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как понимаю, ещё можно из ScriptTask-a создать .bat файл?

В общем, остановился на варианте с запуском нужных команд при помощи "Выполнение процесса" (не помню сейчас, как название на заграничном будет).
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39693754
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

1) присвоить нужное имя файла переменной (Script Task)
2) Взять имя файла из переменной
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39693823
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninDaniilSeryi,

1) присвоить нужное имя файла переменной (Script Task)
2) Взять имя файла из переменной

Спасибо, так и сделал. Плюс For Each Loop над этим крутится.

Теперь другая проблема - в Visual Studio 2015 в Script Task-e с DTS.Variables проблем нет, всё сделано, значения переменных читаются / присваиваются, всё реализовано, проверено, внутреннее тестирование успешно пройдено, а вот в Visual Studio 2008 никак не пойму, как с DTS.Variables работать. Или там другой инструмент для работы с переменными пакета? При этом в обоих случаях все необходимые переменные в ReadOnlyVariables и ReadWriteVariables указаны.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39694696
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DaniilSeryi...

Теперь другая проблема - в Visual Studio 2015 в Script Task-e с DTS.Variables проблем нет, всё сделано, значения переменных читаются / присваиваются, всё реализовано, проверено, внутреннее тестирование успешно пройдено, а вот в Visual Studio 2008 никак не пойму, как с DTS.Variables работать. Или там другой инструмент для работы с переменными пакета? При этом в обоих случаях все необходимые переменные в ReadOnlyVariables и ReadWriteVariables указаны.

Работа с переменными в SSIS 2008 такая же, объявляете при создании script task какие переменные нужно читать/писать и делаете это. Проекты со script task мигрировали с SSIS 2008 на 2014 без переписывания оных.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39704279
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новая проблема образовалась: число файлов, подлежащих загрузке, достигает нескольких десятков. При этом объём каждого файла - несколько гигабайт и несколько десятков миллионов строк. Как можно ускорить процесс загрузки?
Кажется, мне уже советовали грузить файл в несколько потоков. То есть, первый поток грузит первые 4 миллиона строк, второй - следующие 4 миллиона, и т.д.
Правильно ли я понимаю, что для каждого потока надо будет создавать новый диспетчер подключения. При этом вся разница между этими диспетчерами будет только в диапазонах строк для загрузки?
И что будет, если число строк в файле окажется меньше, чем диапазон строк для загрузке в потоке?

Второй вопрос - можно ли аналогично ускорить выгрузку данных в текстовый файл?
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39704287
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryiНовая проблема образовалась: число файлов, подлежащих загрузке, достигает нескольких десятков. При этом объём каждого файла - несколько гигабайт и несколько десятков миллионов строк. Как можно ускорить процесс загрузки?

http://henkvandervalk.com/speeding-up-ssis-bulk-inserts-into-sql-server
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39704384
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

Благодарю.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39704510
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryiНовая проблема образовалась: число файлов, подлежащих загрузке, достигает нескольких десятков. При этом объём каждого файла - несколько гигабайт и несколько десятков миллионов строк. Как можно ускорить процесс загрузки?
Кажется, мне уже советовали грузить файл в несколько потоков. То есть, первый поток грузит первые 4 миллиона строк, второй - следующие 4 миллиона, и т.д.
Правильно ли я понимаю, что для каждого потока надо будет создавать новый диспетчер подключения. При этом вся разница между этими диспетчерами будет только в диапазонах строк для загрузки?
И что будет, если число строк в файле окажется меньше, чем диапазон строк для загрузке в потоке?Это сложно.
Проще загружать каждый файл в отдельном потоке.
...
Рейтинг: 0 / 0
Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
    #39705498
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgDaniilSeryiНовая проблема образовалась: число файлов, подлежащих загрузке, достигает нескольких десятков. При этом объём каждого файла - несколько гигабайт и несколько десятков миллионов строк. Как можно ускорить процесс загрузки?
Кажется, мне уже советовали грузить файл в несколько потоков. То есть, первый поток грузит первые 4 миллиона строк, второй - следующие 4 миллиона, и т.д.
Правильно ли я понимаю, что для каждого потока надо будет создавать новый диспетчер подключения. При этом вся разница между этими диспетчерами будет только в диапазонах строк для загрузки?
И что будет, если число строк в файле окажется меньше, чем диапазон строк для загрузке в потоке?Это сложно.
Проще загружать каждый файл в отдельном потоке.

Это несколько for_each Loop и Data_Flow в одном пакете?

Или как-то ещё?

И ещё один вопрос появился, не связанный с этой задачей. Есть файл с данными транзакций. Всё хорошо, всё замечательно, но... Как всегда но... В этот файл какие-то умники вставили строки с промежуточными итогами, и типы столбцов в строках транзакций и строках промежуточных итогов не совпадают. Как отсеять строки промежуточных итогов? А... Блин... Дошло... Сделать обработчик ошибок, чтобы строки транзакций спокойно грузились в таблицу, а при обнаружении строк промежуточных итогов они просто игнорировались или в лог запись падала.

И третий вопрос, гораздо более интересный - по поиску альтернативного решения изначальной задачи.
Есть набор текстовых файлов. В каждом файле лежат данные за одну календарную неделю, соответственно данные одного файла могут относиться как к одному, так и к двум соседним месяцам (пример - неделя с 27.08.2018 по 02.09.2018), и данные за один месяц размазаны по нескольким файлам. Как без загрузки данных на SQL Server разнести данные в новые файлы по месяцам? SQL Server доступен, но файлы лежат на другом сервере, и таскать их по сети не хочется. Заголовки данных в файлах присутствуют, даты сохранены в формате "22Jun2018".
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по SSIS - как обрабатывать в пакете ситуацию, когда часть имени файла меняется?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]