---
title: "Przekształcanie i konwertowanie danych w formacie Protobuf"
date: "2022-02-10"
categories: 
  - "data-integration"
  - "database"
  - "json"
  - "protocol-buffers"
  - "xml"
tags: 
  - "data-integration"
  - "data-mapping"
  - "flowforce-server"
  - "mapforce"
  - "mapforce-server"
description: Odkryj, jak efektywnie mapować i przekształcać dane w formacie Protocol Buffers (Protobuf) za pomocą programu Altova MapForce, integrując go z formatami XML, JSON oraz bazami danych, aby usprawnić zarządzanie danymi.
---
Status: #blog

Tags:  #data-integration #data-mapping #flowforce-server #mapforce #mapforce-server

Categories: [data-integration](/blog/pl/category/data-integration.md) | [database + sql](/blog/pl/category/database-sql.md) | [json](/blog/pl/category/json.md) | [data-integration](/blog/pl/category/data-integration.md) | [xml](/blog/pl/category/xml.md)
# Przekształcanie i konwertowanie danych w formacie Protobuf

MapForce obsługuje konwersję protokołów buforów (Protobuf) do i z innych formatów danych, takich jak [mapowanie źródeł lub celów](https://www.altova.com/pl/mapforce). W nieustannym dążeniu do bardziej efektywnych sposobów przesyłania, przetwarzania i zarządzania dużymi zbiorami danych, Google stworzyło format danych, który jest niezależny od języka programowania i platformy. Format ten, podobny do XML, jest jednak mniejszy, szybszy i prostszy niż nawet dane w formacie JSON. Dostępne są narzędzia do generowania i przetwarzania danych w formacie Protobuf, wykorzystujące języki Java, Python, C++, C#, Ruby i inne.

Struktura każdego komunikatu Protobuf jest zdefiniowana w pliku .proto, który określa nazwę i typ danych każdego pola. Program Altova MapForce umożliwia użytkownikom dodawanie tych plików .proto do mapowania danych jako źródło lub cel, wraz z innymi danymi, takimi jak XML, JSON, bazy danych relacyjnych, arkusze kalkulacyjne Excel, pliki tekstowe, usługi internetowe REST i SOAP oraz inne. Obsługiwane są wersje 2 i 3 plików .proto.

MapForce umożliwia mapowanie danych, co zapewnia kompatybilność między istniejącymi formatami danych, takimi jak XML, JSON, bazy danych lub starsze formaty, a nowymi aplikacjami, wykorzystującymi wydajność Protobuf.

[![](/blog/images/shutterstock_59314045.jpg)](shutterstock_59314045.jpg)

<!--more-->

Aby rozpocząć konwersję i transformację danych w formacie Protobuf, wystarczy użyć menu "Wstaw" lub przycisku szybkiego dostępu, aby wstawić plik .proto do konfiguracji.

[![Mapowanie danych za pomocą protokołów buforów w programie Altova MapForce](/blog/images/insert-new.png)](insert-new.png)

MapForce zawiera przykład mapowania danych w formacie Protobuf, który jest przedstawiony poniżej:

[![Przykład protokołu mapowania danych w formacie Protocol Buffers w programie MapForce](/blog/images/protocol-buffers-data-mapping.png)](protocol-buffers-data-mapping.png)

Plik .proto, który jest używany jako docelowy plik wyjściowy, odpowiada przykładowi opisanemu w dokumentacji online dla listy kontaktów "Osoby". Dane źródłowe to plik XML zawierający wiele dodatkowych elementów, które nie są potrzebne do tego strumienia danych Protobuf. Podczas wykonywania mapowania danych, niezbędne elementy są wyodrębniane z pliku XML w celu utworzenia strumienia wyjściowego.

Należy pamiętać, że format pliku dla wyjściowego strumienia danych Protobuf to BLOB, czyli Binary Large Object (duży obiekt binarny). MapForce umożliwia programistom tworzenie strumieni danych Protobuf lub odczytywanie danych wejściowych Protobuf, bez generowania kodu źródłowego w Javie, C++ lub jakimkolwiek innym języku, a następnie kompilowania i uruchamiania kodu dla każdego pliku binarnego Protobuf na podstawie nowego pliku .proto.

### Wyświetl przetworzone dane 

Kliknięcie przycisku "Wyjście" znajdującego się na dole głównego okna mapowania danych MapForce uruchamia proces mapowania, wykorzystując plik Altova_Hierarchical.xml jako źródło danych. Wynikowy strumień danych jest otwierany w oknie podglądu wyjściowego, prezentując dane w formacie przypominającym JSON:

[![Podgląd wyników mapowania danych w formacie Protocol Buffers](/blog/images/output-preview.png)](output-preview.png)

Dla jednorazowych zadań, użytkownicy MapForce mogą zapisać plik binarny za pomocą opcji dostępnej w menu "Wyjście":

[![Zapisz dane binarne wygenerowane przez protokoły mapowania danych](/blog/images/data-mapping-save-output.png)](data-mapping-save-output.png)

Poniżej znajduje się fragment danych binarnych, które zostały wygenerowane, wyświetlony w popularnym narzędziu do przeglądania danych w formacie szesnastkowym:

[![Wyświetlanie danych binarnych wygenerowanych na podstawie protokołów mapowania danych](/blog/images/protocol-buffers-binary-view.png)](protocol-buffers-binary-view.png)

Efektywność strumienia Protobuf jest widoczna w danych binarnych. Znikają wszystkie dodatkowe informacje charakterystyczne dla formatów XML lub JSON, takie jak nazwy elementów, a także spacje, tabulatory, nawiasy i inne znaki, które zwykle są dodawane w celu zapewnienia czytelności dla ludzi.

### Mapowanie i transformacja danych Protobuf 

Jeśli otrzymujesz strumień danych w formacie Protobuf, możesz go przekształcić do wewnętrznego formatu danych używanego w Twojej firmie. Poniższy obrazek przedstawia przykład mapowania do bazy danych:

[![Mapowanie danych protokołu bufora, w którym protokoł bufora jest źródłem, a celem jest tabela bazy danych.](/blog/images/protobuf-source-mapping.png)](protobuf-source-mapping.png)

Mapowanie wykorzystuje szereg funkcji konwersji przetwarzania danych, aby przekształcić przychodzące dane binarne i dopasować je do struktury istniejącej tabeli bazy danych. MapForce obsługuje mapowanie danych do i z popularnych baz danych relacyjnych oraz baz danych NoSQL. Kliknij tutaj, aby [zobaczyć pełną listę](https://www.altova.com/pl/mapforce#db_mapping).

Wynikiem tego procesu mapowania jest skrypt SQL, który służy do wstawiania danych z formatu binarnego do bazy danych

[![Skrypt SQL jako wynik mapowania danych z formatu protobuf do bazy danych.](/blog/images/db-insert-script.png)](db-insert-script.png)

Po wykonaniu skryptu, możemy zweryfikować zawartość bazy danych za pomocą narzędzia DatabaseSpy, firmy Altova [Edytor SQL](https://www.altova.com/pl/databasespy):

[![Zawartość tabeli po wykonaniu mapowania danych z formatu protobuf do bazy danych.](/blog/images/table-contents.png)](table-contents.png)

### Automatyczne wykonywanie

Przepływy pracy produkcyjnej mogą wymagać [wielokrotnego wykonywania operacji mapowania danych](https://www.altova.com/pl/mapforce-server) w celu generowania nowych strumieni danych na podstawie tej samej definicji .proto, ale przy użyciu różnych danych źródłowych. W pierwszym podanym przykładzie można dostarczyć inny dokument instancji XML. Mapowanie danych z bazy danych lub z usługi REST do formatu Protobuf może wymagać regularnego wykonywania, aby uwzględniać zaktualizowane dane źródłowe.

W takich lub podobnych sytuacjach, gdy wymagane jest wielokrotne uruchomienie, użytkownicy MapForce mogą zapisać mapowanie danych jako plik wykonywalny [MapForce Server](https://www.altova.com/pl/mapforce-server) za pomocą prostej opcji w menu:

[![Plik wykonywalny serwera MapForce dla protokołów mapowania danych](/blog/images/MapForce-Server-execution-file.png)](MapForce-Server-execution-file.png)

Plik wykonywalny definiuje dane wejściowe, dane wyjściowe oraz wszelkie pośrednie etapy przetwarzania, które muszą być zastosowane do danych (w tym sortowanie, filtrowanie, funkcje niestandardowe lub inne) w sposób zoptymalizowany do działania w środowisku serwerowym. Serwer MapForce automatyzuje wykonywanie tych skompilowanych mapowań danych za pomocą interfejsu wiersza poleceń lub interfejsu API.

Serwer MapForce można również skonfigurować w połączeniu z serwerami FlowForce, RaptorXML lub StyleVision, w zależności od potrzeb przedsiębiorstwa. Kiedy serwer MapForce działa pod kontrolą serwera FlowForce, mapowania danych są wykonywane jako etapy zadań serwera FlowForce, które mogą być uruchamiane o określonej godzinie lub w określonych odstępach czasu, lub w odpowiedzi na zdarzenie, takie jak pojawienie się nowego pliku w monitorowanym folderze.

W przypadku mapowań danych Protobuf, gdzie źródłem jest zapytanie do bazy danych lub żądanie REST, zapytanie jest wykonywane jako część procesu mapowania. Kiedy źródłem jest plik, taki jak dokument JSON lub XML, nowy plik jest określany jako parametr zadania FlowForce w czasie jego uruchamiania.

Można to teraz przetestować, korzystając z [W pełni funkcjonalna wersja próbowa programu MapForce](https://www.altova.com/pl/mapforce/download).
