| Termin | Definicja |
|---|---|
| Flat File Destination | Flat File Destination to komponent przepływu danych SSIS zapisujący wynik przetwarzania do prostego pliku tekstowego. Rola Flat File Destination w przepływie danych SSISFlat File Destination jest komponentem zadania Data Flow w SQL Server Integration Services (SSIS). Jego zadaniem jest odebranie wierszy z wejściowego przepływu danych i zapisanie ich w pliku tekstowym. Dane mogą pochodzić między innymi z tabeli, widoku, zapytania SQL albo z wcześniejszych transformacji SSIS, takich jak Derived Column, Lookup, Sort czy Conditional Split. Komponent nie wykonuje samodzielnie zapytań do bazy danych i nie analizuje znaczenia biznesowego zapisywanych wartości. Odpowiada za przekazanie kolumn wejściowych do pliku zgodnie z konfiguracją połączenia Flat File. Flat File Destination korzysta z Flat File connection manager. To właśnie menedżer połączenia określa ścieżkę pliku, format rekordów, kodowanie, typy kolumn, szerokości pól, separator wierszy, separator kolumn oraz kwalifikator tekstu. Z tego powodu nieprawidłowa konfiguracja connection managera może powodować błędny zapis nawet wtedy, gdy sam przepływ danych działa poprawnie. Komponent ma jedno wyjście przeznaczone do obsługi zapisanego strumienia i nie udostępnia osobnego error output, dlatego problemy z zapisem trzeba rozpoznawać na podstawie komunikatów wykonania pakietu, konfiguracji oraz stanu pliku. Format pliku: delimitery, szerokości i kwalifikatoryFlat File Destination obsługuje kilka sposobów organizacji danych. W formacie delimited kolumny są oddzielane ustalonym separatorem, na przykład przecinkiem, średnikiem, tabulatorem albo znakiem pionowej kreski. W formacie fixed width każda kolumna zajmuje określoną szerokość, a jej położenie wynika z liczby bajtów lub znaków przeznaczonych na pole. Dostępny jest również format ragged right, w którym kolumny mają stałe szerokości, natomiast ostatnia kolumna jest zakończona separatorem wiersza. Dobór formatu musi odpowiadać wymaganiom programu, który później będzie odczytywał plik. W pliku rozdzielanym separator kolumn nie może być traktowany jako zwykły znak danych, jeżeli występuje wewnątrz wartości. W tym celu stosuje się text qualifier, czyli kwalifikator tekstu, często w postaci cudzysłowu. Wartość zawierająca separator może wtedy zostać zapisana jako jeden logiczny element, na przykład jako pole otoczone znakami kwalifikatora. Jeżeli sam kwalifikator występuje wewnątrz tekstu, właściwość EscapeQualifier określa sposób jego zapisu w danych wyjściowych. Należy sprawdzić, czy system odbierający plik interpretuje te reguły tak samo, ponieważ różnica w obsłudze cudzysłowów może przesunąć kolejne wartości do niewłaściwych kolumn. Istotne są także ustawienia wiersza nagłówkowego. Właściwość Header pozwala wstawić określony blok tekstu przed zapisaniem danych. Nagłówek może zawierać nazwy kolumn albo informacje wymagane przez zewnętrzny importer, ale nie jest automatycznym mechanizmem wykrywania schematu danych. Trzeba również ustalić, czy istniejący plik ma zostać nadpisany, czy dane mają zostać dopisane. Właściwość Overwrite steruje tym zachowaniem; jej wartość domyślna wskazuje na nadpisywanie pliku. Kodowanie, typy danych i mapowanie kolumnKonfiguracja pliku obejmuje wybór Unicode albo konkretnej strony kodowej dla danych nieunikodowych. Unicode i code page nie są ustawieniami zamiennymi: przy wyborze Unicode nie określa się strony kodowej w ten sam sposób jak dla tekstu nieunikodowego. Błędne kodowanie może prowadzić do niepoprawnego wyświetlania polskich znaków, zastępowania znaków symbolem zastępczym albo odrzucenia pliku przez kolejny system. Przy analizie problemu należy porównać ustawienia SSIS z oczekiwaniami odbiorcy, a nie tylko otworzyć plik w edytorze tekstu, który może automatycznie rozpoznać kodowanie. Każda kolumna connection managera ma metadane, w tym nazwę, typ danych, szerokość, precyzję i skalę dla wartości liczbowych. W przypadku formatu fixed width szerokość pola wpływa bezpośrednio na położenie następnej kolumny. Zbyt mała szerokość może obciąć wartość lub doprowadzić do błędu konwersji, natomiast niewłaściwy typ danych może zmienić sposób zapisu daty, liczby dziesiętnej albo wartości logicznej. Locale dostarcza informacji używanych przy interpretacji danych zależnych od ustawień regionalnych, w szczególności dat i formatów liczbowych. Nie należy zakładać, że przecinek dziesiętny oraz format daty będą identyczne na każdym komputerze wykonującym pakiet. Na stronie Mappings edytora Flat File Destination przypisuje się kolumny wejściowe do kolumn pliku. Kolejność i zgodność metadanych mają znaczenie, ponieważ plik tekstowy nie przechowuje schematu w sposób porównywalny z tabelą SQL Server. Zmiana nazwy, typu lub długości kolumny w poprzednim komponencie może wywołać niezgodność metadanych podczas walidacji. Warto sprawdzić podgląd danych, mapowanie wszystkich pól oraz rzeczywistą zawartość pliku po wykonaniu pakietu, zwłaszcza gdy przepływ zawiera konwersje albo wartości opcjonalne. Kontrola zapisu i rozpoznawanie nieprawidłowościPodczas diagnostyki należy najpierw ustalić, czy problem występuje w źródle danych, transformacji, mapowaniu, connection managerze czy w dostępie do ścieżki docelowej. Pusty plik może oznaczać brak wierszy na wejściu, filtr odrzucający wszystkie rekordy albo przerwanie wykonania przed zapisem. Plik z nieprawidłową liczbą kolumn zwykle wskazuje na niespójny separator, brak text qualifiera lub dane zawierające znak używany jako delimiter. Przesunięcie wartości między kolumnami jest często skutkiem niezamkniętego kwalifikatora tekstu albo niezgodności między formatem zapisu i odczytu. Trzeba zweryfikować, czy proces wykonujący pakiet ma uprawnienia do utworzenia, nadpisania lub dopisania do pliku oraz czy ścieżka nie zależy od mapowania dysku dostępnego wyłącznie dla interaktywnego użytkownika. Jeżeli nazwa pliku jest budowana dynamicznie za pomocą wyrażenia SSIS, należy sprawdzić wartość właściwości w czasie wykonania, a nie tylko wartość widoczną w projekcie. Przy dynamicznej ścieżce pomocne może być ustawienie początkowej poprawnej nazwy pliku w connection managerze oraz odpowiednie zarządzanie walidacją opóźnioną, aby pakiet nie zgłaszał błędu przed wyznaczeniem właściwej ścieżki. Flat File Destination stosuje się wtedy, gdy wymagany jest prosty plik tekstowy, na przykład plik CSV, plik o stałej szerokości pól albo plik przeznaczony do importu przez starszy system. Nie jest to format samowystarczalny: znaczenie danych zależy od uzgodnionej kolejności kolumn, separatorów, kodowania, reprezentacji pustych wartości i sposobu zapisu dat oraz liczb. Rzetelna weryfikacja powinna obejmować konfigurację SSIS, próbkę danych wejściowych, plik wynikowy oraz dokumentację odbiorcy. |