데이터 매핑: 이진 객체 - 2부
이진 객체(BLOB)는 데이터베이스에서 관리하기가 번거로울 수 있습니다. 이전 게시글에서 우리는 MapForce를 사용하여 데이터를 매핑하는 방법에 대해 설명했습니다 데이터베이스에 이진 데이터를 삽입합니다 생성된 메타데이터를 활용하여 나중에 BLOB(Binary Large Object) 파일을 식별할 수 있습니다. 데이터 매핑에서 이진 객체를 다루는 또 다른 과제는 이진 데이터를 추출하여 원래 데이터의 의미를 최대한 보존하면서 이해하기 쉬운 형태로 저장하는 것입니다.
자, 이제 그 방법이 어떻게 적용되는지 살펴보겠습니다.

MapForce에 내장된 "write-binary-file" 함수는 데이터베이스에서 BLOB(Binary Large Object) 값을 추출하여 파일에 저장합니다. 이번에는 MapForce 온라인 도움말에 있는 예제를 확장하여 이전 게시글과 연관된 내용을 추가하겠습니다. 저희가 수정한 매핑 방식은 런타임에 제공되는 매개변수를 사용하여 데이터베이스에서 하나 이상의 이진 객체를 추출합니다.
원래 게시물의 사용 사례는 마케팅 부서에서 제품을 지원하는 다양한 바이너리 파일 자산을 관리하기 위한 SQLite 데이터베이스였습니다. 이 바이너리 데이터는 로고 이미지 파일, 제품 데이터 시트의 PDF 파일, 제품 사용 화면 캡처, 사진, 비디오 파일 등이 될 수 있습니다. 저희 데이터베이스 테이블에는 제품 정보, 자산 유형, 그리고 각 원본 파일 이름에 대한 메타데이터가 포함되어 있습니다.
데이터 매핑을 시작하기 위해, 먼저 데이터베이스를 새로운 매핑 환경으로 가져옵니다. 이번에는 매핑을 위해 특정 테이블을 선택하는 대신, 제품 및 자산 유형에 대한 메타데이터 필드를 기반으로 결과를 필터링하는 SQL SELECT 쿼리를 생성합니다. 이 SELECT 문은 하나 이상의 BLOB 데이터와 해당 원본 파일 이름을 반환합니다.

다음으로, 매핑 패널에서 "SELECT" 문을 클릭하면 매핑에 필요한 매개변수들이 표시됩니다

이제 각 개별 매개변수와 출력 결과가 확인 가능합니다

"삽입" 메뉴 또는 도구 모음의 아이콘을 사용하여 "삽입" 기능을 통해 설계 과정에서 테스트를 위한 특수 필드를 삽입할 수 있습니다. 이후 자동 실행 과정에서, 기본값을 변경하기 위해 새로운 매개변수 값을 제공할 수 있습니다.

입력 정의 대화 상자에서 디자인 시 기본값을 지정할 수 있지만, 저는 위에서 보듯이 기본값을 문자열 상수로 제공하는 것을 선호합니다. 이렇게 하면 대화 상자를 열지 않고도 기본값을 확인할 수 있으며, 테스트를 위해 값을 수정하는 것이 더 빠릅니다.
저희는 MapForce 도움말을 참고하여 진행하겠습니다 데이터 매핑을 위한 이진 객체 예시 SELECT 쿼리의 결과에 대한 매핑을 생성합니다. 완성된 매핑은 다음과 같습니다

매핑에서 강조 표시된 "write-binary-file" 함수는 데이터베이스에 저장된 바이너리 객체의 내용을, 사용자가 지정한 파일 경로("filepath" 입력)에 해당하는 파일로 저장합니다.
저희는 예제 매핑을 두 가지 개선 사항을 적용하여 수정했습니다. 기존 예제에서는 바이너리 파일의 파일 이름을 고정된 문자열 값으로 사용했지만, 저희는 데이터베이스에서 가져온 원래 파일 이름을 사용하도록 변경했습니다. 또한, 폴더 위치와 파일 이름을 결합할 수 있도록 "userPath"라는 추가 입력 객체를 제공했습니다.
이제 매핑 설정을 완료했으므로, 매핑 디자인 창 하단에 있는 "출력" 버튼을 클릭하여 매핑 결과를 테스트할 준비가 되었습니다. MapForce는 매핑 설정에 정의된 파라미터를 사용하여 쿼리를 실행하고, "출력" 창이 열립니다

첫 번째 출력 결과는 write-binary-file 함수에 연결된 메시지입니다. 오른쪽 화살표 아이콘을 클릭하면 두 번째 출력 결과가 나타납니다. 아래 그림은 ".png" 파일 결과를 윈도우 사진 뷰어로 열도록 설정한 후 "열기..." 버튼을 클릭했을 때 보이는 화면입니다.

제공된 입력 경로는 "C:\projects\objects"였으며, 데이터베이스에 저장된 파일 이름은 "diffdog_2021.png"였습니다. 사진 창에 표시되는 파일 이름인 "~mf95AE.png"는 출력 미리보기용으로 임의로 생성된 이름일 뿐입니다. 출력 메뉴에는 파일을 영구적으로 저장하는 옵션이 포함되어 있습니다

우리는 매개변수를 수정하고 다른 테스트를 시도할 수 있습니다. 이번에는 데이터베이스 내의 모든 항목과 일치하도록, 자산 매개변수에 SQLite의 와일드카드 문자를 사용할 것입니다

이번에는 "출력" 버튼을 클릭하면 여러 개의 이진 객체가 검색됩니다

이진 파일 검색 결과에서 확인해 보면, 데이터시트가 PDF 파일로, 스크린샷이 .png 이미지 파일로, 그리고 로고 또한 .png 파일로 제공되고 있습니다

데이터 매핑을 자동화하여 이진 객체를 처리합니다
저희의 활용 사례 요구 사항을 확장하기 위해, 모든 팀 구성원이 필요에 따라 데이터베이스에서 제품 관련 자료를 검색할 수 있도록 해야 한다고 가정해 보겠습니다. MapForce Server는 MapForce에서 설계된 최적화된 데이터 매핑을 기반으로 자동 데이터 변환을 수행합니다.
MapForce Server의 한 복사본을 네트워크 서버에 설치하고 여러 사용자가 접근할 수 있도록 설정할 수 있습니다. 그런 다음, MapForce의 출력 메뉴에서 데이터 매핑을 MapForce Server 실행 파일(.mfx)로 저장하기만 하면 됩니다. 파일 이름은 "extract-product-assets-from-DB.mfx"로 지정하겠습니다.

데이터 매핑은 인증된 사용자가 명령줄을 통해 실행할 수 있습니다. 매핑 과정에서 "제품", "자산", "사용자 경로"라는 입력 구성 요소에 대한 매개변수는 명령 실행 시에 동적으로 할당됩니다. 또한, 사용자가 필요에 따라 수정하고 실행할 수 있는 배치 파일 내에 샘플 명령줄을 만들어 제공할 수도 있습니다

각 매개변수에 대한 가능한 값 목록에 편집 지침이 포함된 설명을 추가하는 것은 간단한 작업일 것입니다.
더욱 자동화된 생산을 위해, MapForce의 매핑 설정을 FlowForce 서버에 배포할 수 있습니다 다양한 조건에 따라 실행됩니다. 자, 이제 여러분의 데이터 매핑, 변환, 그리고 데이터 처리 프로젝트를 시작해 볼까요 무료 체험판을 다운로드하세요 튜토리얼, 도움말, 그리고 훨씬 더 많은 예제들을 포함합니다!