数据映射:NoSQL数据库

NoSQL数据库是非关系型数据库,它们以与传统关系型数据库不同的方式存储数据。MongoDB和Apache CouchDB是两种最受欢迎的NoSQL数据库,它们将数据存储为BSON(二进制JSON)和JSON文档的集合。这些数据库利用灵活的JSON数据结构,并且能够轻松地处理大量数据和高用户负载。

Altova MapForce 一直以来都支持 数据映射 它支持所有主流的关系型数据库,并且现在还提供了对非关系型数据库(NoSQL)的原生支持。MapForce 提供了插入、提取、过滤和排序 NoSQL 数据的功能。下面我们来看一个例子。

以下展示了从 NoSQL MongoDB 数据库中的 "sample_analytics" 数据库的完整数据映射。该映射从多个集合中提取一部分二进制 JSON (BSON) 数据,然后对这些数据进行合并、过滤、转换和排序,最后将结果导出为一个单独的 JSON 文档。

sample_analytics NoSQL数据库是一个示例,它托管在公开可访问的MongoDB Atlas云服务器上,用于存储一个模拟金融服务应用程序的训练数据。该数据库包含针对500名客户、1746个账户以及1746笔买卖交易的BSON文档集合。

在 MapForce 中,对 NoSQL 数据库进行数据映射的步骤首先是从“插入数据库连接”向导中选择 NoSQL 数据库,并输入连接参数。接下来,您可以选择要进行映射的集合:

每个集合都需要一个 JSON 模式来映射其对象。这个模式可以存储在数据库中用于验证,也可以是一个外部文件。

以下是客户和交易数据集合的详细视图,这些数据已准备好在 MapForce 中进行 NoSQL 数据映射

在提供 JSON Schema 或示例 JSON 文件来定义输出格式后,我们就可以开始将数据库中的对象与输出进行关联。MongoDB NoSQL 数据库存储的是二进制 JSON 数据。MapForce 函数库包含内置函数,用于处理 BSON 数据:

该数据库包含客户信息,其中一些客户的资料中包含gmail、hotmail和yahoo邮箱地址。但我们的数据映射项目需要提取的是仅包含yahoo.com邮箱地址的客户信息。显然,在NoSQL数据库中,没有类似于SQL的Select/Where查询语句来过滤邮箱地址。因此,我们可以将BSON的to-regex函数与MapForce内置的Where/Order结构结合使用,以达到相同的效果:

MapForce中的“Where/排序”选项还可以满足另一个项目需求,即在输出结果中按照客户的出生日期进行排序。

BSON 格式支持比 JSON 字符串或数值类型更多的数据格式。MapForce 会自动将 BSON 格式中的日期转换为字符串,以便“格式化日期”函数对其进行处理,从而生成最终输出。

结合 MapForce 的 "Where" 和 "Order" 结构以及其他 MapForce 内置函数,可以筛选交易数据,只输出“买入”交易,并将分组和排序后的交易数据与客户数据中的相关信息进行关联。

输出文件包含所有使用 yahoo.com 邮箱地址的客户,并按账户对该客户的购买订单进行分组。此外,输出文件按照出生日期对客户进行排序,从最年轻到最年长。以下是在 XMLSpy 中显示的 JSON 输出文件的一部分,XMLSpy 是一款流行的工具 编辑、建模、转换和调试 JSON 以及 XML 数据 技术:

用户按照出生日期降序排列,每个账户的购买交易则按照输出结果中JSON“name”对象的字母顺序排列。

如果您需要定期重复处理以收集最新的交易数据,MapForce Server 可以为您提供支持 自动执行数据映射过程 采用 MapForce 设计

MapForce 是一款强大的数据映射工具,可将 NoSQL 数据库的数据映射到或从以下任何一种格式:XML、JSON、数据库、EDI、XBRL、纯文本文件、Excel 以及/或 Web 服务。 想要体验它在您自己的 NoSQL 数据映射应用中的效果,请立即下载一个完全功能、免费试用版