프로토콜 버퍼(Protobuf) 변환 및 데이터 형식 변경

MapForce는 프로토콜 버퍼(Protobuf)를 다른 구조화된 데이터 형식으로 변환하거나, 반대로 다른 구조화된 데이터 형식을 프로토콜 버퍼로 변환하는 기능을 지원합니다 소스 또는 대상 매핑. 구글은 대규모 정형 데이터 세트를 보다 효율적으로 전송, 처리 및 관리할 수 있는 방법을 끊임없이 연구해 왔습니다. 그 결과, XML과 유사하지만 JSON 데이터보다 작고, 빠르며, 간단한 데이터 형식을 개발했습니다. 이 데이터 형식인 Protobuf는 Java, Python, C++, C#, Ruby 등 다양한 프로그래밍 언어를 사용하여 생성하고 활용할 수 있는 도구를 제공합니다.

어떤 Protobuf 메시지의 구조는 ".proto" 파일에 정의되어 있으며, 이 파일은 각 필드의 이름과 값의 유형을 정의합니다. Altova MapForce를 사용하면 사용자가 ".proto" 파일을 데이터 매핑에서 소스 또는 대상으로 사용할 수 있으며, XML, JSON, 관계형 데이터베이스, Excel, 일반 텍스트 파일, REST 및 SOAP 웹 서비스 등 다른 데이터와 함께 사용할 수 있습니다. ".proto" 파일의 버전 2와 3을 지원합니다.

MapForce 데이터 매핑은 기존의 XML, JSON, 데이터베이스 또는 레거시 데이터 형식과 새로운 애플리케이션 간의 호환성을 구축하며, Protobuf의 효율성을 활용합니다.

Protobuf 파일을 변환하고 변경하려면, 먼저 "삽입" 메뉴를 사용하거나 빠른 실행 도구 모음의 버튼을 클릭하여 .proto 파일을 매핑에 추가하십시오.

MapForce에는 프로토콜 버퍼(Protobuf) 데이터 매핑의 예시가 포함되어 있으며, 이는 아래에 제시되어 있습니다

.proto 파일은 출력 대상으로 사용되며, 온라인 문서에 설명된 "Persons" 연락처 목록 예제와 일치합니다. 원본 데이터는 많은 추가 요소들을 포함하는 XML 파일이며, 이 Protobuf 스트림에서는 불필요한 요소들이 포함되어 있습니다. 데이터 매핑을 실행하면, 필요한 요소들만 XML 파일에서 추출하여 출력 스트림을 생성합니다.

참고로, Protobuf 출력 파일의 형식은 BLOB(Binary Large Object, 이진 대용량 객체)입니다. MapForce는 개발자가 Java, C++ 또는 다른 어떤 언어로도 소스 코드를 생성하거나 컴파일 및 실행하지 않고도, Protobuf 데이터 스트림을 생성하거나 Protobuf 입력 데이터를 읽을 수 있도록 지원합니다. 이를 통해 새로운 .proto 파일을 기반으로 각 Protobuf 바이너리에 대한 코드를 생성하고 실행할 필요가 없습니다.

변환된 데이터를 확인하세요

메인 MapForce 데이터 매핑 창 하단에 있는 "출력" 버튼을 클릭하면 매핑 작업이 실행되며, 이때 "Altova_Hierarchical.xml" 파일이 데이터 소스로 사용됩니다. 결과적으로 생성된 데이터 스트림은 출력 미리보기 창에 JSON 형식과 유사한 방식으로 표시됩니다

특정 작업에 필요한 경우, MapForce 사용자는 "출력" 메뉴에서 제공되는 옵션을 통해 바이너리 파일을 저장할 수 있습니다

다음은 일반적인 16진수 뷰어 도구에 표시되는 실제 생성된 바이너리 데이터의 일부입니다

Protobuf 스트림의 효율성은 이진 데이터에서 명확하게 드러납니다. XML이나 JSON에서 사용되는 요소 이름에 따른 불필요한 정보와 함께, 사람이 읽기 쉽도록 포함되는 공백, 탭, 괄호, 그리고 기타 문자들도 제거됩니다.

맵(Map) 및 변환(Transform) 프로토콜 버퍼

Protobuf 스트림을 받는 경우, 이를 내부 기업 데이터 형식에 맞게 변환할 수 있습니다. 아래 그림은 데이터베이스에 대한 변환 예시를 보여줍니다

이 매핑 기능은 여러 데이터 처리 변환 함수를 사용하여 입력되는 이진 데이터를 기존 데이터베이스 테이블의 구조에 맞게 변환합니다. MapForce는 모든 주요 관계형 데이터베이스 및 NoSQL 데이터베이스와의 데이터 매핑을 지원합니다. 전체 목록을 보려면 [여기를 클릭하세요](여기를 클릭하세요).

이 매핑 작업의 결과는 바이너리 데이터로부터 데이터베이스에 데이터를 삽입하는 SQL 스크립트입니다

스크립트 실행이 완료되면, DatabaseSpy라는 Altova사의 도구를 사용하여 데이터베이스 내용을 확인할 수 있습니다 SQL 편집기:

자동 실행

제작 과정에서는 다음과 같은 요소들이 필요할 수 있습니다 데이터 매핑 작업의 반복 실행 동일한 .proto 정의를 기반으로 새로운 데이터 스트림을 생성하되, 서로 다른 소스 데이터를 사용합니다. 위 첫 번째 예시에서, 다른 XML 인스턴스 문서를 사용할 수 있습니다. 데이터베이스 또는 REST 웹 서비스에서 Protobuf로의 데이터 매핑은 업데이트된 소스 데이터를 포함하기 위해 정기적인 일정으로 실행될 수 있습니다.

반복적인 실행이 필요한 경우, 또는 이와 유사한 경우, MapForce 사용자는 간단한 메뉴 선택을 통해 데이터 매핑을 MapForce 서버 실행 파일로 저장할 수 있습니다

실행 파일은 서버 환경에서 실행될 수 있도록 데이터를 처리하는 데 필요한 입력, 출력, 그리고 중간 처리 단계(정렬, 필터링, 사용자 정의 함수 등)를 정의합니다. MapForce Server는 이러한 컴파일된 데이터 매핑을 명령줄 인터페이스 또는 API 인터페이스를 통해 자동으로 실행합니다.

MapForce Server는 기업의 요구사항에 따라 FlowForce Server, RaptorXML Server 또는 StyleVision Server와 함께 구성될 수 있습니다. MapForce Server가 FlowForce Server의 관리 하에 운영될 때, 데이터 매핑 작업은 FlowForce Server의 작업 단계로 실행되며, 특정 시간 또는 시간 간격에 따라, 또는 모니터링 폴더에 새로운 파일이 도착하는 것과 같은 이벤트에 따라 트리거될 수 있습니다.

Protobuf 데이터 매핑에서 데이터 소스가 데이터베이스 쿼리 또는 REST 요청인 경우, 해당 쿼리는 매핑 과정의 일부로 실행됩니다. 입력 데이터가 JSON 또는 XML 문서와 같은 파일인 경우, 해당 파일은 런타임 시 FlowForce 작업의 파라미터로 지정됩니다.

지금 바로 완전한 기능을 갖춘 MapForce 무료 체험 버전을 통해 이를 직접 사용해 보실 수 있습니다.