27、数据集成与同步:Scribe工具全解析

数据集成与同步:Scribe工具全解析

1. 数据集成基础操作

在进行数据集成时,有一系列基础操作步骤。首先要保存并运行集成,完成后新行应会出现在目标位置。接着在工作台中,选择目标列“PHONE”,点击公式按钮,将公式设置为”(xxx) 123 - 1234“,这里需要引号,因为这是一个字符串字面量。再次保存并运行集成,“PHONE”列中的行应会更新为这个新值。需要注意的是,如果在第二次运行时收到主键冲突错误,要确保之前定义的查找链接相对于违反的约束是准确的。

2. Scribe工具及相关组件
2.1 Scribe Console

创建事件驱动的集成,首先要使用Scribe Workbench定义集成,例如根据某些事件确定集成开始时应执行的操作。Scribe Console用于配置集成,使其在满足一个或多个条件时自动运行,而不是从Scribe Workbench手动启动集成。

2.2 协作(Collaborations)

集成与Scribe Console中称为协作的逻辑作业集合相关联。可以配置一个协作来处理销售线索事件,再配置另一个协作来处理订单事件。将这些协作文件存储在逻辑文件夹结构中是很有意义的,比如创建一个名为“Sales”的文件夹和一个名为“Orders”的文件夹。通过对集成和相关项目进行分区,可以更轻松地管理和报告集成情况。

每个协作包含以下部分:
- 集成流程(Integration processes) :一组集成定义,每个定义都与特定事件相关联。
- 监控(Monitoring) :监控与警报协同工作,用于测量和报告系统健康指标,如MSMQ中的未处理消息或未完成的销售订单。
- 文件浏览器(File browser) :直接查看与此协作关联的文件夹。
- 警报日志(Alert log) :记录随时间变化的警报历史,具有一些有用的工作流管理功能,如将警报标记为“已确认”或“已处理”。
- 数据视图(Data views) :基于针对适配器编写的查询生成的报告,结果集可以以表格或图形形式表示。

对于实时和双向集成,集成流程节点是花费大量时间的地方。需要做出的第一个决策是选择触发集成运行的事件:
| 事件类型 | 说明 |
| ---- | ---- |
| 文件(File) | 定期检查特定位置是否存在特定文件,如果检测到该文件,则运行集成。集成完成后可以选择重命名或删除该文件。 |
| 时间(Time) | 根据时间事件运行集成,基于时间的事件可以重复。 |
| 查询(Query) | 当特定查询返回结果集时运行集成。 |
| 队列(Queue) | 当在特定MSMQ中收到消息时运行集成。单个MSMQ可以为多个集成服务,可以使用消息头或传入XML文档的根节点来细化要运行的集成。 |

2.3 集成服务器(Integration Server)

在特定的Scribe部署中,虽然可以在各种计算机上有多个Scribe Consoles和Workstations,但必须指定一台计算机作为集成服务器。这台计算机协调实时集成,并从这里监控整个系统的健康状况。实际上,从单独的计算机使用Scribe Console时,实际上是指向这个中央集成服务器上的资源。

在Scribe Console中,有一个用于集成服务器的额外节点,这里的选项可以管理和监控各种集成使用的资源:
- 集成流程(Integration processes) :与特定协作下同名选项几乎相同,但此视图汇总了所有协作中的所有集成流程,而不是单个协作。
- 发布者和桥梁(Publishers and bridges) :用于管理两个应用程序之间的净变化。
- 监控(Monitoring) :与每个协作节点下列出的监控在技术上相同,但这里的监控用于集成服务器监控,而协作中列出的监控用于监控与特定协作相关的业务活动。
- 队列浏览器(Queue browser) :列出Scribe服务器当前可用于Scribe Console的MSMQ。与MSC中的MSMQ视图不同,可以通过将失败消息从ScribeDeadMessage队列拖放到ScribeIn队列来重新提交。
- 文件浏览器(File browser) :向Scribe Console公开Scribe服务器可用的文件系统资源。
- 服务(Services) :向Scribe Console公开Scribe服务器可用的Windows服务。

2.4 管理(Administration)

