# Mapowanie baz danych

### Mapowanie baz danych i procesy ETL

Mapowanie i konwersja danych między bazami danych lub innymi formatami danych- Narzędzie ETL dla dowolnej bazy danych
- Wykonuj zapytania do baz danych we wszystkich popularnych systemach baz danych
- Wsparcie dla baz danych SQL i NoSQL
- Konwersja danych z jednego typu bazy danych na inny
- Mapowanie danych z bazy danych do innych formatów danych lub odwrotnie
- Określ ustawienia kluczy bazy danych

- Rejestrowanie danych wyjściowych i obsługa błędów
- Zdefiniuj operacje wykonywane na tabelach bazy danych
- Bezpośrednio wysyłaj zapytania do baz danych
- Połącz się z bazą danych XML i zmapuj jej zawartość na tabele
- Sortowanie elementów wejściowych bazy danych

## Narzędzia do mapowania baz danych

MapForce to narzędzie do integracji danych i przetwarzania ETL, które oferuje zaawansowane funkcje konwersji baz danych. Umożliwia konwersję między dowolną kombinacją danych z baz danych oraz formatów XML, JSON, PDF, CSV i innych plików tekstowych, EDI, Excel, protobuf, XBRL, usług internetowych, Shopify/GraphQL, a także innych formatów baz danych.

Po załadowaniu struktury bazy danych w oknie projektowania, MapForce automatycznie interpretuje schemat bazy danych, umożliwia wybór dostępnych tabel i widoków bazy danych oraz rozpoznaje relacje między tabelami. Następnie można wizualnie przeglądać strukturę bazy danych.

