Докато използваме потока от SSIS данни, можем да изпълняваме ETL задача, която може да се използва за миграция на данни, разтоварване на данни, проектиране и внедряване на хранилището за данни.
В тази статия обяснявам как да експортирате данни от SQL таблица в excel и текстов файл с помощта на задачата за поток от данни SSIS.
В тази демонстрация ще изпълня следните стъпки:
1. Създайте SSIS пакет и създайте ADO.NET мениджър на връзки.
2. Създайте задача за поток от данни, която има ADO.NET източник за попълване на данни от SQL Server. Данните ще бъдат записани във файл на excel и текстов файл, следователно конфигурирайте дестинацията за плосък файл и дестинацията на excel.
3. Изпълнете пакета SSIS и проверете дали данните са записани в excel и текстови файлове.
Създайте SSIS пакет и ADO.NET връзка
За тази демонстрация използвах инструменти за данни на SQL Server 2015. Първо, създавам нов проект за услуга за интеграция, наречен „Експортиране на SQL данни ”:
След създаването на SSIS проект ще създам задачата за поток от данни. Задачата за поток от данни ще използва SQL Server като източник. Excel файл и плоският файл ще бъдат определени като дестинация. Преди да създадем задачата за поток от данни, трябва да създадем ADO.NET връзката .
Конфигуриране на ADO.NET връзка
Както споменах по-горе, ще използвам „WideWorldImportors ” демо база данни, която може да бъде изтеглена от тук.
За да създадете „Източник ”, щракнете с десния бутон върху „Диспечери на връзки ” и изберете „Нова ADO.NET връзка ” както е показано на изображението по-долу:
Диалогов прозорец „Конфигуриране на ADO.NET Connection Manager " ще отвори. В диалоговия прозорец щракнете върху „Нов ” както е показано на следното изображение:
Диалогов прозорец „Диспечер на връзки " ще отвори. Ще конфигурирам параметрите за SQL свързаност:
1. Име на сървъра – е името на хоста или IP адреса на сървъра на базата данни, където е инсталиран SQL.
2. Удостоверяване – е „тип удостоверяване“, използван за свързване на сървър, който е избран на „Име на сървър ” падащо поле. Това може да бъде или SQL удостоверяване, или удостоверяване на Windows.
3. Име на базата данни – е името на базата данни, която ще използваме за извличане на данни.
В тази демонстрация ще използвам моята локална VM. Ще използвам удостоверяване на Windows за свързване на SQL екземпляр и ще използвам „WideWorldImportors ” база данни.
Вижте следното изображение:
Кликнете върху „Тест на връзката ”, за да проверите успешното свързване. Вижте следното изображение:
След като SQL връзката е конфигурирана, ще можете да видите връзката в „Мениджъри на връзки ” прозорец. Той се намира в долната част на прозореца на контролния поток, както е показано на следното изображение:
Създаване на задача за поток от данни
Задачата за поток от данни се използва за преместване на данни между източници и местоназначение. Може да се използва за изпълнение на ETL (извличане, трансформиране и зареждане) задачи. Ще експортирам данни от SQL Server в Excel или текстов файл, следователно ще използваме задачата за поток от данни.
За да конфигурирам задачата за поток от данни, първо ще плъзгам и пускам задачата за поток от данни в прозореца на контролния поток и ще я преименувам на „Експортиране на данни за продажби в Excel ” както е показано на изображението по-долу:
Конфигуриране на ADO.NET източник
За да попълним данни от таблицата на SQL Server, трябва да конфигурираме изходния компонент на ADO.Net. Щракнете двукратно върху „Задача за поток от данни " да направя това. Прозорецът „Конфигуриране на задача за поток от данни " ще отвори. Като алтернатива можете да изберете „Поток на данни ”, който се намира до „Контролен поток “. Тъй като вече конфигурирахме SQL връзка, ще плъзгаме и пускаме ADO.NET Source в прозореца на потока от данни, както е показано на изображението по-долу:
Сега ще конфигурираме ADO.NET Source, за да извличаме данни от таблицата чрез запитване на таблица на SQL Server. За да направите това, щракнете двукратно върху „ADO Net source “. Ще се отвори диалогов прозорец. В диалоговия прозорец трябва да конфигурираме следните параметри:
1. ADO.NET Connection Manager – попълва списъка с ADO.NET връзки, създадени в пакета SSIS.
2. Режим за достъп до данни има две опции:
а. Ако изберете „Таблица или Преглед ” в „Режим за достъп до данни ” падащо меню, „Име на таблицата или изгледа ” падащото меню ще бъде изпълнено с таблици и изгледи, които съществуват в базата данни. Вижте изображението по-долу:
б. Ако изберем „SQL команда “, ще отвори многоредово текстово поле, където можем да напишем Ad-Hoc заявката за извличане на данни от базата данни.
Вижте изображението по-долу:
Вече създадохме връзката ADO.Net, така че в падащото меню на ADO.NET мениджъра на връзките изберете създаденото й име. В тази демонстрация ще напишем собствена заявка, така че методът за достъп до данни ще бъде „SQL Command “.
Създадох заявка, която ще ми даде списъка с клиенти от базата данни. Тази заявка е по-долу:
SELECT s.CustomerID, s.CustomerName, sc.CustomerCategoryName, pp.FullName AS PrimaryContact, ap.FullName AS AlternateContact, s.PhoneNumber, s.FaxNumber, bg.BuyingGroupName, dm.DeliveryMethodName AS DeliveryMethod, c.CityName AS CityName FROM Sales.Customers AS s LEFT OUTER JOIN Sales.CustomerCategories AS sc ON s.CustomerCategoryID = sc.CustomerCategoryID LEFT OUTER JOIN [Application].People AS pp ON s.PrimaryContactPersonID = pp.PersonID LEFT OUTER JOIN [Application].People AS ap ON s.AlternateContactPersonID = ap.PersonID LEFT OUTER JOIN Sales.BuyingGroups AS bg ON s.BuyingGroupID = bg.BuyingGroupID LEFT OUTER JOIN [Application].DeliveryMethods AS dm ON s.DeliveryMethodID = dm.DeliveryMethodID LEFT OUTER JOIN [Application].Cities AS c ON s.DeliveryCityID = c.CityID
И накрая, ADO.NET изходният редактор ще изглежда като изображението по-долу:
Можем да прегледаме изхода на заявката, като щракнем върху „Преглед ” в диалоговия прозорец. Резултатът от заявката ще бъде както е показано на изображението по-долу:
Конфигуриране на дестинация в Excel
След като конфигурираме източника на ADO.NET, ще конфигурираме дестинацията на Excel.
В кутията с инструменти на SSIS плъзнете и пуснете дестинацията на excel в прозореца за поток от данни и я преименувайте на „Sales Excel File ” както е показано на изображението по-долу:
Щракнете двукратно върху дестинацията на excel. Диалогов прозорец „Редактор на дестинация в Excel ” ще се отвори, за да конфигурирате следните параметри:
1. Диспечер на връзки в Excel – използва се за свързване на файла на excel.
2. Метод за достъп до данни . Работният лист на Excel се счита за таблица или изглед. Ако изберете „Таблица или Преглед “, падащо поле „Име на лист в Excel ” ще бъде запълнен с всички работни листове, които са създадени в работната книга на excel.
3. Име на лист в Excel . По подразбиране това падащо поле е деактивирано. Той ще бъде активиран автоматично, когато изберем „Таблица или Преглед ” като режим за достъп до данни. Можем също да изберем подходящ работен лист на Excel.
Все още не сме създали връзка за дестинация на excel, така че първо е необходимо да създадете мениджър на дестинация на excel. За да направите това, кликнете върху „Нов ” бутон до „Диспечер на връзки в Excel ” падащо меню, както е показано на изображението по-долу:
Диалоговият прозорец „Диспечер на връзки в Excel " ще отвори. Тук можем да конфигурираме:
1. Път до файла в Excel – местоположението на файла на excel.
2. Версия на Excel – може да изберете версия на excel от падащото меню.
За тази демонстрация създадох файл на excel и го записах на моя компютър. За да намерите файла, щракнете върху Преглед, преминете през файловата система, изберете файла и щракнете върху OK , както е показано на изображението по-долу:
Сега в избран режим за достъп до данни като „Таблица или изглед ” в „Мениджър на дестинации в Excel “. Списъкът с работни листове на Excel ще бъде попълнен в падащото поле. Изберете „Име на лист в Excel ” от падащото меню, както е показано на изображението по-долу:
Сега, за да експортираме данни от SQL таблица в excel файл, трябва да съпоставим полетата на SQL таблицата и файла на Excel. За да направите това, плъзнете синя стрелка под „Данни за продажби на DB сървър ” и го пуснете в „Sales excel файл ” компонент, както е показано на изображението по-долу:
Щракнете двукратно върху „Дестинация в Excel ” за картографиране на полетата. „Редактор на дестинация в Excel (файл на Sales Excel) " ще отвори. Изберете „Mappings ” опция от левия панел на диалоговия прозорец. При картографирането входните колони ще бъдат колоните на изхода на SQL заявка, а колоните на местоназначението ще бъдат колоните на файла на excel. Препоръчва се да се запази същото име на изхода на SQL заявка и колоните на excel. Това ще направи картографирането много по-лесно, защото не е необходимо да картографираме полета ръчно. SSIS ще картографира колоните автоматично.
За тази демонстрация файлът на excel и изходът от SQL заявка имат едно и също име, така че картографирането се извършва автоматично. Проверете факта, че картографирането е извършено правилно и щракнете върху OK . Вижте изображението по-долу:
След като картографирането приключи, цялата задача за поток от данни ще изглежда както на изображението по-долу:
Сега можем да изпълним пакета. За да направите това, кликнете върху „Старт ”, който се намира в лентата с менюта. Ако пакетът се изпълни успешно, можете да видите зелената икона на всеки компонент, както е показано на изображението по-долу:
Конфигуриране на дестинация за плосък файл
Както споменах в началото на статията, в SSIS можем да експортираме данни от SQL таблица в текстов файл. За да направим това, трябва да създадем дестинация за плосък файл в задачата за поток от данни. Плъзнете и пуснете „Дестинация за плоски файл ” към прозореца на задачата за поток от данни и го преименувайте на „Данни за продажбите в текстов файл ” както е показано на изображението по-долу:
Сега щракнете двукратно върху „Плосък файл местоназначение “. Диалогов прозорец „Редактор на дестинация на плосък файл ” ще се отвори, както е показано на изображението по-долу:
Сега кликнете върху „Ново ” бутон до „Мениджъри на връзки с плоски файлове ” падащо поле. Диалоговият прозорец „Плосък файлов формат " ще отвори. Той има четири опции:експортиране на данни в ограничени, фиксирана ширина, фиксирана ширина с ограничители на редове и неравномерно дясно. За тази демонстрация ще изберем „Delimited “.
Изберете „Delimited ” и щракнете върху OK както е показано на изображението по-долу:
Друг диалогов прозорец „Редактор на диспечера на плоски файлови връзки " ще отвори. Наименувайте мениджъра на връзки като „Експортиране на данни за продажби ” както е показано на следното изображение:
За да запазим SQL данните в текстов файл, можем или да създадем новия текстов файл, или да изберем съществуващия.
За тази демонстрация ще създадем нов файл. Ще създам файла с име „Данни за продажбите “. За да направя това, ще щракна върху прегледа и ще се придвижа през файловата система, както е показано на изображението по-долу:
Сега ще конфигурираме параметрите на плосък файл:
- Експортираните данни от SQL таблица ще се съхраняват в разделен формат, така че изберете „D елиминиран ” в „Формат ” падащо меню, както е показано на изображението по-долу:
- „Ограничител на редове в заглавката ” ще бъде „{CR}{LF} “, така че изберете подходящата опция в падащото поле, както е показано на изображението по-долу:
- В текстовия файл първият ред ще бъде заглавката на колоната, така че отметнете „Имена на колони в първия ред с данни ” както е показано на изображението по-долу:
Щракнете върху OK за да затворите „редактор на диспечера на плоски файлови връзки “.
Сега ще картографираме колоните. За да направите това, кликнете върху „Mappings ” от лявата страна на „Редактор на местоназначение на плосък файл ” както е показано на изображението по-долу:
Като имена на „Вход за SQL заявка ” и „Дестинация на текстовия файл ” колоните са еднакви, пакетът SSIS картографира колоните автоматично.
След като картографирането приключи, цялата задача за поток от данни ще изглежда както на изображението по-долу:
Сега можем да изпълним пакета. За да направите това, кликнете върху „Старт ”, който се намира в лентата с менюта. Ако пакетът се изпълни успешно, можете да видите зелената икона на всеки компонент, както е показано на изображението по-долу:
По-долу е екранната снимка на данните, които са извлечени от SQL таблицата:
Резюме
В тази статия разгледах:
- Създаване на ADO.NET мениджъра на връзки
- Създаване на задача за поток от данни и конфигуриране на изходната база данни
- Конфигуриране на дестинация на excel и експортиране на данни от SQL таблицата във файл на Excel.
- Конфигуриране на дестинация за плосък файл и експортиране на данни от SQL таблица в текстов файл.
Полезни инструменти:
Devart SSIS Data Flow Components – позволяват ви да интегрирате база данни и облачни данни чрез SQL Server Integration Services.