Scribe系统管理也通过Scribe Console进行。它包括审查随时间变化的集成结果、响应和管理Scribe系统警报、选择Scribe系统应访问的系统级资源等:
- 执行日志(Execution log) :查看随时间变化的集成列表,可以按集成流程或结果(失败、成功)进行过滤。
- 警报日志(Alert log) :与协作中的警报日志类似,但管理警报日志中的警报应反映与整体系统健康相关的警报,而协作中的警报日志表示影响该协作的警报。例如,管理端的警报可能用于信号执行日志中有超过1000个项目,而协作中的警报可能信号有超过预定义期限的未完成订单。
- 数据视图(Data views) :与协作级别的数据视图类似,管理端的Scribe Console中的数据视图报告整体系统健康状况,而不是与业务相关的协作活动。例如,管理级别的数据视图可能是随时间变化的失败集成数量,而协作数据视图可能是随时间变化的新订单数量。
- 站点设置(Site settings) :Scribe系统管理员可以定义一些系统级选项,包括电子邮件服务器位置(用于警报传递)和系统睡眠选项(例如,在预定义的备份期间暂停集成)。
- 警报接收者(Alert recipients) :用于定义要接收警报的用户、用户组或用户映射。接收用户有某种地址(如电子邮件地址),通知将发送到该地址。接收组是一个或多个用户的集合。
- 安全(Security) :Scribe系统管理员需要明确指定要在前面描述的文件浏览器、队列浏览器和服务节点中列出的系统资源,此节点有助于促进该过程。

3. MSMQ驱动的集成流程

对于队列驱动的集成流程,需要了解一些内在的预定义消息队列。假设要在Microsoft Dynamics CRM中创建新账户时,在ERP / 后台办公系统中创建新客户。当在Microsoft Dynamics CRM中创建新账户时,这个事件就开始了。Scribe的一种技术——发布者负责监督这个变更管理过程。

在这种情况下,Microsoft Dynamics CRM适配器有几个不同的发布者(取决于使用的是Microsoft Dynamics CRM On - Line、Microsoft Dynamics CRM Hosted还是Microsoft Dynamics CRM On Premise)。发布者的职责是识别变更的发生,并向Scribe发出信号,表明Microsoft Dynamics CRM中的实体已被修改、插入或删除。为此,会向特定于发布者的MSMQ中投放一个轻量级消息,Scribe通常将其称为PubIn队列。

消息在PubIn队列上被发布者拾取,并检索执行集成所需的信息。创建发布者时使用这种两步过程,可以定义该过程,使得对一个实体(如Microsoft Dynamics CRM中的账户)的更改实际上会从其他实体(该账户的所有地址)中检索信息,以及发生更改的实体。

从源应用程序(这里是Microsoft Dynamics CRM)检索到完整信息后,会向ScribeIn MSMQ添加一条消息。与PubIn队列不同,ScribeIn队列是安装Scribe时创建的名为ScribeIn的MSMQ。所有基于队列的集成流程都将监听此队列。如果不想使用ScribeIn作为默认MSMQ,可以在管理的站点设置节点中定义Scribe输入队列。

消息进入ScribeIn队列后,Scribe会根据创建集成过程时使用的设置找到并运行正确的集成定义。最后,在Scribe Workbench中创建集成时,如果集成失败,要将其标记为自动重试。具体操作是在目标配置窗口的步骤控制选项卡中,选择“Failure”选项,在结果列表中,将“On Failure”控制从“Goto Next Row”更改为“End Job”,确保“Exit Status”设置为“Retry”。

下面是发布过程的流程图:

graph LR
    A[Microsoft Dynamics CRM] -->|1. 发布变更| B("PubIn")
    B -->|2. 检索信息| C(Scribe CRM Publisher)
    C -->|3. 添加消息| D(ScribeIn)
    D -->|4. 运行集成| E(Integration Process)
4. 数据集成示例

要在控制台中创建事件驱动的集成,请按照以下步骤操作:
1. 打开控制台,移动到特定协作的集成流程节点。
2. 点击“Add”按钮。
3. 选择“Queue”作为事件类型,为集成过程命名,然后选择要调用的DTS。如果收到错误消息,提示协作文件夹未授权,请确保在安全节点(管理 - 安全 - 文件浏览器)中定义了Scribe协作文件夹。
4. 在集成过程创建的步骤3中,将消息标签从通配符(*)更改为与创建发布者时定义的消息标签匹配。这样可以确保只有带有正确标签的消息才会路由到这个特定的集成过程,从而可以将来自特定发布者的消息与特定的集成过程关联起来。
5. 进入集成过程创建的另一个步骤,保存集成过程。
6. 完成集成过程创建后,选择刚创建的集成过程并点击“Pause”按钮。暂停集成过程可以查看(和诊断)集成管道中的各个步骤,通常情况下应保持集成不暂停。
7. 在CRM中创建一个新账户。如果已配置发布者,会在ScribeIn队列中看到一条新消息。如果没有看到消息,请确保按照“创建CRM适配器发布者”部分的步骤创建了发布者。
8. 选择刚创建的集成过程并点击“Resume”按钮,集成过程将删除并处理该新消息。在CRM中创建的新账户应自动流入目标应用程序(如创建的.dts中定义的)。如果消息仍留在ScribeIn队列中,请确保集成过程设置为使用队列(而不是时间、文件或查询事件),如果是,确认与此集成过程关联的消息标签与发布者放置在消息上的消息标签匹配。

