Importowanie i eksportowanie danych MS SQL Server 2000 za

advertisement
Ćwiczenie 6
Importowanie i eksportowanie danych MS SQL Server 2000 za pomocą
usług transformacji danych.
Wprowadzenie teoretyczne.
Technologia DTS (Data Transformation Services) umożliwia niezawodne i skuteczne
przenoszenie danych oraz konwersję lub transformację danych pomiędzy heterogenicznymi
źródłami danych. Głównymi komponentami DTS są : sterowniki bazy danych, pakiety oraz
narzędzie DTS (DTS Designer oraz obiekty COM DTS).
Sterowniki bazy danych OLE DB i ODBC stanowią jeden z głównych elementów DTS umożliwią one komunikację z innymi systemami. MS SQL Server zawiera sterowniki OLE
DB i ODBC dla:
 MS SQL Server
 Oracle
 Sybase
 MS OLAP Services
 MS Internet Publishing
 Access i Excel
 Plików tekstowych (ASCII)
 Innych źródeł danych ODBC.
Sterownik plików tekstowych jest przydatny podczas przenoszenia danych z systemu, który
nie może być obsługiwany przez żaden z rodzimych sterowników ani przez ogólny sterownik
ODBC. W większości przypadków można wyeksportować dane z takiego systemu do pliku
tekstowego, a następne przenieść dane z tego pliku do SQL Server. Tą samą metodą można
wyeksportować dane z SQL Server do drugiego systemu.
Pakiety DTS mogą być stworzone za dopomogą kreatora DTS Import/Export Wizard.
Kreator ten służy do tworzenia pakietów DTS, które później można przeglądać lub
modyfikować w DTS Designer. Pakiety są zbiorami zadań związanymi z importem,
transformacją i eksportem danych, którzy mogą być uruchamiane wielokrotnie. Pakiety mogą
być przechowywane w repozytorium na serwerze lokalnym lub zdalnym. Wykonanie całego
pakietu sprowadza się do:
 Połączenia z dowolnym źródłem danych.
 Kopiowania danych (i ewentualnie obiektów bazy danych).
 Transformacji danych.
 Odłączenia od źródła danych.
 Powiadomienia użytkowników, procesów lub nawet innych pakietów o zaistniałych
zdarzeniach (np. za pośrednictwem e-maila).
Każdy pakiet zawiera następne zdefiniowane obiekty:
Połączenia – służą do przechowywania informacji o źródle lub celu danych. W połączeniu
określa się dostawcę danych (np. Microsoft OLE DB Provider for SQL Server), serwer
docelowy, nazwę konta oraz nazwę bazy danych. Połączenia można wybierać w DTS
Designer w menu DATA.
Zadania DTS – Dyskretny zestaw funkcji wykonywanych w pojedynczym kroku. Zadania są
poleceniami wykonującymi żądane przekształcenia i przesłania danych. Zadanie jest w stanie
wykonać skrypt SQL, przesłać wiadomość e-mailem, wykonać masowe wprowadzenie
danych, a także uruchomić skrypt ActiveX lub zewnętrzny program. Zadania można wybrać
w DTS Designer w menu TASK.
Procedury przepływu zadań(precedence constraints) – określają kiedy i w jaki sposób
zadanie ma zostać wykonane, na przykład po pomyślnym lub niepomyślnym zakończeniu
poprzedniej operacji. Na przykład można utworzyć zadanie, które wysyła wiadomość e-mail
informująca o pomyślnym lub niepomyślnym wykonaniu zadania. Te procedury mogą być
trzech typów: bezwarunkowe (On Comletion), w przypadku sukcesu (On Success) oraz w
przypadku porażki(ON Failure). Procedury transformacji danych mogą być wyznaczony w
menu Workflow DTS Designer.
Procedury transformacji danych – definiują szczegółowy proces transformacji danych.
Nazywane także pompami danych. Procedury transformacji danych są skojarzony z zadaniem
Transrorm Data Task.
Przebieg ćwiczenia.
1. Czynności przygotowawcze. W tym punkcie będą skopiowane pliki, niezbędne do tego
ćwiczenia.
Stwórz na dysku c: katalog „Nazw_studenta”. Skopiuj do tego katalogu plik
Cw_6_archyw.zip ze Strony internetowej oraz rozpakuj. Są niezbędne następne pliki do tego
ćwiczenia:
 newprods.sql
 newprod2.sql
 new_data.dts
 newprods.txt
