---
title: "使用“连接”功能，即可整合各种格式的数据"
date: "2017-04-18"
categories: 
  - "data-integration"
  - "tools"
tags: 
  - "data-integration"
  - "join-data"
  - "mapforce"
  - "mapforce-server"
description: 了解如何有效地使用 Altova MapForce 中的“连接”（Join）组件，以实现数据集成，将各种格式的数据结合起来，并提升数据映射的性能。
---
Status: #blog

Tags:  #data-integration #join-data #mapforce #mapforce-server

Categories: [data-integration](/blog/zh/category/data-integration.md) 
# 使用“连接”功能，即可整合各种格式的数据

JOIN 是一种强大的 SQL 操作，它被广泛应用于各种数据库类型，并且是数据库用户所熟悉的操作。通常，JOIN 用于从多个数据库表中选择和组合信息。

Altova MapForce 包含一个用于[数据映射](https://www.altova.com/zh/mapforce.html)的连接组件，其工作方式类似于 SQL 中数据库表的连接操作，并通过赋予用户连接任意数据格式的数据树的能力，扩展了数据集成功能。 任何熟悉数据库表连接操作的人员都会发现 MapForce 的连接组件特别直观。 在 MapForce 中，连接操作甚至可以将两种不同的数据格式结合起来，并生成一种全新的输出格式。

![](/blog/images/Join03.png)

<!--more-->

### 合并数据库表中的数据

当然，MapForce 的连接组件可以与数据库表配合使用，就像这里所示的映射关系一样：

![使用 Altova MapForce 连接数据库表中的数据](/blog/images/database-join-example.png)

这个数据库中的地址表使用外键将每个地址与用户表中的对应人员的主键关联起来。用于建立这种关联的连接条件定义使用了以下这些键：

![使用 Altova MapForce，您可以根据一个或多个条件，将数据进行关联](/blog/images/db-join-condition.png)

这个映射关系仅使用关键关系来定义相等性，但请注意位于右上角的“添加条件”按钮，它可以用于进一步定义更复杂的连接关系。

该数据库映射的最终输出是一个CSV格式的文本文件，并且结果会进一步通过SQL-where/order组件及其相关输入进行优化。输入条件是SQL-where/order语句中的“where”部分，仅要求返回家庭住址

![一个字符串值定义了用于连接数据的条件](/blog/images/input-component.png)

最终输出的排序方式，需要在 SQL 的 "where/order" 属性对话框中进行设置，以生成一个按姓氏顺序排列的列表

![用于连接数据的 SQL 中的 WHERE 和 ORDER 子句](/blog/images/where-order-properties.png)

以下是数据库映射的最终 CSV 输出结果：

![数据库表连接操作的结果](/blog/images/db-mapping-output.png)

当应用于数据库时，MapForce 中的连接组件会生成 SQL JOIN 语句，这对于实现快速性能至关重要。

### 连接任意格式的数据树

在下面的数据映射中，来自两个 XML 文件的信息被整合在一起，以创建一个人员联系列表。输出结果将写入一个 JSON 文件。

![使用 Altova MapForce，您可以连接任何格式的数据结构](/blog/images/join-example1.png)

连接组件底部的“条件”元素定义了文件如何进行合并。为了实现数据映射，我们需要将每个XML输入文件中的“FirstName”（名）和“LastName”（姓）字段对应起来，以便将每个街道地址与正确的电子邮件地址和电话号码关联。点击“条件”元素旁边的“键”图标，会弹出一个对话框，用于定义该条件。

![定义多个条件以连接数据](/blog/images/define-condition.png)

下图展示了两个 XML 输入文件（位于左侧和中间），以及映射转换后的 JSON 输出结果

![连接数据操作的输入和结果](/blog/images/source-files.png)

请注意，第一个输入文件包含四个条目，但第二个输入文件只提供了三个匹配结果，这些结果将被写入 JSON 输出文件中。由于没有匹配项可以提供第四个名字的地址，因此该条目未包含在输出中。

### 利用“Join”功能，加速重复转换操作的性能

在完成 MapForce 映射的设计和测试后，可以通过 MapForce Server 按照需要执行这些映射，从而自动化需要重复进行数据转换的业务流程。

MapForce Server Accelerator 版本包含针对高性能服务器平台的多种优化措施，包括对单个数据映射的多线程执行，以及针对包含新版 MapForce 连接组件的数据映射的优化。

我们的测试表明，使用 MapForce Server 加速版运行时，某些数据映射的执行速度可提升高达 70 倍*。

*（*此处为脚注或补充说明，具体内容需根据原文提供）*

对于任何特定的数据集成难题，通常存在多种可行的映射方案。虽然使用过滤器也能达到类似的效果，但“连接”组件能够简化数据映射过程，使其更加清晰，并且能够更快地生成结果。 [下载免费试用版](https://www.altova.com/zh/download-trial-server.html)，亲自体验一下！

 

* 性能结果基于Altova内部测试得出。您的实际结果可能有所不同。
