作业 DataStage 中数据服务连接器的拓扑结构

在作业中使用数据服务连接器需遵循一系列约束条件和指导原则。 面向服务的架构(SOA)平台支持三种作业拓扑结构,以满足不同的负载和工作模式需求:具有数据服务输入阶段的作业、具有数据服务输出阶段的作业,以及同时具有数据服务输入和输出阶段的作业。

作业的设计决定了它是否始终处于运行状态,还是仅运行一次直至完成。 所有作为服务暴露的工作都以临时、 24x7 的方式处理请求。

请确保 DataStage® 作业中的列名不包含数字后跟小写字母的组合,例如 2b。 此类列名将导致您的作业失败。

服务接受来自客户端应用程序的请求,将请求数据映射为输入行,并将其传递给底层作业。 一个作业实例可能包含数据库查询、数据转换、数据标准化与匹配以及其他数据集成任务。 作业实例随后可返回输出行,这些行可映射为服务响应数据并发送回客户端。

数据服务连接器仅作为输入端口

图 1。 数据服务连接器作为仅输入的示例流程
数据服务连接器作为仅输入的示例流程
拓扑结构 I 使用作为服务暴露的新建或现有作业。 任务按需启动,并持续运行直至收到停止请求。 该任务通常会启动一个实时进程,该进程无需直接反馈结果。 它可以接受作业参数作为输入参数。 拓扑学I职位具有以下特征:
开始时间
首次启动作业所需的时间(即延迟)较高。 该因素导致与作业服务和 RabbitMQ 服务通信时的吞吐率较低。
输入
基于数据服务连接器作为输入的作业的信息服务,可以使用作业参数作为输入参数。 此类服务不返回任何输出。 如果作业异常终止,服务客户端将收到异常。

一个作业只能包含一个数据服务连接器输入阶段。 数据服务连接器的输入阶段支持一条输出链接。 其表定义映射到服务操作的输入参数,即Web服务请求的输入数据参数。 输入值可以由原子值(单列)、结构体(多列)或结构体数组(多行)组成。

定义阶段
具有被动阶段且同时包含输入和输出链接的工作不具备实现服务操作的资格。 包含数据源阶段且具有输入和输出链接的工作无法用于实现服务操作。 若需同时具备输入和输出链接的数据源阶段,请勿使用数据服务连接器的输入阶段。

此外,在输出链接上重新运行的数据库查询结果仅在作业实例启动时执行一次。 并非每次服务请求都会出现此情况。 若需从数据源中提取数据,请使用引用链接执行查询操作。

始终在线的行为
符合拓扑结构I的工作始终处于运行状态。 一个作业实例在其生命周期内处理多个请求。 如果任务停止,服务客户端将收到异常。

数据服务连接器仅作为输出端口

图 2。 数据服务连接器作为仅输出端口的示例流程
数据服务连接器作为仅输出端口的示例流程

拓扑II采用新工艺并增加了输出级。 工作按需启动。 数据服务连接器的输出阶段是作业的退出点,拥有一个输入链接,并作为服务响应向客户端应用程序返回一行或多行数据。 其表定义映射到服务操作的输出参数,即Web服务操作的返回值。 返回值可以包含原子值(单列)、结构体(多列)或结构体数组(多行)。 这些作业通常从实时进程中启动一个流程,该流程需要结果的反馈或数据。 它可以接受作业参数作为输入参数。

具有输入和输出的数据服务连接器

图 3。 数据服务连接器作为输入和输出的示例流程
数据服务连接器作为输入和输出的示例流程

在拓扑 III 中,作业同时使用数据服务连接器的输入阶段和服务输出阶段。 输入阶段是作业的入口点,在服务请求期间接收一行或多行数据。 这些作业始终在运行。 这种拓扑结构通常用于处理大量小额交易,其中响应时间至关重要。 它专为处理大量小型请求而设计,而非少数大型请求。 拓扑学III可接受作业参数作为输入参数。

拓扑学III类职位具有以下特征:
开始时间
首次启动作业所需的时间(即延迟)较高。 该因素导致与作业服务和 RabbitMQ 服务通信时的吞吐率较低。
输入和输出
一个作业只能包含一个数据服务连接器输入阶段。 数据服务连接器的输入阶段支持一条输出链接。 其表定义映射到服务操作的输入参数,即Web服务请求的输入数据参数。 输入值可以由原子值(单列)、结构体(多列)或结构体数组(多行)组成。 最大输入大小为2 MB。 更大的输入会向客户端应用程序发送一条错误消息。

一个作业只能包含一个数据服务连接器输出阶段。 数据服务连接器的输出阶段支持一条输入链路。 其表定义映射到服务操作的输出参数,即Web服务请求的返回值。 返回值可以包含原子值(单列)、结构体(多列)或结构体数组(多行)。 最大输出尺寸为2 MB。 较大的结果会被截断,并向客户端应用程序发送错误消息。

定义阶段
具有被动阶段且同时包含输入和输出链接的工作不具备实现服务操作的资格。 包含数据源阶段且具有输入和输出链接的工作无法用于实现服务操作。 若需同时具备输入和输出链接的数据源阶段,请勿使用数据服务连接器的输入阶段。

此外,在输出链接上重新运行的数据库查询结果仅在作业实例启动时执行一次。 并非每次服务请求都会出现此情况。 若需从数据源中提取数据,请使用引用链接执行查询操作。

始终在线的行为
符合拓扑结构III的工作始终处于运行状态。 一个作业实例在其生命周期内处理多个请求。 如果任务停止,服务客户端将收到异常。