---
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/ja/category/database-sql.md) | [data-integration](/blog/ja/category/data-integration.md) | [json](/blog/ja/category/json.md)
# NoSQLデータベースにおけるデータマッピング

NoSQLデータベースは、従来のデータベースのように関係性のあるテーブルで構成されるのではなく、異なる方法でデータを格納するデータベースです。最も人気のあるNoSQLデータベースであるMongoDBとApache CouchDBは、データをBSON（バイナリJSON）やJSON形式のドキュメントの集合として保存します。これらのデータベースは、柔軟なJSONスキーマを活用し、大量のデータや高いユーザーアクセス数に対しても容易に拡張できます。

Altova MapForceは、長年にわたり以下の機能を提供しています [データマッピング](https://www.altova.com/ja/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データ（BSON）を格納します。MapForceの関数ライブラリには、BSONデータを操作するための組み込み関数が用意されています

[![MapForceには、BSONデータを操作するための組み込み機能が備わっています](/blog/images/bson-functions.png)](bson-functions.png)

データベースには、Gmail、Hotmail、Yahooなどのメールアドレスが顧客プロファイルに登録されている場合がありますが、今回のプロジェクトでは、Yahoo.comのメールアドレスを持つ顧客の情報のみを抽出する必要があります。NoSQLデータベースには、メールアドレスをフィルタリングするためのSQLのSELECT/WHEREクエリは存在しません。そこで、BSONの正規表現関数と、MapForceに組み込まれた条件指定/並び替え機能とを組み合わせることで、同様の結果を得ることができます

[![NoSQLデータベースのデータをフィルタリングするための仕組みを構築する](/blog/images/bson-function-use.png)](bson-function-use.png)

MapForceの「Where / Order Sort」機能は、プロジェクトの別の要件も満たします。それは、出力結果を顧客の生年月日順に並べ替える機能です。

[![MapForceにおける「条件分岐/順序」構造のプロパティダイアログ](/blog/images/where-order-structure.png)](where-order-structure.png)

BSON形式は、JSON形式の文字列や数値データに加えて、より多様なデータ形式をサポートしています。MapForceは、BSON形式の日付データを、最終的な出力のために、日付フォーマット関数が処理できるよう、自動的に文字列に変換します。

[![MapForceは、BSONデータ形式を自動的に文字列に変換します](/blog/images/cast-birthdate-1.png)](cast-birthdate-1.png)

MapForceのWhere句や並べ替え機能と、その他のMapForceに組み込まれた関数を組み合わせることで、トランザクションデータの中から「購入」に関するトランザクションのみを抽出し、それらをグループ化・並べ替えた上で、顧客データと紐付けて出力します。

[![NoSQLデータベースにおけるデータマッピングのための、追加の結合、フィルタリング、およびソート機能](/blog/images/join-and-filter-1-1030x236.png)](join-and-filter-1.png)

出力ファイルには、yahoo.comのメールアドレスを持つすべての顧客の情報が含まれており、それぞれの顧客のアカウントごとに購入注文がまとめられています。さらに、出力ファイルには、顧客が生まれた日の順に（最も若い順から最も年配の順に）リストアップされています。以下は、人気のあるツールであるXMLSpyで表示されるJSON出力の一部です [JSONおよびXMLデータの編集、モデリング、変換、およびデバッグ](https://www.altova.com/ja/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/ja/mapforce-server) MapForceで設計されています

MapForceは、NoSQLデータベースのデータを、XML、JSON、データベース、EDI、XBRL、テキストファイル、Excel、またはWebサービスなど、様々な形式に変換するための強力なデータマッピングツールです。ご自身のNoSQLデータマッピングアプリケーションで試してみたい場合は、以下のリンクからダウンロードしてください [完全に機能する無料トライアル版](https://www.altova.com/ja/download-trial.html) 本日！
