Ответ 1
Вот пример пакета, созданного с использованием SSIS 2008 R2, который объясняет, как импортировать плоский файл в таблицу базы данных.
- Создайте плоский файл фиксированной ширины с именем
Fixed_Width_File.txt
с данными, как показано на скриншоте. Снимок экрана использует Notepad ++ для отображения содержимого файла. Он имеет возможность показывать специальные символы, такие как возврат каретки и подача строки.CR LF
обозначает разделители строк Возврат каретки и Линейный канал.
-
В базе данных SQL Server создайте таблицу с именем
dbo.FlatFile
с помощью create script, предоставленной в разделе SQL Scripts. -
Создайте новый пакет SSIS и добавьте новый диспетчер соединений OLE DB, который будет подключаться к базе данных SQL Server. Предположим, что диспетчер соединений OLE DB назван SQLServer.
- На вкладке потока управления пакетами поместите задачу потока данных.
-
Дважды щелкните задачу потока данных, и вы перейдете на вкладку потока данных. На вкладке потока данных разместите файл с плоским файлом. Дважды щелкните файл с плоским файлом и появится редактор исходного файла Flat. Нажмите кнопку "Создать", чтобы открыть редактор диспетчера подключений плоских файлов.
-
В разделе "Общие" редактора исходного файла плоского файла введите значение в имени диспетчера подключений (например, "Источник" ) и перейдите к местоположению плоского файла и выберите файл. В этом примере используется образец файла в пути
C:\temp\Fixed_Width_File.txt
Если у вас есть строки заголовков в вашем файле, вы можете ввести значение 1 в строках заголовка, чтобы пропустить текстовое поле, чтобы пропустить строку заголовка.
- Нажмите на раздел "Столбцы" . Измените шрифт в соответствии с вашим выбором. Я выбрал Courier New, чтобы я мог видеть больше данных с меньшей прокруткой. Введите значение
69
в текстовое поле ширины строки. Это значение представляет собой сумму ширины всех столбцов + 2 для разделителя строк. После того, как вы установили правильную ширину строки, вы должны правильно увидеть данные файла фиксированной ширины в разделе столбцов исходных данных. Теперь вы должны щелкнуть по соответствующим местоположениям, чтобы определить пределы столбцов. Обратите внимание на разделы 4, 5, 6 и снимок экрана ниже.
- Нажмите "Дополнительно". Вы увидите пять столбцов, созданных для вас, автоматически на основе ограничений столбца, которые мы установили в разделе "Столбцы" на предыдущем шаге. Пятый столбец предназначен для разделителя строк.
- Переименуйте имена столбцов как
FirstName
,LastName
,Id
,Date
иRowDelimiter
- По умолчанию столбцы будут установлены с строкой DataType [DT_STR]. Если мы достаточно уверены, что определенный столбец будет иметь другой тип данных, мы можем его настроить в разделе "Дополнительно". Мы будем менять столбец
Id
типа данныхfour-byte signed integer [DT_I4]
и столбца Date для типа данныхdate [DT_DATE]
- Нажмите на раздел предварительного просмотра. Данные будут отображаться в соответствии с конфигурацией столбца.
- Нажмите "ОК" в редакторе диспетчера соединений с плоскими файлами, а плоское соединение с файлом будет назначено на "Плоский файл" в задаче потока данных.
- В редакторе исходных файлов с плоским файлом щелкните раздел "Столбцы" . Вы увидите столбцы, которые были настроены в диспетчере соединений с плоскими файлами. Снимите флажок
RowDelimiter
, потому что нам это не понадобится.
<Т411 >
- В задаче потока данных поместите
OLE DB Destination
. Подключите выход из файла Flat file к назначению OLE DB.
- В редакторе назначения OLE DB выберите диспетчер соединений OLE DB с именем
SQLServer
и установите для имени таблицы или раскрывающегося списка значение[dbo].[FlatFile]
- В редакторе назначения OLE DB щелкните раздел "Сопоставления". Поскольку имена столбцов в диспетчере соединений с плоскими файлами совпадают с столбцами в базе данных, сопоставление происходит автоматически. Если имена разные, вам необходимо вручную сопоставить столбцы. Нажмите "ОК".
- Теперь пакет готов. Выполните пакет для загрузки плоских файлов фиксированной ширины в базу данных.
- Если вы запросите таблицу dbo.FlatFile в базе данных, вы увидите данные плоского файла, импортированные в базу данных.
Этот образец должен дать вам представление о том, как импортировать плоский файл фиксированной ширины в базу данных. Он не объясняет, как обрабатывать ведение журнала ошибок, но это должно помочь вам начать работу и помочь вам обнаружить другие связанные с SSIS функции при игре с пакетами.
Надеюсь, что это поможет.
SQL Scripts
CREATE TABLE [dbo].[FlatFile](
[Id] [int] NOT NULL,
[FirstName] [varchar](25) NOT NULL,
[LastName] [varchar](25) NOT NULL,
[Date] [datetime] NOT NULL
)