Пригодность SSIS - PullRequest
       1

Пригодность SSIS

0 голосов
/ 08 июля 2010

Я пытаюсь создать пакет служб SSIS для импорта некоторых файлов наборов данных, однако, учитывая, что мне кажется, что я попал в тупик

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

пытаюсь достичь, и если вы, хорошие люди, можете посоветовать, является ли SSIS подходом для этого, я бы

ценю это.

Это мои вопросы с утра: -

отладка пакетов служб SSIS - debug.writeline

Изменение переменных SSIS dts

Я пытаюсь сделать так, чтобы контейнер For..Each перечислял файлы в общем ресурсе на SQL Server. За каждый

файл, в котором находится сценарий, запускаемый для проверки различных атрибутов имени файла, например, поиск трех букв

код, дата в CCYYMM, название содержащихся в них данных и, возможно, некоторые комментарии. Например: -

ABC_201007_SalesData_ [необязательный комментарий здесь] .csv

Я хочу разобрать имя с помощью регулярного выражения и поставить значения ' ABC ', ' 201007 ' и

' SalesData ' в переменных.

Затем я хочу переместить файл в папку с ошибкой, если она не соответствует определенным критериям: -

  • Трехзначный код
  • Шесть символов даты
  • Имя набора данных (например, SalesData, в этом примере)
  • CSV расширение

Затем я хочу найти код символа, дату (или ее часть) и имя набора данных по таблице поиска

чтобы пометить «контрольный список» полученных файлов от каждого клиента.

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

Так, например, у меня может быть таблица «Контрольный список» со следующими столбцами: -

Client code       Dataset          SSIS_Package
    ABC           SalesData        NorthSalesData.dtsx
    DEF           SalesData        SouthSalesData.dtsx

Если у кого-то есть лучший способ добиться этого, мне будет интересно услышать об этом.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 12 июля 2010

Это интересный сценарий, и он должен быть относительно легким в обращении.

Во-первых, ваш выбор цикла по каждому элементу является хорошим.Вы будете использовать перечислитель файлов Foreach.Вы можете ограничить файлы, которые вы перебираете, только CSV, чтобы вам не пришлось «фильтровать» их позже.

Перечислитель файлов Foreach помещает имя файла (полный путь или просто имя файла) впеременная - давайте назовем это «FileName».Есть (по крайней мере) два способа разобрать это - выражения или задача скрипта.Зависит от того, какой из них вам удобнее.В любом случае вам нужно создать три переменные для хранения «частей» имени файла - я назову их «FileCode», «FileDate» и «FileDataset».

Чтобы сделать это с помощью выраженийнеобходимо установить для свойства EvaluateAsExpression в FileCode, FileDate и FileDataset значение true.Затем в выражениях вам нужно использовать FINDSTRING и SUBSTRING , чтобы разделить FileName по своему усмотрению.У выражений нет возможности Regex.

Чтобы сделать это в задаче сценария, передайте переменную FileName в качестве переменной ReadOnly, а остальные три - в качестве ReadWrite.Вы можете использовать возможности Regex .Net или просто вручную использовать IndexOf и Подстрока , чтобы получить то, что вам нужно.

2 голосов
/ 08 июля 2010

К сожалению, вы только что пропустили живую встречу SQLLunch в цикле ForEach: http://www.bidn.com/blogs/BradSchacht/ssis/812/sql-lunch-tomorrow

Однако они записывают сессию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...