---
title: 데이터 매핑 – NoSQL 데이터베이스
date: 2021-11-26
categories:
  - database
  - database-mapping
  - json
tags:
  - data-conversion
  - mapforce
  - nosql-data-mapping
  - nosql-databases
description: MapForce는 NoSQL 데이터베이스의 데이터 매핑 및 변환을 지원하며, 데이터를 삽입, 추출, 필터링 및 정렬하는 기능을 제공합니다.
---
Status: #blog

Tags:  #data-conversion #mapforce #nosql-data-mapping #nosql-databases

Categories: [database + sql](/blog/ko/category/database-sql.md) | [data-integration](/blog/ko/category/data-integration.md) | [json](/blog/ko/category/json.md)
# 데이터 매핑: NoSQL 데이터베이스

NoSQL 데이터베이스는 관계형 테이블로 구성된 기존 데이터베이스와 달리 데이터를 다른 방식으로 저장하는 데이터베이스입니다. 가장 인기 있는 NoSQL 데이터베이스 중 두 가지인 MongoDB와 Apache CouchDB는 데이터를 BSON(이진 JSON) 및 JSON 문서의 집합으로 저장합니다. 이러한 데이터베이스는 유연한 JSON 스키마를 활용하며, 대량의 데이터와 높은 사용자 트래픽에도 쉽게 확장할 수 있습니다.

