Marcin Sitarz

Marcin Sitarz .net developer

Temat: Import plików płaskich w SSIS

Witam,
jestem początkujący w SSIS dlatego chciałbym zapytać czy scenariusz który potrzebuje zrealizować jest możliwy do wykonania i jak najłatwiej to zrobić.
Zadanie jest następujące:
Ma to byc import z plików płaskich do tabeli. Pliki moga mieć różne formaty ale dane trafiają zawsze do tej samej tabeli. Na serwerze będzie katalog do którego beda trafiać pliki. Raz na dobę powinien zostać uruchomiony import wszystkich nowych plików z katalogu.
Moje pytania:
1. Jak sobie poradzić z różnymi formatami i różna ilością plików
2. Czy możliwy jest odczyt progressu takiego importu np z aplikacji w .NET
3. Czy mozliwa jest jakaś logika na kolumnach w momencie importu - np w pliku mam dwie kolumny z wartością i jedną kolumne bool i w zależności od wartości w kolumnie bool do kolumny w tabeli wrzuca się pierwsza lub druga kolumna z wartością
4 Na koncu wiersza plik może zawierać kilka sekcji z takimi samymi nagłówkami kolumn tzn plik zawiera na początku wiersza kilka kolumn podstawowych dotyczących sprzedaży a na końcu zawiera sekcję ProduktName, ProductCost i takich produktów może byc od 1 do 10. Jak sobie z czyms takim poradzić?

Pozdrawiam serdecznie
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

Temat: Import plików płaskich w SSIS

1. Z różną ilością plików poradzi sobie For Each Loop Container.
Z różną strukturą - to zależy:
- jeśli struktur jest stała ilość i można je rozróżnić po nazwie pliku to kilka Data Flow i przekierowanie do odpowiedniego
- jeśli nie można ich rozróżnić po nazwie to odczyt pierwszego wiersza i na tej podstawie odpowiedni Data Flow
- jeśli struktura zupełnie dowolna pozostają dynamiczne kolumny dodawane w komponencie Script Task
2. Jest, ale po co?
3. Taką logikę najłatwiej zrealizować w Derieved Column
4. A gdzie tkwi problem? W tym, że kolumny się tak samo nazywają, czy że trzeba zamienić to na klika wierszy?

konto usunięte

Temat: Import plików płaskich w SSIS

Może warto zamieścić przykład takiego pliku?

pozdrawiam
Marcin Sitarz

Marcin Sitarz .net developer

Temat: Import plików płaskich w SSIS

Witam,
dziękuje za odpowiedzi. Właściwie został p4 - Tak, trzeba zmienić wiersz z pliku na kilka wierszy w tabeli.
Przykład pliku:
Dealer Number,Dealer Name,Deal Number,Deal Status,Product1,Product1 Amount ,Product1 NET Cost ,Product2,Product2 Amount ,Product2 NET Cost ,Product3 Category,Product3 Amount ,Product3 NET Cost
TR100001,Dealer1,456782,Active,Y,$300.00 ,$500.00 ,Y, - ,$50.00 ,Y,$250.00 ,$200.00
TR100221,Dealer2,456783,Active,N, - , - ,Y, - ,$50.00 ,N, - , -
TR100002,Dealer3,456784,Active,Y,$500.00 ,$400.00 ,Y, - ,$50.00 ,N, - , -
TR100132,Dealer4,456785,Pending,Y,$750.00 ,$300.00 ,N, - , - ,N, - , -
TR100003,Dealer5,456786,Cancelled,N, - , - ,Y, - ,$50.00 ,Y,$300.00 ,$150.00

W każdym wierszu jest na początku 4 kolumny stałe a nastepnie po 3 kolumny dla produktu. Takich produktów może być max 10 ale kazdy rekord może mieć różna ilość.
A tabela wyglada tak:
Dealer Number,Dealer Name,Deal Number,Deal Status,Product Name/Type,Product Amount ,Product NET Cost

więc dla każdego wiersza w pliku w tabeli mam tyle rekordów ile jest produktów

pozdrawiam

Temat: Import plików płaskich w SSIS

Jeśli jesteś w stanie określić typ pliku po nazwie/rozszerzeniu/itp możesz to rozbić na dwa oddzielne flow'y

Obrazek


W przeciwnym wypadku musisz użyć transformacji podczas parsowania linii i porozbijać na docelowe miejsce (może być takie same)

Obrazek



Wyślij zaproszenie do