2.Importowanie danych wewnątrz bazy danych przez polecenie SQL.
W poniższych podpunktach za dopomogą kreatora DTS będzie stworzona nowa tabela w bazie
danych Northwind. Do tej tabeli będą importowane dani przez polecenie SQL. W ten samy
sposób mogą być przechowywane np. wyniki działalności firmy za termin określony. Te
wyniki często występują w postaci agregowanych rezultatów danych. Dla wewnętrznego
importowania danych można wykorzystać źródło danych w postaci Microsoft OLE DB
Provider.
2.1. W tym podpunkcie będzie stworzony pakiet DTS do importowania danych za dopomogą
kreatora DTS.
Uruchom SQL Server Enterprise Manager. Rozszerz: Microsoft SQL Servers, SQL Server
Group, twój server. Kliknij menu Tools -> Wizards. W oknie Select Wizard rozszerz Data
Transformation Services, Kliknij DTS Import Wizard. Wpisz niezbędnie dani na
odpowiednich stronach kreatora oraz potem Kliknij „Next”. Dani pobierz według tabeli 1.
Tabela 1.
Wartość
Opcja
Data source oraz
Data destination
Microsoft OLE DB Provider for SQL Server
Server name
(Dla stron Source oraz Destination)
(local)
Security context
(Dla stron Source oraz Destination)
Windows Authentication
Database
(Dla stron Source oraz Destination)
Northwind
Table copy or query
Use a query to specify the data to transfer
SQL query statement
Wpisz następne polecenie SQL dla pobierania danych pro
realizowane towary we wszystkich zamówieniach:
SELECT ProductName,
SUM(o.UnitPrice * Quantity)
AS Total
FROM [Order Details] AS o
INNER JOIN Products AS p
ON o.ProductID = p.ProductID
GROUP BY ProductName
Parse
Yes
Destination table name
(Modyfikuj nazwę Results do nowej wartości)
Product_Totals_nazw_studenta
Kontynuacja tabeli 1
Opcja
Wartość
Transform (Kliknij pole Transform)
Drop and recreate destination table
Do not allow NULLs in the Total column (clear)
Run DTS package immediately
Yes
Save DTS package
on SQL Server
Yes
DTS package name
Northwind_Product_Totals_nazw_studenta
DTS package description
Year to date product totals
Server name
(local)
DTS package security context
Windows Authentication
2.2. Zanalizuj komunikaty przy uruchamianiu pakietu DTS. Objaśnij, dlaczego powstał się
komunikat ze statusem „Error occurred”?
2.3. Otwórz SQL Query Analyzer w trybie Microsoft Windows Authentication. Stwórz
polecenie SQL dla odwzorowania stworzonej w p.2.1. tabeli. Sprawdź zawartość tabeli.
2.4. Uruchom DTS Designer dla odwzorowania treści i właściwości pakietu DTS który został
zapisany w SQL Server. W tym celu rozszerz Data Transformation Services, Kliknij Local
package. Kliknij (Right-click) pakiet “Northwind_Product_Totals_nazw_studenta”, wybierz
Design Package. W oknie projektu zbadaj właściwości każdego komponentu pakietu DTS.
2.5. Powtórz pp.2.1 -2.3 dla stworzenia w bazie danych Northwind pakietu DTS, który
tworzy nową tabelę oraz importuje dani pro ceny wszystkich zamówień z tabel Orders oraz
Order Details. W tym celu sformuj polecenie SQL w Query Analizer. Nowa tabela musi
zawierać kolumny: Identyfikator (zamówienia), Data (zamówienia)
oraz
Cena
(zamówienia).
3. Modyfikacja pakietu DTS przez DTS Designer.
3.1. W tym podpunkcie będzie uruchomiony istniejący pakiet DTS New_data.dts oraz dani z
istniejącego pliku tekstowego new_prods.txt będą importowane do nowej tabeli bazy danych
Northwind.
a) Stwórz tabelę newprods w bazie Northwind, w tym celu uruchom plik
C:\nazw_st\newprods.sql w Query Analizer. Sprawdź w Query Analizer obecność tabeli
newprods.
b) Odtwórz istniejący pakiet DTS zawarty w pliku C:\nazw_st\New_data.dts. W tym celu w
Enterprise Manager Kliknij (Right-click) DataTranformation Services oraz Kliknij Open
Package. Wybierz plik C:\nazw_st\New_data.dts .Rozszerz pakiet oraz odtwórz ostatnią
wersję pakietu.
c) W DTS Designer Kliknij (Right click) w panelu element New Products. W oknie
Properties ustal dostęp do pliku źródłowego C:\nazw_st\newprods.txt . Plik tekstowy
newprods.txt jest źródłem danych dla pakietu DTS.
d) W DTS Designer popatrz właściwości drugiego elementu typu connection oraz elementu
Transform data task ( musi być ustalona baza danych Northwind w elemencie SQL Server
Destination oraz odpowiedni schemat transformacji danych w elemencie Transform data
task). Objaśnij schemat transformacji danych.
e) Uruchom pakiet DTS (Opcja menu DTS Designer Package->Execute).
g) Sprawdź w Query Analizer rezultaty transformacji danych - zawartość tabeli newprods.
Tabela musi zawierać 1343 rekordów.
3.2. W tym podpunkcie będą dodane nowe zadania do istniejącego pakietu DTS.
a) Odtwórz pakiet New_data (patrz p.3.1.b)
b) Kliknij ikonę Execute SQL Task i przeciągnij ją do panelu projektu DTS Designer.
Będzie uruchomiane okno Execute SQL Task Properties.
c) Uzupełnij opcji dialogu według tabeli 2. Kliknij OK.
Tabela 2.
Opcja
Wartość
Description
Usuniecie tabeli Northwind.newprods
Existing connection
SQL Server Destination (Northwind)
SQL statement
DROP TABLE Northwind.dbo.newprods
Parse query
OK
d) Powtórz p.3.2.b dla drugiego elementu Execute SQL Task .
e) Uzupełnij opcji dialogu drugiego elementu Execute SQL Task według tabeli 3. Kliknij
OK.
Tabela 3.
Option
Value
Description
Stworzenie tabeli Northwind..newprods
Existing connection
SQL Server Destination (Northwind)
SQL statement
Wpisz polecenie CREATE TABLE z pliku
C:\nazw_st\newprod2.sql
Parse query
OK
3.3. W tym podpunkcie do projektu pakietu będą dodane procedury przeplywu zadań
(elementy typu „workflow”), którzy wyznaczają związki(precedence constraits) pomiędzy
oddzielnymi zadaniami pakietu DTS. Te związki odwzorowują warunki aktywacji zadań
pakietu.
a) Na panelu DTS Designer przy naciśniętym klawiszu CTRL Kliknij lewą myszą (left click)
następne zadania: 1)Usunięcie tabeli 2)Stworzenie tabeli (w tej samej kolejności). Na panelu
będą wyświetlane jednocześnie oba te zadania.
b) Z menu Workflow wybierz opcję On Complection (niebieska strzałka). Na panelu będzie
wyświetlana niebieska strzałka, skierowana od zadania Usunięcie tabeli do zadania
Stworzenie tabeli. Popatrz właściwości stworzonego elementu Workflow oraz zamknij
okno dialogu.
c) Na panelu DTS Designer w sposób analogiczny opisanemu w p.3.3.a wyświetli następne
zadania: 1)-Stworzenie tabeli 2) - Odczytanie pliku tekstowego. Połącz te dwa zadania przez
związek On Success w sposób opisany w 3.3.b. Na panelu będzie wyświetlana zielona
strzałka, skierowana od zadania Stworzenie tabeli do zadania odczytania pliku tekstowego.
Popatrz właściwości stworzonego elementu Workflow oraz zamknij okno dialogu.
d) Zachowaj ten pakiet DTS oraz uruchom go. Sprawdź rezultaty. Zanalizuj komunikaty
pakietu DTS. Objaśnij przeznaczenia wszystkich elementów wykorzystanych w pakiecie
DTS. Zamknij DTS Designer.
4. Importowanie obiektów SQL Server. W tym punkcie będą importowane obiekty (tabeli
oraz widoki) SQL Server z bazy danych Northwind do nowej bazy danych przez kreator DTS
Import/Export.
4.1. Utwórz dwa podkatalogi \DB_wind oraz \DB_xfer w katalogu C:\nazw_st .
Wykorzystując wiedzie z poprzednich ćwiczeń stwórz przez Query Analizer nową bazę
danych NazwiskoSt_wind z parametrami po domyśleniu w podkatalogu \DB_wind. Katalog
\DB_xfer będzie wykorzystany przez DTS dla stworzenia skryptów obiektów transformacji,
którzy będą importowane do bazy danych NazwiskoSt_wind.
4.2. W sposób opisany w p. 2.1 uruchom DTS Import Wizard. Uzupełnij opcji kreatora DTS
według tabeli 4.
Tabela 4.
Option
Value
Data source and destination
Microsoft OLE DB Provider for SQL Server
Server name
(source and destination)
(local)
Security context
(source and destination)
Windows Authentication
Database (source)
Northwind
Database (destination)
NazwiskoSt_wind
Table copy or query
Copy objects and data between SQL Server
databases
Objects to transfer
Clear Include all dependent objects
Clear Copy all objects
Option
Value
Select objects
Orders table
Order Details table
Order Subtotals view
Summary of Sales by Quarter view
Summary of Sales by Year view
Use default options
Clear
Options (Security options)
Clear Copy database users and database roles
Clear Copy object-level permissions
Options (Table options)
Clear Copy triggers
Clear Copy full text indexes
Clear Copy PRIMARY and FOREIGN keys
Script file directory
C:\nazw_st\DB_xfer
Run DTS package
immediately
Yes
4.3. Uruchom Query Analizer. Wykorzystując widok systemowy information_schema.tables
wyznacz listę widoków oraz tabel importowanych do bazy danych NazwiskoSt_wind.
4.4. Popatrz przez przeglądarkę zawartość podkatalogu \DB_xfer. Objaśnij przeznaczenie
oddzielnych plików w tym katalogu. Popatrz przez notatnik zawartość nie pustych plików
.viw, .tab, .log. Objaśnij przeznaczenie kodów zawartych w tych plikach.
5. Eksportowanie danych do plików tekstowych. W tym punkcie będą eksportowane dani
przez kreator DTS/Export do postaci plików tekstowych. Te dani można potem importować do
innych baz danych lub środowisk informacyjnych. Dla przykładu będą eksportowane dani pro
klientów Ameryki Południowej.
5.1. Uruchom SQL Server Enterprise Manager. Rozszerz: Microsoft SQL Servers, SQL
Server Group, twój server. Kliknij menu Tools -> Wizards. W oknie Select Wizard rozszerz
Data Transformation Services, Kliknij DTS Export Wizard. Wpisz niezbędnie dani na
każdej stronie kreatora oraz potem Kliknij „Next”. Dani pobierz według tabeli 5.
Tabela 5.
Option
Value
Data source
Microsoft OLE DB Provider for SQL Server
Server name
(source and destination)
(local)
Security context
(source and destination)
Windows Authentication
Database (source)
Northwind
Data destination
Text file
Destination file name
C:\nazw_st\SoAmer.txt
(wpisz imię pliku)
Table copy or query
Use a query to specify the data to transfer
Query Builder
Yes
Source table
Customers
Selected columns
Wszystkie kolumny oprócz Phone oraz Fax
Sorting order
Country column, CompanyName column
Query criteria
Only rows meeting the following criteria
Customers.Country = 'Argentina'
OR
Customers.Country = 'Brazil'
OR
Customers.Country = 'Venezuela'
SQL query statement
Parse
Destination file format
Delimited
Column delimiter
Tab
Run DTS package
immediately
Yes
Schedule DTS package for
later execution
Yes
Recurring job schedule
Weekly, on Monday, Wednesday, and Friday
at 9:00 A.M.
Save DTS package on
SQL Server
Yes
DTS package name
SouthAmerican_Customers
DTS package description
Klienci South American
Server name
(local)
DTS package security
context
Windows Authentication
(Przechowywanie pakietu DTS w SQL Server Agent)
5.2. Popatrz przez notatnik zawartość pliku SoAmer.txt . Czy odpowiada ten plik ustalonym
warunkom kopiowania?
5.3. Popatrz właściwości stworzonego pakietu DTS w SQL Server w katalogu Local Packages
w sposób analogiczny p.2.4.
5.4. Popatrz właściwości stworzonego zadania w środowisku planistycznym SQL Server
Agent. W tym celu w Enterprice Manager rozszerz katalogi Management->SQL Server
Agent. Kliknij Jobs. W prawym panelu są zadania przeznaczone dla automatycznego
uruchamiania. Popatrz właściwości stworzonego w p.5.1 zadania.
6. Importowanie danych przez program masowego kopiowania danych (Bulk Insert
Task). W tym punkcie dla importowania danych z pliku tekstowego będzie wykorzystany
program Bulk Insert Task. Dla konstruowania zadania z wykorzystaniem Bulk Insert Task
będzie wykorzystany DTS Designer.
6.1. Uruchom DTS Designer (right-click DataTransformation Services oraz click New
Package).
6.2. W panelu connection wybierz źródło danych Microsoft OLE DB Provider for SQL
Server.
6.3. Uzupełnij okno Connection Properties według danych tabeli 6.
Tabela 6.
Opcja
Wartość
New Connection
Bulk Insert Connection
Database
Northwind
6.4. Kliknij w panelu Task ikonę Bulk Insert Properties i przeciągnij ją do panelu projektu
DTS Designer. Będzie uruchomiane okno Bulk Insert Task Properties.
6.5. Uzupełnij okno Bulk Insert Task Properties według danych tabeli 7.
Tabela 7.
Option
Value
Description
NewProducts
Existing connection
Bulk Insert Connection
Destination table
[Northwind].[dbo].[newprods]
Source data file
C:\nazw_st\Newprods.txt
(wpisz nazwę pliku tekstowego)
Column Delimiter
Comma
6.6. Kliknij Execute dla importowania tekstowych danych do tabeli newprods.
6.7. Zachowaj pakiet pod nazwiskiem Nazw_st_BulkInsertNewProducts.
Treść sprawozdania
1. Odnośnie do każdego punktu ćwiczenia umieścić kod Transact-SQL oraz rzuty
rezultatów.
2. Do kilku wybranych punktów zademonstrować własne przykłady.
Przykładowe pytania kontrolne
1.Jakie zadania, procedury przepływu danych(elementy workflow) oraz procedury
transformacji danych zawiera pakiet DTS stworzony w p.3.3
2.Jakie są przeznaczenia procedur przepływu danych (elementów workflow)?
Download