5. 过程集成

在工作台中创建集成并在控制台中配置任何实时集成要求后,Scribe的一些功能可帮助管理实时集成解决方案中出现的常见问题。

5.1 反弹问题处理(Bounce - Back)

集成人员需要解决的一个常见问题是反弹。在双向集成中,当一个应用程序中的更改触发第二个应用程序中的集成,而第二个应用程序中的更改又触发第一个应用程序中的更改时,就会发生反弹。最终,相同的更改会在两个系统之间来回反弹。

为避免这种反弹,需要定义集成解决方案,使得如果更改来自特定用户,则不应从第二个集成中发布更改。Scribe将此用户称为集成用户。配置此功能需要两个步骤:
1. 在Scribe Workbench中定义集成时,打开“Settings - Adapter”窗口(在“Source” - “Adapter Settings”或“Target” - “Adapter Settings”下找到)。在“Run As”选项卡中,选择要标记为执行此集成的用户。
2. 配置发布者时,选择忽略来自特定用户的消息,并选择与前面“Run As”选择相同的用户。

需要注意的是,目前只有两个适配器支持此功能:Microsoft Dynamics CRM的Scribe适配器和Microsoft Dynamics NAV的Scribe适配器。

5.2 监控(Monitors)

有两种类型的监控器,它们的行为类似:
- 系统监控器(System monitors) :报告整体Scribe系统健康状况,系统健康指标可能包括一段时间内的集成数量或一段时间内的失败集成数量。
- 业务活动监控器(Business activity monitors) :使用相同的技术,但更侧重于业务目标而不是系统健康。例如,可能包括一段时间内CRM中添加的客户数量或按日期分组的订单填充平均时间。

Scribe用户可以通过Scribe Console创建监控器。监控器可以设置为基于“查询”或“队列”工作:
- 查询监控器(Query monitors) :编写类似SQL的语法来形成查询。当结果集满足或超过一定的行数或基于某个字段的值时,查询监控器会发出“警报”。
- 队列监控器(Queue monitors) :监听MSMQ队列。可以通过自定义消息标签、特定MSMQ消息中包含的消息的XML架构和其他类似的消息特征来定义要监控的消息。与查询监控器一样,警报可以与队列中的消息数量相关联。队列监控器的一个常见用途是确保系统之间的通信高效进行,例如,如果ScribeIn MSMQ中的消息数量超过100,则设置监控器向Scribe管理员发出警报。

5.3 数据视图(Data Views)

数据视图旨在以表格或图形形式呈现信息,可以将其视为关键绩效指标(KPI)报告仪表。用户可以创建数据视图来报告某个指标。

5.4 Scribe应用程序发布者、查询发布者和桥梁

过程集成的一个关键部分是扩展系统能够响应系统某一部分中的用户驱动事件。例如,系统需要能够响应在Microsoft Dynamics CRM中添加账户的用户操作,以将相关信息驱动到ERP / 后台办公系统中。Scribe支持多种方式来满足这一需求:
- 查询发布者(Query publishers) :Scribe用户可以定义一个查询,查询结果表示要管理的项目。例如,返回所有尚未导入到ERP的CRM账户,然后将结果集中的每一行导入。或者,可以对查询结果进行“快照”,仅发布与快照不同的项目。在这两种情况下,如果通常期望有大的结果集并希望优化集成事件,可以对结果行进行分组。这种机制是一种“轮询”类型的方法,Scribe会定期(根据用户配置的时间间隔)运行查询并对返回的结果集做出反应。
- 适配器发布者(Adapter publishers) :查询发布者基于“轮询”方式运行,定期检查是否有新数据需要发布。然而,一些应用程序在发生更改时会自行发出信号。在这些情况下,应用程序会在新内容准备好时发出信号,而不是进行定期检查。当担心查询发布者可能产生的不必要网络通信量,或者“近实时”集成不够好时,这种方法很有用。实时是指数据更改事件启动过程,近实时是指进行定期检查,事件的时效性可能等于检查的周期。

下面用表格总结一下查询发布者和适配器发布者的区别:
| 类型 | 工作方式 | 适用场景 |
| ---- | ---- | ---- |
| 查询发布者 | 定期运行查询,对结果集做出反应 | 适用于不太在意网络通信量,对实时性要求不高的场景 |
| 适配器发布者 | 应用程序自行发出更改信号 | 适用于担心网络通信量,需要更好实时性的场景 |

综上所述,Scribe工具提供了一套全面的数据集成和同步解决方案,涵盖了从基础操作到复杂的过程集成的各个方面。通过合理利用这些工具和功能,可以实现高效、稳定的数据集成,满足不同业务场景的需求。无论是处理实时数据更新、避免数据反弹,还是监控系统健康和业务指标,Scribe都能提供有力的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值