MapForce 是一款强大的数据集成和 ETL 工具,它对数据库转换提供了强大的支持。您可以将各种数据库数据转换为 XML、JSON、PDF、CSV 等各种格式的文件,以及 EDI、Excel、protobuf、XBRL、Web 服务、Shopify/GraphQL,甚至其他数据库格式。
当您在设计窗口加载数据库结构时,MapForce 会自动解析数据库模式,让您选择可用的数据库表和视图,并识别表之间的关系。 这样,您就可以直观地查看数据库结构。
一旦您已加载数据库映射所需的所有内容模型,只需通过拖动连接线,将源结构和目标结构连接起来,即可完成映射过程。
支持的关系型数据库:
支持。 NoSQL 数据库:
MapForce 支持所有主流的关系型数据库,以及流行的 NoSQL 数据库,让您能够创建图形化的数据库映射设计,连接数据库源数据、数据处理函数和过滤器,以及各种类型的数据结构。这使得它能够支持常见的数据库迁移场景,例如 从 MySQL 迁移到 PostgreSQL,以及无数其他可能性,包括一对多以及链式数据转换。
MapForce 包含强大的 ETL 工具,可用于将数据写入 SQL 和 NoSQL 数据库。 这不仅包括将 XML、JSON、Shopify/GraphQL 以及其他数据格式转换为数据库,还包括将数据从一种数据库类型转换为另一种数据库类型,例如在企业合并、收购或系统迁移之后。
一旦您完成了映射配置,内置的 MapForce 引擎允许您只需点击一下即可查看和保存结果。
数据库到XML的映射会生成一个XML输出文档;数据库到纯文本文件的映射会生成CSV格式或固定长度的文本文件;数据库到EDI的映射可以生成EDIFACT、X12或HL7消息;数据库到.. Excel 生成 Office Open XML (OOXML) 格式的文档,并将其映射到 XBRL 格式,从而生成 XBRL 格式的财务报告。
将数据映射到数据库会生成SQL脚本(例如,SELECT、INSERT、UPDATE和DELETE语句)或NoSQL脚本,这些脚本可以直接在MapForce中运行,并作用于您的目标数据库。
除了即时转换功能之外, 高性能 ETL (数据抽取、转换、加载) 技术。 该功能可通过 MapForce Server 提供。
数据库输出追踪功能可以轻松记录映射或ETL项目在运行时对数据库所做的所有更改。
当启用追踪功能时,诸如数据库插入或更新操作,以及错误等事件会被记录在一个XML文件中,您可以稍后分析该文件,或者以自动化的方式进一步处理这些数据。
数据库追踪功能可以在数据库组件、表、存储过程或数据库字段级别启用。您可以选择追踪所有消息,也可以只追踪错误信息,或者完全禁用追踪功能。
一旦您选择了所需的跟踪级别,映射项目中受影响的数据库组件将扩展为一个 XML 树,其中显示了日志结构。如果您希望日志文件采用除 XML 之外的其他格式,您可以将数据从该文件中映射到 MapForce 支持的其他数据格式(例如,文本文件或甚至是另一个数据库)。
当点击“输出”按钮预览映射结果时,开发者还可以看到一个示例,展示在执行映射时,跟踪日志会呈现的样貌。
对于使用 SQL 的用户,MapForce 提供了“数据库查询”选项卡,用于直接查询数据库。当您通过“数据库查询”选项卡连接到数据库时,MapForce 会在浏览器窗口中以分层树状结构显示数据库中的表。
您可以使用SQL编辑器标签来显示、编辑和执行SQL或SQL/XML语句。您可以选择打开现有的SQL文件,也可以通过拖放和自动补全功能,从头开始创建SQL语句。
您可以执行您的SQL脚本,并将结果以表格形式显示。此外,您可以将检索到的数据和SQL脚本分别保存到不同的文件中。
MapForce数据库键设置允许您自定义如何将主键和外键值添加到目标数据库。您可以选择在MapForce中手动输入键值,也可以让数据库系统自动生成这些值。
在数据库表中,如果主键和/或外键关系没有明确定义,MapForce 允许您直接在映射文件中定义这些关系,而不会对源数据产生任何影响。
当您将数据映射到数据库时,MapForce 允许您选择数据库表操作,从而控制数据如何写入数据库。这为您提供了充分的灵活性,可以自动化最复杂的的数据管理任务。
这个易于使用的“数据库表操作”对话框,允许您定义所选表格中的列,以便确定在数据库中应该执行的操作(插入、更新、删除)。
这为通过 MapForce 处理 XML、数据库、EDI、XBRL、文本文件、Excel、JSON、JSON5、Web 服务或其他数据库数据时,对数据库记录进行操作提供了前所未有的灵活性。
MapForce 提供了强大的对存储过程的支持,可以将其用作输入组件(提供结果的存储过程)或输出组件(用于插入或更新数据的存储过程)。 此外,还可以将存储过程以函数调用的形式插入,允许用户提供输入数据,执行存储过程,并读取/映射输出数据到其他组件。
此截图展示了在 SQL Server 中,如何将一个存储过程映射为一个 XML 文件的过程。该存储过程返回一个数据表,其中显示了所有在指定员工 ID 之上的管理人员(该员工 ID 作为输入参数提供,在本例中为常量 67)。
该参数也可以以计算值或从数据库其他部分检索的数据元素的形式提供。
MapForce 提供一个上下文菜单,允许用户运行存储过程,从而显示用于数据映射的数据结构。执行所示的映射操作会生成 XML 输出。
MapForce 还允许您连接到并映射存储在关系数据库字段中的 XML 数据(目前支持 SQL Server 和 IBM DB2)。您只需将一个 XML 模式——无论是数据库中已注册的模式,还是您本地文件系统中的模式——分配给该字段,MapForce 就会将该模式渲染为数据库字段的一个子树,以便进行映射。
在数据库内部执行的 SQL 查询并非总是能够满足复杂的数据映射任务。MapForce 通过 SQL-WHERE/ORDER 组件,为需要额外处理的数据库输入提供额外的数据库排序功能。此外,当映射过程中的其他数据或条件影响数据的排序顺序时,该功能也同样适用。
“数据库表操作”对话框支持对 NULL 值的比较。 针对包含 NULL 值的数据库,使用能够识别 NULL 值的比较方式是一种更有效的方法。 MapForce 用户可以配置数据库映射,以便以一种能够识别 NULL 值的形式进行数据比较,具体规则取决于所涉及的数据库类型。
右侧展示的数据映射旨在更新目标表,同时避免插入重复条目。 两个表都允许“电子邮件”字段为空(NULL),因此可能存在在每个表中,姓名相同但“电子邮件”字段为空的记录。
点击“目标”数据库表旁边的“操作”图标,会打开“数据库操作”对话框。在电子邮件字段旁边的“等于 NULL”复选框允许 MapForce 将源数据和目标数据中的 NULL 值在数据映射过程中视为相等,即使根据数据库规则,它们并不被认为是相等的。
MapForce 支持基于 XML Schema 或 DTD 内容模型的 XML 与数据库之间的映射。要创建 XML 与数据库之间的映射,只需将 XML Schema 和数据库导入到 MapForce 中,然后通过拖动连接线,在 XML 节点和数据库对象之间建立连接。
如果您的 XML 实例文档没有关联的 XML 模式,MapForce 会根据该 XML 实例文档自动生成一个 XML 模式。
在 XML Schema 设计中,`<xs:any>` 元素和 `<xs:anyAttribute>` 允许在 XML 实例文档的相应位置添加任何新的元素或属性,即使这些新的元素或属性在 XML Schema 中没有被明确定义。这被称为 XML 通配符,是一种常用的机制,它允许在许多支持行业标准的 XML Schema 中实现一定程度的定制化,从而适用于各种不同的业务领域。
MapForce 支持 `<xs:any>` 和 `<xs:anyAttribute>`,可用于将数据映射到 XML 或其他任何输出格式。 在 XML 映射输入组件中,`<xs:any>` 或 `<xs:anyAttribute>` 旁边会显示一个新选择按钮,点击该按钮会打开一个通配符选择对话框。
`<xs:any>` 元素以及 `<xs:anyAttribute>` 在 XML Schema 设计中被广泛使用,而对这些元素的支持一直是 MapForce 用户经常提出的需求。
MapForce 支持基于 JSON (JavaScript 对象表示法) 模型来定义和执行数据库映射。您可以将 JSON 实例文件或 JSON 模式文件作为数据库映射的源或目标组件。MapForce 基于 JSON Draft 04 规范来读取和写入 JSON 文件。
如以下所示,JSON 组件以正确的元素语法进行显示,并且其数据类型已明确标示。
来自 MapForce 函数库的数据处理功能可以应用于转换 JSON 数据,其使用方式与其他组件相同。
当您将一个 JSON 或 JSON5 文件添加到数据库映射中时,MapForce 会自动检测该文件是模式文件还是实例文件。对于 JSON 或 JSON5 实例文件,MapForce 会提示您选择一个模式文件,或者自动生成一个。MapForce 使用 JSON 或 JSON5 模式来构建组件的结构。
Altova MapForce Server 它包含了为 MapForce 开发的内置数据转换引擎,并且经过大幅增强,可以在服务器环境中运行。MapForce Server 的功能包括: 数据转换。 针对任何组合的 XML、PDF、数据库、EDI、XBRL、文本文件、Excel、JSON 以及/或 Web 服务,利用存储在执行文件中的预处理和优化后的数据映射方案。 在 MapForce 中定义的映射关系。MapForce Server 将数据 ETL 技术提升到新的高度,它具备服务器功能,包括并行处理、多线程、批量 SQL 插入、跨平台支持等。
预处理能够提高大多数数据映射的性能,并减少内存占用。MapForce Server 在 FlowForce Server 的管理下运行,可以独立配置,通过命令行执行,也可以通过 API 进行程序化操作。
在设计并测试好 MapForce 映射规则后,可以通过 MapForce Server 来执行这些规则,从而自动化需要重复数据转换的业务流程。
MapForce 软件可以预处理和优化数据映射关系,并将这些关系存储在 MapForce Server 的执行文件中,以便通过 MapForce Server 的命令行进行执行。此外,它还可以将这些映射关系上传到 FlowForce Server,用于 FlowForce Server 作业中使用。
当 MapForce Server 在 FlowForce Server 的管理下运行时,数据映射和 ETL 流程会作为 FlowForce Server 作业的步骤来执行,这些步骤基于 FlowForce Server 作业中定义的触发器。例如,当一个新的 XBRL 实例文档到达某个目录时,这会触发一个多步骤的 FlowForce Server 作业,该作业首先使用 RaptorXML+XBRL Server 验证该文件,然后执行 MapForce Server,从 XBRL 中提取特定数据,并将这些数据插入到数据库中。
批量插入是一种针对某些数据库提供的操作,它允许通过单个SQL语句将大量数据插入到数据库表中,而无需像通常情况下那样,为每一行数据使用单独的INSERT语句。由于数据库引擎的处理开销大大降低,因此性能 значительно повышается. 通过使用一些示例对MapForce Server进行测试,结果表明批量插入的速度可以比单个INSERT语句快10倍以上。
批量插入操作在多用户环境中也具有优势。如果一个用户向数据库发送一系列插入命令,而此时另一个用户向同一张表发送查询请求,那么插入操作可能会被中断,并且后续的插入操作会继续。在这种情况下,查询操作会导致数据不完整或无效。