Altova MapForce는 오랫동안 다양한 관계형 데이터베이스에 대한 [데이터 매핑](https://www.altova.com/ko/mapforce) 기능을 지원해 왔으며, 이제는 NoSQL 데이터베이스에 대한 기본 지원 기능도 제공합니다. MapForce는 NoSQL 데이터를 삽입, 추출, 필터링 및 정렬하는 기능을 포함하고 있습니다. 예시를 통해 자세히 살펴보겠습니다.

![](/blog/images/cbcr_blog_2.jpg)

<!--more-->

아래는 NoSQL MongoDB의 "sample_analytics" 데이터베이스에서 추출된 전체 데이터 매핑 정보입니다. 이 매핑은 여러 컬렉션에서 일부 이진 JSON (BSON) 데이터를 추출하고, 추출된 데이터를 결합, 필터링, 변환 및 정렬한 후, 최종 결과를 하나의 JSON 문서 형태로 내보냅니다.

[![NoSQL 데이터베이스와 JSON 간의 데이터 매핑 예시](/blog/images/complete-NoSQL-JSON-mapping-1-1030x624.png)](complete-NoSQL-JSON-mapping-1.png)

sample_analytics NoSQL 데이터베이스는 공개적으로 접근 가능한 MongoDB Atlas 클라우드 서버에 호스팅되어 있으며, 가상의 금융 서비스 애플리케이션을 위한 학습 데이터를 저장합니다. 이 데이터베이스에는 500명의 고객, 1,746개의 계정, 그리고 1,746건의 매수 또는 매도 거래에 대한 BSON 문서 컬렉션이 포함되어 있습니다.

MapForce에서 NoSQL 데이터베이스를 매핑하는 과정은 먼저 MapForce의 "데이터베이스 연결 추가 마법사"를 사용하여 NoSQL 데이터베이스를 선택하고 연결 정보를 입력하는 것으로 시작됩니다. 그 다음, 매핑할 컬렉션을 선택할 수 있습니다

[![NoSQL 데이터베이스에서 데이터 매핑을 위한 컬렉션을 선택합니다](/blog/images/insert-database.png)](insert-database.png)

각 컬렉션은 객체를 매핑하기 위한 JSON 스키마를 필요로 합니다. 이 스키마는 데이터베이스에 저장되어 유효성 검사를 위해 사용될 수도 있고, 외부 파일로 존재할 수도 있습니다.

[![데이터 매핑을 위해 컬렉션에 JSON 스키마를 할당합니다](/blog/images/assign-schema.png)](assign-schema.png)

다음은 MapForce에서 NoSQL 데이터 매핑을 위해 준비된 "고객" 및 "거래" 컬렉션에 포함된 객체들의 상세 정보입니다

[![NoSQL 데이터베이스 컬렉션의 모습 (데이터 매핑 준비 상태)](/blog/images/NoSQL-source.png)](NoSQL-source.png)

JSON 스키마 또는 예시 JSON 파일을 출력 대상에 지정한 후, 이제 데이터베이스 내의 객체들을 출력 결과와 연결하는 작업을 시작할 준비가 되었습니다. MongoDB NoSQL 데이터베이스는 바이너리 JSON 데이터를 저장합니다. MapForce 함수 라이브러리에는 BSON 데이터를 처리하기 위한 내장 함수들이 포함되어 있습니다

[![MapForce는 BSON 데이터를 처리하기 위한 내장 기능을 제공합니다](/blog/images/bson-functions.png)](bson-functions.png)

데이터베이스에는 Gmail, Hotmail, Yahoo 등 다양한 이메일 주소를 가진 고객 정보가 포함되어 있지만, 저희의 매핑 프로젝트는 Yahoo.com 주소를 가진 고객 정보만 추출하는 것을 목표로 합니다. 당연히 NoSQL 데이터베이스에서는 이메일 주소를 필터링하기 위한 SQL Select/Where 쿼리가 존재하지 않습니다. 따라서, 대신 BSON의 to-regex 함수와 MapForce의 내장된 Where/Order 구조를 결합하여 동일한 결과를 얻을 수 있습니다

[![NoSQL 데이터에 대한 필터를 만드는 방법](/blog/images/bson-function-use.png)](bson-function-use.png)

MapForce의 "Where / Order Sort" 옵션은 또 다른 프로젝트 요구 사항을 충족합니다. 즉, 출력 결과에서 고객을 생년월일 순으로 정렬하는 기능입니다.

[![MapForce에서 "Where" 및 "Order" 구조를 설정하는 데 사용되는 속성 대화 상자](/blog/images/where-order-structure.png)](where-order-structure.png)

BSON 형식은 JSON 문자열이나 숫자 형식보다 더 다양한 데이터 형식을 지원합니다. MapForce는 BSON 형식의 날짜 데이터를 최종 출력 시 "format-date" 함수를 통해 처리하기 위해 자동으로 문자열 형식으로 변환합니다.

[![MapForce는 BSON 데이터 형식을 자동으로 문자열로 변환합니다](/blog/images/cast-birthdate-1.png)](cast-birthdate-1.png)

MapForce의 "Where" 및 "Order" 기능을 다른 MapForce 내장 함수와 함께 사용하면, 거래 데이터 목록에서 "구매" 거래만 필터링하여 추출하고, 추출된 거래 데이터를 그룹화 및 정렬한 후 고객 데이터 목록의 프로필과 연결합니다.

[![NoSQL 데이터베이스의 데이터 매핑을 위한 추가적인 조인, 필터링 및 정렬 옵션](/blog/images/join-and-filter-1-1030x236.png)](join-and-filter-1.png)

생성되는 파일에는 yahoo.com 이메일 주소를 가진 모든 고객 정보가 포함되어 있으며, 각 고객의 계정별 구매 주문 내역이 정리되어 있습니다. 또한, 해당 파일은 고객 정보를 나이순으로 (가장 어린 순서부터) 정렬하여 목록으로 제공합니다. 다음은 인기 있는 XML 편집 도구인 XMLSpy에서 생성된 JSON 출력의 일부입니다 [JSON 및 XML 데이터의 편집, 모델링, 변환 및 디버깅](https://www.altova.com/ko/xmlspy-xml-editor) 기술:

[![XMLSpy의 그리드 보기에서 NoSQL 데이터 매핑 결과 파일의 일부를 보여줍니다](/blog/images/json-output-sample-4.png)](json-output-sample-4.png)

사용자 목록은 생년월일 순으로 내림차순으로 표시되며, 각 계정에 대한 구매 내역은 출력 결과의 JSON 객체 내 "name" 필드를 기준으로 알파벳 순서대로 정렬됩니다.

최신 거래 데이터를 주기적으로 수집하기 위해 반복적인 처리가 필요한 경우, MapForce Server를 사용하면 됩니다 [데이터 매핑 작업을 자동화합니다](https://www.altova.com/ko/mapforce-server) MapForce에서 디자인됨

MapForce는 강력한 데이터 매핑 도구로, NoSQL 데이터베이스의 데이터를 XML, JSON, 데이터베이스, EDI, XBRL, 일반 파일, 엑셀, 그리고 웹 서비스 등 다양한 형식으로 변환하거나, 반대로 이러한 형식의 데이터를 NoSQL 데이터베이스에 매핑할 수 있습니다. MapForce를 직접 사용해보고 싶으시다면, 지금 바로 [완전한 기능을 갖춘 무료 체험판](https://www.altova.com/ko/download-trial.html)을 다운로드하여 사용해 보세요!
