# 强大的 ETL 工具 (免费试用)

### MapForce ETL 工具。

支持提取、转换和加载各种常见数据格式。- [图形化 ETL 定义。](#etl)
- [转换各种常见的数据格式。](#)
- [用于处理和转换数据的函数。](#)
- [用于数据库的ETL工具。](#etl)

- [用于 EDI 的 ETL 工具。](#edi-etl)
- [文本和平面文件 ETL 工具。](#etl)
- [PDF数据提取工具。](pdf-extractor.md)
- [自动化 ETL 映射执行。](#mapforce-server-etl)

## 企业级ETL软件。

ETL（提取、转换、加载）工具提供了一种机制，用于从外部数据源提取数据，将其转换为规范化的数据格式，然后将其加载到最终目标或数据存储库中。 

支持主流的企业数据格式（...）[XML](xml-mapping.md) MapForce是一款非常高效、轻量级且可扩展的ETL工具，支持多种数据格式（如JSON、PDF、数据库、纯文本文件、EDI、Protobuf、Shopify/GraphQL等）。它提供了一个简单直观的ETL映射界面，让您可以轻松导入各种支持的数据结构，然后通过拖放功能连接节点，添加数据转换函数和过滤器，或者使用...（后续内容省略）。 [视觉功能训练工具。](visual-function-builder.md) 用于更复杂的ETL项目。

[MapForce 强大的数据映射和 ETL 工具。](https://www.altova.com/images/mapforce-ETL-tool-overview.png)

为了配合其可视化界面，MapForce ETL 工具可以通过高性能的 [MapForce Server](../mapforce-server.md) 实现无缝自动化。

### ETL 数据处理与转换。 {#data-processing}

MapForce 允许您通过拖放操作，轻松地将数据结构关联起来，并利用其强大的 ETL 数据映射功能。

可以通过内置的函数库添加高级数据处理过滤器和功能。您可以使用可视化函数构建器，将多个内联操作和/或递归操作组合在一起，从而在更复杂的 ETL（提取、转换、加载）或数据集成项目中实现更强大的功能，甚至可以将构建好的函数保存起来，以便在其他映射项目中重复使用。

MapForce 还支持高级的 ETL（数据抽取、转换、加载）场景，这些场景可能涉及多个输入和输出模式、多个源文件和/或目标文件，或者复杂的、多阶段的数据转换。

### 直接文件输入和输出（数据流）。 {#data-streaming}

数据流支持能够极大地提升您的ETL项目的性能。它允许您从任意大型的XML、CSV和FLF文件以及关系数据库中读取数据，并将输出数据流式传输到同样大型的XML、CSV和FLF文件中，或者将其插入到数据库中。

这个内置功能意味着 MapForce 可以轻松处理海量数据集和 ETL 项目，其限制仅在于您本地机器或网络上可用的磁盘空间大小。

要启用此功能，只需在地图设计面板的工具栏中选择“内置”图标即可。

[MapForce Server](../mapforce-server.md) 不仅支持批量数据库插入以及直接数据流传输，而且非常适合执行 ETL 数据映射任务。

## 图形化 ETL 映射工具。

MapForce 界面简化了 ETL 项目中常见的数据集成过程，它提供了一个图形化界面，包含许多选项，用于管理、可视化、操作和执行单个映射以及复杂的 ETL 映射项目。使用设计面板，您可以图形化地定义映射组件，添加函数和过滤器以进行数据操作，并通过拖动连接器在源格式和目标格式之间进行转换。

[使用 MapForce ETL 软件，可以通过图形化界面定义转换规则。](https://www.altova.com/images/mapforce_graphical_data_mapping.png)

设计面板包含一系列易于使用的功能，旨在帮助您轻松地处理、识别和重新定义即使是最复杂的数据映射关系。例如，点击某个项目名称会自动选中该项目，以便将其连接到另一个项目。当您将鼠标悬停在映射连接的各个部分时，会弹出提示框，您可以查看更多信息，例如映射的目标项目或数据类型。

连接线可以轻松移动：只需点击并拖动到目标位置即可。要创建重复连接线（即从同一个源头连接到不同的目标），只需按住 CTRL 键，然后拖动连接线即可。激活“自动连接子项”图标，会自动将所有名称相同的子项连接到其父项下。

MapForce ETL 软件支持多种输入和多种输出，并且您可以将完全不同的数据类型进行整合。

MapForce 包含一个强大的数据处理函数库，可以执行集成项目所需的大部分数据转换操作。一个便捷的概览窗口让您能够直观地查看整个数据映射项目，并根据需要放大特定区域。在设计面板中滚动时，该窗口还会指示您当前所处的位置。即使是最大的数据映射项目，也能轻松应对！

使用 MapForce 学习 ETL 技术。

[什么是ETL？](https://www.youtube.com/watch?v=Mx_hOhS6TpM)

## 转换数据格式。

在ETL应用中，用于导入的新数据通常采用与现有数据仓库不兼容的格式。MapForce 提供了无与伦比的强大功能和灵活性，用于高级的数据转换和处理，使其成为一个高效的ETL工具，适用于全球范围和企业内部的数据集成项目。您可以轻松地集成来自多个、不同格式的文件中的数据。

MapForce是一款理想的中件产品，它支持数据集成自动化，可以连接任何本地企业中的分布式应用程序、基于Web的工作流程，甚至云架构。

以下图示展示了三种数据格式，它们被用于ETL（抽取、转换、加载）过程。主要的数据源文件是一个[Excel](excel-mapping.md) 电子表格，而最终的输出目标是一个数据库。然而，"SharesAndLeaves"数据库中的记录以JSON对象的形式存储。MapForce ETL工具会实时构建[JSON对象](json-mapping.md) ，并将它包含在生成的数据库插入语句中，如截图右下角的输出预览中所示。

[使用 MapForce ETL 工具，可以转换和加载任何类型的数据。](https://www.altova.com/images/mapforce-ETL-data-conversion.png)

### 可重复使用的数据映射。 {#reuse}

无论它是 XML、JSON 还是数据库模式；Shopify API、EDI 配置文件；PDF 模板；或者 XBRL 分类体系，MapForce 都能根据数据结构进行数据集成，而无需考虑内容的具体形式。这意味着，您可以重复使用数据映射，即使业务数据发生变化。

### 自动化 ETL 流程。 {#automate}

MapForce 可以生成 MapForce 运行文件，供 [MapForce Server](../mapforce-server.md) 执行，也可以生成免版税的数据集成代码，使用 Java、C# 或 C++ 语言，用于自动化 ETL 项目的重新处理。这使得您可以实现基于计划或事件触发的数据集成/迁移操作，并将这些操作集成到任何报表、电子商务或 SOA 应用程序中。MapForce 的数据集成操作还可以通过数据集成 API 或 ActiveX 控件进行自动化。

### 数据处理。 {#manipulate-data}

ETL 项目需要对数据进行处理，以在数据被目标系统使用之前对其进行转换。MapForce 提供了直观的图形化功能构建器，以及完全可扩展的数据处理功能，内置了丰富的库、过滤器和条件等，旨在帮助您轻松地处理数据并整合不同格式的数据。

### 经济实惠的；性价比高的。 {#affordable}

MapForce 不需要用户去收集各种适配器或其他需要额外付费的插件。用户可以完全掌控数据集成和转换的设计与实现，并且可以处理所有类型的数据，包括 XML、JSON、数据库、文本文件、EDI、Excel、XBRL 以及 Web 服务数据等各种组合。 

## 数据转换函数。

在任何 ETL 场景中，输入的数据都需要与数据仓库中已有的标准进行统一。根据相关数据的特性，可能需要转换诸如名称格式、日期和时间格式、小数精度、货币、温度和测量单位等项目。MapForce 提供了可扩展的数据处理和转换函数库，用于根据您的 ETL 映射项目的需求进行数据过滤和处理。为了节省时间，并利用您已经完成和测试过的成果，您可以导入现有的数据转换代码，或者导入 XSLT 1.0 或 2.0 文件，将其用作函数库。MapForce 还包含一个独特的图形化函数构建器，用于定义和重用自定义函数，这些函数可以将多个操作组合在一起。

[MapForce 数据转换功能。](https://www.altova.com/images/mapforce_data_processing_functions.png)

MapForce 能够处理最复杂的转换场景，允许您基于条件、布尔逻辑、字符串操作、数学计算、SQL 和 SQL/XML 语句，或者任何用户自定义函数来定义转换规则。您甚至可以使用现有的 Web 服务来查找或处理任何映射中的数据。

MapForce 数据转换： 

- 数据处理功能可以实时转换数据。
- 数学计算。
- 布尔型、数据、时间、数字或字符串转换。
- 程序化的字符串和日期时间解析。
- 专门的节点、序列、EDIFACT 和数据库函数。
- 支持过滤器、条件、参数和变量。
- SQL 或 SQL/XML 数据库函数。

### 函数库。 {#functions}

许多内置函数，例如连接、加法、乘法等，都支持无限数量的参数，这使得进行数学运算和组合多个参数变得非常容易。聚合函数允许您对数据组进行计算，包括计数、求和、最小值、平均值、字符串连接等。还提供了转换函数，以便方便地解析复杂的数据类型。

核心库中的函数具有通用性，不针对任何特定类型的输出。通过使用这些核心函数，您可以仅通过选择所需的语言，即可创建 XSLT 1.0/2.0、XQuery、Java、C++ 或 C# 数据转换代码。

### 中间变量。 {#variables}

中间变量是一种特殊的组件，用于存储中间映射结果，以便进行后续处理，并且可以用于解决各种高级映射问题。一个中间变量等同于一个普通的（非内联的）用户自定义函数，并且是一个结构化组件，不包含实例文件。

### 筛选器和条件。 {#filters}

在映射关系中插入过滤器和条件，可以根据布尔条件从源数据中选择所需的数据。

在 MapForce 中，if-else 条件语句相当于许多编程语言中的 switch 语句，它允许您通过将一个值与选定的条件进行匹配，轻松控制映射项目中数据的处理流程。 

### 转换参数。 {#parameters}

MapForce 支持转换输入参数，允许外部参数影响映射转换过程。 

## 数据库 ETL 工具。

MapForce 数据库 ETL 工具提供强大的支持，包括： [数据库映射。](database-mapping.md) 它能够将数据库数据映射到各种格式之间，包括 XML、JSON、PDF、CSV、EDI、Excel、Protobuf、XBRL、Shopify/GraphQL、Web服务，甚至其他数据库格式的任意组合。

当您在设计窗口加载数据库结构时，MapForce 会自动解析数据库模式，让您选择可用的数据库表和视图，并识别表之间的关系。

[使用 MapForce ETL 映射工具转换数据库数据。](https://www.altova.com/images/mapforce_database_mapping.png)

一旦您已加载数据库 ETL 映射所需的所有内容模型，只需通过拖动连接线，将源结构和目标结构连接起来，即可完成映射过程。

数据库映射功能： 

- 对所有主要数据库进行查询。
- 将任何支持的数据库类型的数据映射到任何其他数据库类型。
- 指定数据库的密钥设置。
- 定义数据库表的操作。
- 直接查询数据库。
- 连接到数据库并将其中的字段映射到 XML 数据。
- 对数据库输入组件进行排序。

MapForce 支持所有主流的关系型数据库以及流行的 NoSQL 数据库，让您能够创建图形化的数据库映射设计，连接数据库中的源数据、数据处理函数和过滤器，以及各种类型的数据结构。

支持。 **关系数据库。** 用于 ETL：

- Firebird
- IBM DB2 for iSeries®
- IBM DB2®
- Informix®
- MariaDB
- Microsoft Access™
- Microsoft® Azure SQL
- Microsoft® SQL Server®
- MySQL®
- Oracle®
- PostgreSQL
- Progress OpenEdge
- SQLite
- Sybase® ASE
- Teradata

支持用于ETL的**NoSQL数据库** ：

- MongoDB
- CouchDB

### 筛选和处理数据库数据。 {#db}

许多数据库 ETL 映射需要根据布尔条件或 SQL 和 SQL/XML 语句，对源数据和目标数据之间的数据进行处理。您可能需要进行逻辑比较、数学计算或字符串操作，检查数据库中特定值的存在，并对数据进行其他修改。如图所示，数据处理函数以方框的形式显示在连接源数据模型和目标数据模型的线条之间。

数据处理功能使您能够实时执行高级数据库映射，以满足各种实际应用场景中的数据转换需求。例如，您可以构建数据库映射，利用 XML 或 EDI 消息，根据 XML 或 EDI 元素中的筛选条件，提取数据库中的数据行。

### 即时数据库转换。 {#convert}

一旦您完成了映射配置，内置的 MapForce 引擎允许您只需点击一下即可查看和保存结果。

将数据映射到数据库会生成 SQL 脚本（例如，SELECT、INSERT、UPDATE 和 DELETE 语句），这些脚本可以直接在 MapForce 软件中或通过 MapForce Server 运行，从而作用于您的目标数据库。

## 用于 EDI 的 ETL 工具。

EDI（电子数据交换）标准是电子商务数据交换领域的主流格式，为组织提供了一种快速、准确的交易数据交换方法。EDI在ERP（企业资源计划）、CRM（客户关系管理）以及许多其他供应链相关技术之前就已经出现，因此，当EDI消息作为ETL（数据抽取、转换、加载）应用程序的数据来源时，数据映射和转换就变得至关重要。

MapForce 是一款图形化的 EDI ETL 工具，它原生支持当前广泛使用的各种商业数据格式，包括 XML、JSON、数据库、文本文件、Excel、Web 服务，以及 EDIFACT、X12、HL7、NCPDP SCRIPT、IDoc 和 PADIS 等 EDI 交易标准。 

[一个ETL项目，旨在将EDI数据转换为数据库格式。](https://www.altova.com/images/mapforce-EDI-to-database-mapping.png)

MapForce 通过允许您直观地定义 UN/EDIFACT、ANSI X12、HIPAA X12、Health Level 7 (HL7)、NCPDP SCRIPT、SAP IDoc、IATA PADIS 或 TRADACOMS 与 XML、数据库、CSV、Excel 以及其他 EDI 系统之间的转换映射，从而简化了数据集成。此外，它还支持与 Web 服务进行交互。这些 EDI 数据转换工具使您的组织能够享受到电子信息交换带来的优势，同时无需增加成本或增加应用程序基础设施的复杂性。

### 处理多种EDI消息类型。 {#process-edi}

MapForce 允许您定义一个映射，以处理包含多种消息类型的 EDI 文件。 无论是在数据映射项目的源端还是目标端，MapForce 都支持包含多种消息类型的 EDI 文件，从而为 EDI 映射提供最佳的灵活性。

### 消息已收到。 {#edi-message}

在 EDI X12 标准中，997 确认消息用于传递入站交换的状态，例如确认已接收到交易、报告交易错误等。

MapForce 可以轻松配置，自动将您的输入 X12 消息转换为 997 确认信息，从而帮助您在合作伙伴网络内部和外部建立无缝的贸易连接。

### 验证 EDI 输出。 {#validate-edi}

MapForce 允许您通过验证所有 EDI 数据的源和目标组件，以及映射结果，来确认 EDI 输出的准确性。这有助于确保只有有效的 EDI 消息才能被处理。

## 文本和平面文件 ETL 工具。

现有的文本文件中包含的遗留数据可以被提取并更新，使其与现有的 ETL 仓库保持一致。MapForce 包含独特的 FlexText 工具，用于解析和转换各种文本文件，例如大型机文本报告、基于文本的日志文件以及其他类型的遗留文本文件，这些文件可以在映射设计中使用。通过其可视化界面，FlexText 允许您导入现有的文本文件，并在 MapForce 的映射界面中提取您想要转换的部分。

FlexText 会生成一个模板，然后将该模板加载到 MapForce 中。在 MapForce 中，您可以将单个文本节点转换为多种格式，包括 XML、数据库、PDF、EDI、XBRL、纯文本文件、Excel、JSON、Protocol Buffers 以及 Web 服务数据。通过保存您在 FlexText 中创建的配置，您可以重复使用相同的模板，将多个文本文件转换为多种不同的格式。

[MapForce 文本处理功能。](https://www.altova.com/images/mapforce_text_processing.png)

FlexText 允许您创建规则，用于文本文件转换模板，从而实现 ETL 映射。当您在 FlexText 界面中打开一个文本文件时，该文件会显示在两个区域。根区域代表原始文件，而操作区域（位于其右侧）会实时显示您提取的数据。

您执行的每一个操作的结果都会实时显示，因此您可以立即看到是否达到了预期的效果。

旧的文本文件中可能包含有用的数据，这些数据可能以CSV（逗号分隔值）或FLF（固定长度字段）格式存储在更复杂的纯文本文件中。FlexText允许您直接提取这些数据，使用CSV和FLF功能即可。在应用“拆分”和其他操作后，您可以配置字段名称、长度等，将剩余的CSV或FLF格式的字段进行存储。

### 提取相关数据。 {#extract}

FlexText 允许您通过使用分割命令，移除不相关的文本、字符和空格，从而提取您需要访问的数据。每次分割操作会将您的数据呈现为两个新的区块：一个包含您提取的数据，另一个则显示转换后的文件的修改视图。您可以立即看到每次操作的结果。

### 节点、忽略、切换以及正则表达式。 {#expressions}

FlexText 支持“节点”和“忽略”操作，从而在构建信息树时提供更大的灵活性。 “忽略”操作会将文本块标记为与转换无关，并指示 MapForce 忽略该文本块。 “节点”操作则在 MapForce 中创建一个新的节点，以便在需要时，您可以正确地表示文本数据的层级结构。

“Switch”操作允许您为一段文本定义多个条件。文本文件中包含的数据只有在满足定义的条件时，才会传递给相关的容器，并在MapForce转换中使用。 

FlexText 还支持正则表达式。例如，一个输入文件可能是一个系统生成的报告，其左边距包含数字和字母代码，用于指示记录类型。其中，连续的五个数字后跟字母“O”表示某个办公地点的新的章节开始。

## 使用 MapForce Server 自动化 ETL 工具的执行。

Altova [MapForce Server](../mapforce-server.md) 它包含了为 MapForce 开发的内置数据转换引擎，并且经过大幅增强，可以在服务器环境中运行。MapForce Server 的主要功能是： [数据转换。](mapforce.md#powerful) 针对 XML、JSON、数据库、EDI、XBRL、文本文件、Excel、Protobuf 以及/或 Web 服务等各种数据格式的组合，本系统利用存储在执行文件中的预处理和优化后的数据映射，从而实现高效的数据处理。 [在 MapForce 中定义的映射关系。](mapforce.md) MapForce Server 通过其服务器功能，将数据转换提升到更高的水平，这些功能包括并行处理、多线程、批量 SQL 插入、跨平台支持等等。

预处理能够提高大多数数据映射的性能，并减少内存占用。MapForce Server 在 FlowForce Server 的管理下运行，可以独立配置，通过命令行执行，也可以通过 API 进行程序化操作。

在设计并测试好 MapForce ETL 映射后，可以通过 MapForce Server 来执行它，从而自动化需要重复数据转换的业务流程。

[MapForce Server 是一款强大的工具，可用于自动化 ETL（数据抽取、转换和加载）流程。](https://www.altova.com/images/mapforce-server-execution-file.png)

MapForce 软件可以预处理和优化 ETL 数据映射，并将这些映射存储在 MapForce Server 的执行文件中，以便通过 MapForce Server 的命令行进行执行。此外，它还可以将这些映射上传到 FlowForce Server，用于 FlowForce Server 作业中使用。

当 MapForce Server 在 FlowForce Server 的管理下运行时，数据映射操作会作为 FlowForce Server 作业的步骤来执行，这些步骤基于在 FlowForce Server 作业中定义的触发器。例如，当一个新的 XML 实例文件到达某个目录时，这会触发一个多步骤的 FlowForce Server 作业，该作业首先使用 RaptorXML+XBRL Server 验证该文件，然后执行 MapForce Server，从 XML 文件中提取特定数据，并将这些数据插入到 ETL 仓库数据库中。


## Call to Action

[现在就下载 MapForce 的 ETL 工具免费试用版！](download.md)
[现有客户可以在这里更新到最新版本。](download.md)
[MapForce，现在就体验。](https://shop.altova.com/MapForce)