[Mapowanie baz danych w programie MapForce umożliwia łatwą integrację danych z baz danych](https://www.altova.com/images/mapforce_database_mapping.png)

Po załadowaniu wszystkich modeli danych wymaganych do mapowania bazy danych, należy zakończyć proces mapowania, po prostu przeciągając linie łączące struktury źródłowe i docelowe.

Wspierany **relacyjny** bazy danych:

- Firebird
- IBM DB2 for iSeries®
- IBM DB2®
- Informix®
- MariaDB
- Microsoft Access™
- Microsoft® Azure SQL
- Microsoft® SQL Server®
- MySQL®
- Oracle®
- PostgreSQL
- Progress OpenEdge
- SQLite
- Sybase® ASE
- Teradata

Wspierany **NoSQL** Bazy danych:

- MongoDB
- CouchDB
- Microsoft Azure Cosmos DB

MapForce obsługuje wszystkie popularne bazy danych relacyjnych, a także popularne bazy danych NoSQL, umożliwiając tworzenie graficznych mapowań między danymi źródłowymi w bazach danych, funkcjami przetwarzania danych i filtrami, oraz innymi strukturami danych różnego typu. Dzięki temu możliwe jest wsparcie dla typowych scenariuszy migracji baz danych, takich jak [migracja z MySQL do PostgreSQL](convert-mysql.md), a także niezliczone inne możliwości, w tym transformacje danych typu "jeden do wielu" i łańcuchowe transformacje.

## Narzędzia ETL do baz danych

MapForce zawiera zaawansowane narzędzia [ETL](etl-tool.md) do zapisywania danych w bazach danych SQL i NoSQL. Obejmuje to nie tylko konwersję formatów danych, takich jak XML, JSON, [Shopify/GraphQL](convert-shopify-graphql.md#etl) i inne, do baz danych, ale także transformację danych z jednego typu bazy danych do innego, na przykład w wyniku fuzji i przejęcia lub migracji systemu.

- **Wyciąg danych**: Po nawiązaniu połączenia, MapForce odczytuje dane z dowolnego obsługiwanego formatu źródłowego w celu ich wyodrębnienia.
- **Transformacja**: MapForce obsługuje szeroki zakres funkcji transformacji, w tym manipulację łańcuchami znaków, operacje matematyczne, konwersje dat i wiele innych, a także funkcje niestandardowe oraz logikę warunkową, umożliwiające obsługę złożonych transformacji.
- **Ładowanie danych**: MapForce ułatwia konfigurowanie połączeń z bazami danych docelowymi, generowanie skryptów SQL do wstawiania przetworzonych danych oraz definiowanie akcji, takich jak wstawianie, aktualizacja lub usuwanie, w celu kontrolowania sposobu zapisu danych. Program oferuje również kompleksowe opcje obsługi błędów i rejestrowania.

## Filtrowanie i przetwarzanie danych z baz danych

Wiele transformacji baz danych wymaga manipulacji danymi między źródłem a celem, w oparciu o warunki logiczne lub instrukcje SQL i SQL/XML. Może być konieczne wykonanie porównań logicznych, obliczeń matematycznych lub operacji na łańcuchach znaków, sprawdzenie, czy dane w bazie zawierają określone wartości, oraz wprowadzenie innych modyfikacji danych. Na powyższym zrzucie ekranu, funkcje przetwarzania danych są przedstawione jako pola znajdujące się pomiędzy liniami łączącymi model danych źródłowych i docelowych.

Funkcje przetwarzania danych umożliwiają wykonywanie zaawansowanych mapowań baz danych w czasie rzeczywistym, spełniając różnorodne potrzeby transformacji danych. Można na przykład tworzyć mapowania baz danych, które wykorzystują wiadomości XML lub EDI do pobierania wierszy z bazy danych na podstawie kryteriów filtrowania zawartych w elementach XML lub EDI.

## Natychmiastowa konwersja baz danych

Po zdefiniowaniu mapowania, wbudowany silnik MapForce umożliwia przeglądanie i zapisywanie wyników jednym kliknięciem.

Mapowania baz danych na format XML generują dokument XML. Mapowania baz danych na pliki tekstowe mają na wyjściu pliki CSV lub pliki tekstowe o stałej długości. Mapowania baz danych na format EDI mogą generować wiadomości w formatach EDIFACT, X12 lub HL7. Mapowania baz danych do.. [Excel](excel-mapping.md) generuje format Office Open XML (OOXML) oraz mapowania do XBRL, co umożliwia tworzenie raportów finansowych w formacie XBRL.

Mapowania do bazy danych generują wyniki w postaci skryptów SQL (np. instrukcje SELECT, INSERT, UPDATE i DELETE) lub skryptów NoSQL, które są uruchamiane bezpośrednio w docelowej bazie danych, z poziomu programu MapForce.

Oprócz natychmiastowej zmiany, [Wydajne narzędzia ETL](#integracja-danych-o-wysokiej-wydajno-ci-oraz-automatyzacja-proces-w-etl) Jest dostępny za pośrednictwem serwera MapForce.

## Rejestrowanie (śledzenie) wyników działania bazy danych

Śledzenie wyników działania bazy danych umożliwia łatwe rejestrowanie wszystkich zmian wprowadzonych przez projekt mapowania danych lub ETL w bazie danych podczas jego działania. 

Kiedy funkcja śledzenia jest włączona, zdarzenia takie jak operacje zapisu lub aktualizacji danych w bazie, a także błędy, są rejestrowane w pliku XML, który można później analizować lub przetwarzać automatycznie. 

Śledzenie aktywności bazy danych można włączyć na poziomie komponentu bazy danych, tabeli, procedury składowanej lub pola bazy danych. Można wybrać śledzenie wszystkich komunikatów lub tylko błędów, lub też całkowicie wyłączyć śledzenie. 

Po wybraniu odpowiedniego poziomu szczegółowości śledzenia, wybrany komponent bazy danych w projekcie mapowania zostaje rozszerzony o strukturę XML, która przedstawia strukturę logów. Jeśli wolisz, aby plik logów był w formacie innym niż XML, możesz przekształcić dane z niego do innego formatu obsługiwanego przez MapForce (np. pliku tekstowego lub nawet innej bazy danych). 

Po kliknięciu przycisku "Wyjście", aby wyświetlić podgląd wyniku mapowania, programista może również zobaczyć przykład tego, jak będzie wyglądał dziennik śledzenia, gdy mapowanie zostanie uruchomione. 

[Śledzenie aktywności bazy danych w celu generowania logów dla procesów ETL (ekstrakcja, transformacja, ładowanie) danych](https://www.altova.com/images/database-tracing.png)

## Obsługa błędów transakcji w bazie danych

MapForce oferuje również mechanizmy obsługi transakcji baz danych, które umożliwiają cofnięcie zmian wprowadzonych w bazie danych podczas konwersji, w przypadku wystąpienia błędu, a opcjonalnie umożliwiają kontynuowanie procesu mapowania dla pozostałych danych. 

Czasami występuje błąd, który nie uniemożliwia kontynuacji procesu mapowania bazy danych, na przykład gdy pewne ograniczenia bazy danych uniemożliwiają procesowi ETL wstawianie lub aktualizowanie nieprawidłowych danych. 

Włączenie obsługi transakcji w bazie danych spowoduje, że wszystkie zmiany wprowadzone przez komponent bazy danych zostaną umieszczone wewnątrz transakcji, która zostanie cofnięta w przypadku wystąpienia błędu. Można wybrać, czy kontynuować przetwarzanie pozostałej części mapowania, czy też przerwać dalsze wykonywanie. Możliwe jest włączenie transakcji zarówno na poziomie komponentu bazy danych, jak i na poziomie akcji wykonywanych na tabelach. 

[Umożliwienie transakcji baz danych w celu obsługi błędów](https://www.altova.com/images/database-transactions.png)

To bardzo przydatne, gdy projektant mapowania danych chce przechwytywać poprawne dane wejściowe i po prostu ignorować dane nieprawidłowe.

## Zaawansowane mapowanie baz danych i procesy ETL

Dla użytkowników pracujących z SQL, MapForce oferuje zakładkę "Zapytanie do bazy danych", która umożliwia bezpośrednie wykonywanie zapytań do bazy danych. Po połączeniu z bazą danych za pomocą tej zakładki, MapForce wyświetla jej tabele w postaci hierarchicznej struktury drzewa w oknie przeglądarki. 

[Wykonaj zapytanie do bazy danych podczas definiowania mapowania konwersji bazy danych](https://www.altova.com/images/mapforce_database_query.png)

Następnie można użyć zakładki edytora SQL, aby wyświetlać, edytować i wykonywać instrukcje SQL lub SQL/XML, otwierając istniejące pliki SQL lub tworząc instrukcje SQL od podstaw, korzystając z funkcji przeciągania i upuszczania oraz automatycznego uzupełniania.

Można uruchomić skrypt SQL i wyświetlić wyniki w formie tabeli, a także zapisać zarówno pobrane dane, jak i sam skrypt SQL do oddzielnych plików.

### Ustawienia kluczy bazy danych {#db-key}

Ustawienia kluczy bazy danych w MapForce pozwalają na dostosowanie sposobu, w jaki wartości kluczy głównych i obcych będą dodawane do bazy danych, która jest celem mapowania danych. Można albo ręcznie wprowadzać wartości kluczy w MapForce, albo można pozwolić systemowi baz danych, aby automatycznie generował te wartości.

W sytuacjach, gdy relacje klucza głównego i/lub klucza obcego nie są wyraźnie zdefiniowane w tabelach bazy danych, MapForce umożliwia zdefiniowanie tych relacji bezpośrednio, bez wpływu na dane źródłowe.

### Zdefiniuj akcje wykonywane na tabelach bazy danych {#db-table-actions}

Podczas mapowania danych do bazy danych, MapForce umożliwia wybór operacji na tabelach bazy danych, co pozwala kontrolować sposób zapisu danych. Dzięki temu zyskujesz pełną elastyczność w automatyzacji nawet najbardziej zaawansowanych zadań związanych z zarządzaniem danymi.

Okno dialogowe "Akcje dla tabeli bazy danych", charakteryzujące się prostym interfejsem, umożliwia zdefiniowanie kolumn w wybranej tabeli, które będą używane do określenia, jaka akcja (INSERT, UPDATE, DELETE) powinna zostać wykonana w bazie danych.

To zapewnia bezprecedensową elastyczność w manipulowaniu wierszami baz danych w odpowiedzi na dane XML, bazy danych, EDI, XBRL, pliki tekstowe, arkusze Excel, JSON, JSON5, usługi internetowe lub inne dane z baz danych, przy użyciu narzędzia MapForce.

### Wsparcie dla procedur składowanych SQL {#stored-procedures}

MapForce oferuje zaawansowane wsparcie dla procedur składowanych, które mogą być wykorzystywane jako komponenty wejściowe (procedury dostarczające wyniki) lub jako komponenty wyjściowe (procedury wstawiające lub aktualizujące dane). Alternatywnie, procedury składowane mogą być wywoływane jak funkcje, co pozwala użytkownikom dostarczać dane wejściowe, wykonywać procedurę składowaną i odczytywać/mapować dane wyjściowe do innych komponentów.

Ten zrzut ekranu pokazuje, jak w SQL Server zdefiniowano procedurę składowaną, która generuje plik XML. Procedura zwraca tabelę danych zawierającą informacje o wszystkich menedżerach znajdujących się w strukturze zarządzania powyżej określonego identyfikatora pracownika, który jest przekazywany jako parametr wejściowy – w tym przykładzie jest to stała wartość 67.

Ten parametr może również być podawany jako wartość obliczona lub jako element danych pobrany z innego miejsca w bazie danych.

MapForce udostępnia menu kontekstowe, które umożliwia użytkownikom uruchomienie zdefiniowanej procedury, aby wyświetlić strukturę danych, która będzie wykorzystana do mapowania. Wykonanie zdefiniowanego mapowania generuje wynik w formacie XML.

[Zaawansowane narzędzia do mapowania danych oferują wsparcie dla procedur składowanych](https://www.altova.com/images/mapforce_stored_procedure.png)

### Mapy XML przechowywane w polach bazy danych {#database-xml}

MapForce umożliwia również łączenie się z bazą danych i mapowanie danych XML przechowywanych w polach baz danych relacyjnych (obecnie obsługiwane dla SQL Server i IBM DB2). Wystarczy przypisać schemat XML – zarejestrowany w bazie danych lub znajdujący się w lokalnym systemie plików – do danego pola, a MapForce wyświetli ten schemat jako poddrzewo pola bazy danych, co ułatwia proces mapowania.

### Sortowanie komponentów danych wejściowych {#data_sorting}

Zapytania SQL wykonywane wewnątrz bazy danych nie zawsze są wystarczające do złożonych zadań mapowania danych. MapForce oferuje dodatkowe funkcje sortowania danych w bazie danych za pomocą komponentu SQL-WHERE/ORDER, co jest przydatne, gdy dane pobierane z bazy wymagają dodatkowej obróbki, lub gdy inne dane lub warunki w procesie mapowania wpływają na kolejność sortowania wierszy danych.

### Obsługa wartości NULL w operacjach na tabelach baz danych {#null-values}

Okno dialogowe "Akcje dla tabeli bazy danych" obsługuje porównywanie wartości NULL. Porównania uwzględniające wartości NULL stanowią ulepszony sposób obsługi baz danych zawierających takie wartości. Użytkownicy MapForce mogą skonfigurować mapowanie bazy danych, aby porównywanie danych odbywało się z uwzględnieniem wartości NULL, zgodnie z zasadami obowiązującymi dla danego typu bazy danych, który jest używany w mapowaniu.

Mapa danych, która znajduje się po prawej stronie, ma na celu aktualizację docelowej tabeli bez dodawania duplikatów. Obie tabele są zdefiniowane w taki sposób, że pole "email" może przyjmować wartość NULL, co oznacza, że w każdej z tabel mogą istnieć wpisy o identycznych nazwach, ale z wartością NULL w polu "email".

Kliknięcie ikony "Akcje" obok tabeli bazy danych TARGET otwiera okno dialogowe "Akcje bazy danych". Pole wyboru "Równe NULL" obok pola adresu e-mail pozwala programowi MapForce traktować wartości NULL w danych źródłowych i docelowych jako równoważne w celach mapowania danych, nawet jeśli zgodnie z zasadami bazy danych nie są one uważane za takie.

[Mapowanie baz danych z uwzględnieniem wartości null w MapForce](https://www.altova.com/images/mapforce-null-actions.png)

## Konwersja bazy danych do formatu XML

MapForce umożliwia tworzenie mapowań między bazami danych a plikami XML, opartych na strukturach XML (schematach XML lub DTD). Aby stworzyć mapowanie między bazą danych a plikiem XML, wystarczy zaimportować schemat XML i bazę danych do MapForce, a następnie przeciągnąć linie łączące elementy XML i obiekty bazy danych.

Jeśli nie posiadają Państwo powiązanej definicji schematu dla konkretnego dokumentu XML, MapForce generuje schemat XML na podstawie tego dokumentu.

[MapForce: Mapowanie danych XML do baz danych](https://www.altova.com/images/mapforce-database-mapping-xml.png)

### Obsługa symboli wieloznacznych w plikach XML {#wildcard}

Element `<xs:any>` oraz `<xs:anyAttribute>` w schemacie XML umożliwiają umieszczenie dowolnego nowego elementu lub atrybutu w odpowiednim miejscu w dokumencie instancji XML, nawet jeśli ten nowy element lub atrybut nie jest zdefiniowany w schemacie XML. Jest to znane jako "symbol wieloznaczny" w XML i jest popularnym mechanizmem, który pozwala na pewien stopień dostosowania w wielu schematach XML, obsługujących standardy branżowe w szerokim zakresie działalności.

MapForce obsługuje elementy `<xs:any>` i atrybuty `<xs:anyAttribute>`, umożliwiając mapowanie danych na wyjście w formacie XML lub w dowolnym innym formacie. Nowy przycisk wyboru, znajdujący się obok elementów `<xs:any>` lub `<xs:anyAttribute>` w komponencie wejściowym mapowania XML, otwiera okno dialogowe wyboru symboli wieloznacznych.

Element `<xs:any>`, a także `<xs:anyAttribute>`, są powszechnie używane w projektowaniu schematów XML, a wsparcie dla nich w MapForce było często żądane przez użytkowników.

Dowiedz się, jak konwertować dane z baz danych do formatu XML oraz innych formatów za pomocą programu MapForce

[Oto krótki przegląd procesu konwersji danych z baz danych do formatu XML w programie MapForce](https://www.youtube.com/watch?v=cBdfIjY-rbQ)

## Mapowanie bazy danych do formatu JSON

MapForce umożliwia definiowanie i wykonywanie mapowań baz danych opartych na modelach JSON (JavaScript Object Notation). Można dodać pliki instancji JSON lub schematy JSON jako elementy źródłowe lub docelowe w mapowaniu bazy danych. MapForce odczytuje i zapisuje pliki JSON zgodnie ze standardem JSON Draft 04.

Jak pokazano poniżej, komponenty JSON są wyświetlane z odpowiednią składnią elementów, a ich typy danych są wyraźnie wskazane.

[Konwertuj dane z bazy danych na format JSON w programie MapForce](https://www.altova.com/images/mapforce-database-mapping-json.png)

Funkcje przetwarzania danych z biblioteki funkcji MapForce mogą być wykorzystywane do transformacji danych JSON, dokładnie tak samo, jak są używane z innymi komponentami. 

### Automatyczne generowanie schematów JSON {#json-schema}

Po dodaniu pliku JSON lub JSON5 do mapowania bazy danych, MapForce automatycznie wykrywa, czy jest to plik schematu, czy plik instancji. W przypadku plików instancji JSON lub JSON5, MapForce wyświetli prośbę o wskazanie pliku schematu lub automatyczne wygenerowanie go. MapForce wykorzystuje schemat JSON lub JSON5 do budowy struktury komponentu.

## Integracja danych o wysokiej wydajności oraz automatyzacja procesów ETL

Altova [MapForce Server](../mapforce-server.md) zawiera wbudowany silnik transformacji danych, opracowany dla MapForce, który został znacznie ulepszony, aby działać w środowiskach serwerowych. Serwer MapForce umożliwia.. [przekształcenia danych](mapforce.md#powerful) dla dowolnej kombinacji formatów XML, PDF, baz danych, EDI, XBRL, plików tekstowych, Excela, JSON oraz/lub usług internetowych, wykorzystując wstępnie przetworzone i zoptymalizowane mapowania danych przechowywane w plikach wykonywalnych, w oparciu o.. [mapowania danych zdefiniowane w programie MapForce](mapforce.md) MapForce Server przenosi proces ETL danych na wyższy poziom, oferując funkcje serwerowe, takie jak przetwarzanie równoległe i wielowątkowe, masowe wstawianie danych do baz SQL, wsparcie dla różnych platform oraz wiele innych.

Przetwarzanie wstępne umożliwia szybszą pracę i zmniejsza zużycie pamięci dla większości mapowań danych. Serwer MapForce działa pod kontrolą serwera FlowForce, może być uruchamiany w trybie autonomicznym z linii poleceń lub programowo za pomocą interfejsu API.

Po zaprojektowaniu i przetestowaniu mapowania w MapForce, można uruchomić je za pomocą serwera MapForce, aby automatyzować procesy biznesowe, które wymagają powtarzalnych przekształceń danych.

[Automatyzacja zadań mapowania baz danych za pomocą narzędzia MapForce](https://www.altova.com/images/mapforce-server-execution-file.png)

MapForce wstępnie przetwarza i optymalizuje mapowania danych, przechowuje je w plikach wykonywalnych MapForce Server, które mogą być uruchamiane z linii komend za pomocą MapForce Server, oraz przesyła je do wykorzystania w zadaniach FlowForce Server.

Kiedy serwer MapForce działa pod kontrolą serwera FlowForce, mapowania danych i procesy ETL są wykonywane jako etapy zadań serwera FlowForce, w oparciu o wyzwalacze zdefiniowane w ramach zadania serwera FlowForce. Na przykład, nowy dokument instancji XBRL pojawia się w określonym katalogu, co uruchamia wieloetapowe zadanie serwera FlowForce. Zadanie to najpierw weryfikuje plik za pomocą serwera RaptorXML+XBRL, a następnie uruchamia serwer MapForce w celu wyodrębnienia określonych danych z formatu XBRL i wprowadzenia ich do bazy danych.

## Serwer MapForce obsługuje masowe wstawianie danych do baz danych

Funkcja "Bulk Insert" (masowe wstawianie) jest dostępna dla niektórych baz danych i umożliwia wstawienie dużej ilości danych do tabeli bazy danych za pomocą pojedynczego polecenia SQL, w przeciwieństwie do standardowej metody, która polega na używaniu oddzielnych poleceń INSERT dla każdego wiersza. Dzięki znacznemu zmniejszeniu obciążenia przetwarzania przez silnik bazy danych, wydajność jest znacznie wyższa. Testy MapForce Server z wykorzystaniem kilku przykładów wykazały, że funkcja Bulk Insert może być ponad 10 razy szybsza niż pojedyncze polecenia INSERT.

Metoda "bulk insert" jest również korzystna w środowiskach wieloużytkownikowych. Długa sekwencja poleceń "Insert" wysyłanych do bazy danych przez jednego użytkownika może zostać przerwana przez innego użytkownika, który wysyła zapytanie "Select" do tej samej tabeli. W takim przypadku sekwencja operacji "Insert" zostanie kontynuowana. W takiej sytuacji operacja "Select" może skutkować pobraniem niekompletnych lub nieprawidłowych danych.


## Call to Action

[Istniejący klienci mogą zaktualizować oprogramowanie do najnowszej wersji, korzystając z tej strony.](download.md)
[Pobierz teraz w pełni funkcjonalną, bezpłatną 30-dniową wersję próbną programu Altova MapForce!](download.md)

