数据集成(同步)全解析
在数据集成与同步的领域中,有众多工具和方法可供使用,下面将详细介绍相关内容。
数据集成操作步骤
首先,我们来看看数据集成的具体操作步骤:
1. 保存并运行集成。完成后,新行应出现在目标位置。
2. 仍在工作台中时,选择目标列“PHONE”。
3. 点击“公式”按钮,使公式显示为 “(xxx) 123 - 1234”。由于这是一个字符串文字,需要使用引号。
4. 再次保存并运行集成。“PHONE” 列中的行应使用此新值进行更新。
需要注意的是,如果在第二次运行时收到主键冲突错误,请确保先前定义的查找链接相对于违反的约束是准确的。
Scribe 工具介绍
Scribe 工具在数据同步场景中发挥着重要作用,下面介绍其主要组件。
Scribe 控制台
创建事件驱动的集成始于使用 Scribe 工作台定义集成(例如,根据某些事件确定集成开始时应发生的事情)。Scribe 控制台用于配置集成,使其在满足一个或多个条件时自动运行(与从 Scribe 工作台手动启动集成相反)。
协作
在 Scribe 控制台中,集成与称为协作的逻辑作业集合相关联。例如,可以配置一个协作来处理销售线索事件,再配置另一个协作来处理订单事件。将这些协作文件存储在逻辑文件夹结构中是很有意义的,比如创建一个名为 “Sales” 的文件夹和一个名为 “Orders” 的文件夹。通过对集成和相关项目进行分区,可以更轻松地管理和报告集成情况。
每个协作包含以下部分:
-
集成流程
:一组集成定义,每个定义都与特定事件相关联以触发运行。
-
监控
:监控与警报密切配合。监控用于测量和报告系统健康指标(例如,MSMQ 中的未处理消息或未完成的销售订单)。
-
文件浏览器
:直接查看与此协作关联的文件夹。
-
警报日志
:记录随时间变化的警报历史。该日志还具有一些有用的工作流管理功能(例如,能够将警报标记为 “已确认” 或 “已处理”)。
-
数据视图
:基于针对适配器编写的查询生成的报告。数据视图的结果集可以以表格或图形形式表示。例如,对于一个协作,可能希望查看随时间集成的销售订单数量的表示。
对于实时和双向集成,集成流程节点是花费大量时间的地方。首先需要做出的决策之一是选择触发集成运行的事件:
| 事件类型 | 说明 |
| ---- | ---- |
| 文件 | 定期检查特定位置中特定文件的存在。如果检测到该文件,则运行集成。集成完成后,可以选择重命名甚至删除该文件。 |
| 时间 | 根据时间事件运行集成。基于时间的事件可以重复发生。 |
| 查询 | 当特定查询返回结果集时运行集成。 |
| 队列 | 当在特定 MSMQ 中收到消息时运行集成。单个 MSMQ 可以为多个集成服务,并且可以使用消息头或传入 XML 文档的根节点来细化要运行的集成。 |
下面是一个简单的 mermaid 流程图,展示了基于不同事件触发集成的流程:
graph LR
A[开始] --> B{事件类型}
B --> |文件| C(检查文件存在)
B --> |时间| D(等待时间事件)
B --> |查询| E(执行查询)
B --> |队列| F(监听消息)
C --> |存在| G(运行集成)
D --> |到达时间| G
E --> |有结果集| G
F --> |收到消息| G
G --> H[结束]
集成服务器
尽管特定的 Scribe 部署可以在各种计算机上拥有多个 Scribe 控制台和工作站,但必须指定一台计算机作为集成服务器。这台计算机负责协调实时集成,并从中监控整个系统的健康状况。实际上,当从单独的计算机使用 Scribe 控制台时,实际上是指向这个中央集成服务器上的资源。
这允许独立管理谁可以访问集成资源(例如,Scribe 应用程序),而不是谁可以访问 Scribe。例如,在集成到包含工资信息的 ERP 系统时,可能不希望有权访问 Scribe 的用户访问工资信息(因此 Scribe 应用程序可以访问,但用户可能无法访问)。
在 Scribe 控制台中,有一个用于集成服务器的额外节点。这里的选项允许管理和监控各种集成使用的资源:
-
集成流程
:与特定协作下同名选项几乎相同。此视图汇总了所有协作中的所有集成流程,而不是单个协作。
-
发布者和桥梁
:用于管理两个应用程序之间的净更改。
-
监控
:集成服务器节点下的监控在技术上与每个协作节点下列出的监控相同。但这里列出的监控用于集成服务器监控,而协作中列出的监控用于监控与特定协作相关的业务活动。
-
队列浏览器
:列出 Scribe 服务器当前可用于 Scribe 控制台的 MSMQ。与 MSC 中的 MSMQ 视图不同,可以通过将失败消息从 “ScribeDeadMessage” 队列拖放到 “ScribeIn” 队列来重新提交失败消息。
-
文件浏览器
:向 Scribe 控制台公开 Scribe 服务器可用的文件系统资源。
-
服务
:向 Scribe 控制台公开 Scribe 服务器可用的 Windows 服务。
管理
Scribe 系统管理也通过 Scribe 控制台进行。Scribe 系统管理包括回顾随时间变化的集成结果、响应和管理 Scribe 系统警报、选择 Scribe 系统应访问的系统级资源等:
-
执行日志
:查看随时间变化的集成列表。该列表可以按集成流程或结果(失败、成功)进行过滤。
-
警报日志
:与协作中的警报日志类似,但管理侧的警报应反映与整个系统健康相关的警报,而协作中的警报日志代表影响该协作的警报。例如,管理侧的警报可能用于信号执行日志中有超过 1000 项,而协作中的警报可能信号存在超过预定义期限的未完成订单。警报日志还可用于管理警报,可以将警报标记为已确认,然后解决。
-
数据视图
:与协作级别的数据视图类似。与警报日志一样,Scribe 控制台管理侧的数据视图报告整个系统的健康状况,而不是与业务相关的协作活动。例如,管理级别的数据视图可能是随时间变化的失败集成数量,而协作数据视图可能是随时间变化的新订单数量。
-
站点设置
:Scribe 系统管理员可以定义一些系统级选项,包括电子邮件服务器位置(用于警报传递)和系统睡眠选项(例如,在预定义的备份期间暂停集成)。
-
警报接收者
:用于定义要接收警报的用户、用户组或用户映射。接收用户具有某种地址(如电子邮件地址),通知将发送到该地址。用户组是一个或多个用户的集合。用户映射允许创建抽象组。例如,创建一个基于 SQL 查询的监控,其中一列包含值 A、B 或 C。在该查询监控的定义中,可以将该列绑定到一个用户映射,该映射的元素标题为 A、B 或 C。如果查询的值为 A,则与映射中元素 A 关联的用户和组将被通知。
-
安全性
:Scribe 系统管理员需要明确指定系统资源,以便在前面描述的文件浏览器、队列浏览器和服务节点中列出。此节点有助于促进该过程。
MSMQ 驱动的集成流程
对于队列驱动的集成流程,需要了解一些内在的预定义消息队列。假设要在 Microsoft Dynamics CRM 中创建新帐户时在 ERP/后台办公系统中创建新客户。此事件始于在 Microsoft Dynamics CRM 中创建新帐户。Scribe 的一种技术 “发布者” 负责监督此更改管理过程。
在这种情况下,Microsoft Dynamics CRM 适配器有几个不同的发布者(具体取决于使用的是 Microsoft Dynamics CRM 在线版、托管版还是本地版)。此时,发布者的职责是识别更改的发生,并向 Scribe 发出信号,表明 Microsoft Dynamics CRM 中的实体已被修改、插入或删除。为此,会将一个轻量级消息放入特定于发布者的 MSMQ 中,Scribe 通常将其称为 “PubIn” 队列。(可以有多个发布者监控 Microsoft Dynamics CRM,每个发布者可能使用自己的 MSMQ,因此确切的 MSMQ 名称在发布者创建时确定。)轻量级消息包括更改的实体、更改的性质以及足够的信息以唯一标识更改的特定实体。
“PubIn” 队列上的消息被发布者拾取,并检索执行集成所需的信息。通过在创建发布者时使用此两步过程,可以定义该过程,以便对一个实体(如 Microsoft Dynamics CRM 中的帐户)的更改实际上可以从其他实体(该帐户的所有地址)中检索信息,以及更改的实体本身。这样,第一步作为通用处理程序向发布者发出更改已发生的信号,而第二步是发布者根据其定义检索所有必要的信息。
从源应用程序(在本例中为 Microsoft Dynamics CRM)检索到完整信息后,会将一条消息添加到 “ScribeIn” MSMQ 中。与 “PubIn” 队列不同,“ScribeIn” 队列是一个名为 “ScribeIn” 的 MSMQ,在安装 Scribe 时创建。所有基于队列的集成流程都将监听此队列。如果不想使用 “ScribeIn” 作为默认 MSMQ,可以在管理的 “站点设置” 节点中定义 Scribe 输入队列。
消息进入 “ScribeIn” 队列后,Scribe 根据创建集成流程时使用的设置找到并运行正确的集成定义。
最后,在 Scribe 工作台中创建集成时,如果集成失败,可以将其标记为自动重试。例如,在跨多个队列实时集成客户和订单时,如果订单在客户之前到达,可能希望自动重试,而不是因 “客户不存在” 错误而失败。具体操作是在 “目标配置” 窗口的 “步骤控制” 选项卡上,选择 “失败” 选项。在结果列表中,将 “失败时控制” 从 “转到下一行” 更改为 “结束作业”,并确保 “退出状态” 设置为 “重试”。
下面是一个 mermaid 流程图,展示了 MSMQ 驱动的集成流程:
graph LR
A[Microsoft Dynamics CRM 创建新帐户] --> B(发布者检测到更改)
B --> C(向 PubIn 队列发送轻量级消息)
C --> D(发布者从 PubIn 队列拾取消息并检索信息)
D --> E(向 ScribeIn 队列添加消息)
E --> F(Scribe 根据设置运行集成)
F --> G[集成完成]
数据集成示例
在控制台中创建事件驱动的集成,可按以下步骤进行:
1. 打开控制台,转到特定协作的 “集成流程” 节点。
2. 点击 “添加” 按钮。
3. 选择 “队列” 作为事件类型,为集成流程命名,然后选择应调用的 DTS。如果收到错误消息,提示协作文件夹未授权,请确保在安全节点(管理 - 安全 - 文件浏览器)中定义了 Scribe 协作文件夹。
4. 在集成流程创建的第 3 步中,将消息标签从通配符 (*) 更改为与创建发布者时定义的消息标签匹配。更改消息标签将确保只有带有正确标签的消息才会路由到此特定集成流程,从而可以将来自特定发布者的消息与特定集成流程关联起来。
5. 进入集成流程创建的另一步骤即可保存集成流程。
6. 完成集成流程创建后,选择刚创建的集成流程并点击 “暂停” 按钮。暂停集成流程将使你能够查看(并诊断)集成管道中的各个步骤。通常情况下,应保持集成不暂停。
7. 在 CRM 中创建一个新帐户。如果已配置发布者,将在 “ScribeIn” 队列中看到一条新消息。如果未看到消息,请确保发布者是根据 “创建 CRM 适配器发布者” 部分创建的。
8. 选择刚创建的集成流程并点击 “恢复” 按钮。集成流程将移除该新消息并进行处理。在 CRM 中创建的新帐户应自动直接流入目标应用程序(如创建的 .dts 中所定义)。如果消息仍保留在 “ScribeIn” 队列中,请确保集成流程设置为使用队列(而不是时间、文件或查询事件)。如果是,请确认与此集成流程关联的消息标签与发布者放置在消息上的消息标签匹配。
数据集成(同步)全解析
过程集成
在 Workbench 中创建集成并在 Console 中配置好实时集成要求后,Scribe 还有许多功能可帮助解决实时集成解决方案中出现的常见问题。
回弹问题处理
在实时集成中,回弹是一个常见问题。回弹发生在双向集成中,当一个应用程序中的更改触发另一个应用程序的集成,而第二个应用程序的更改又触发第一个应用程序的更改,最终导致相同的更改在两个系统之间来回反弹。
为避免回弹,可将集成解决方案定义为如果更改来自特定用户,则不应从第二个集成中发布更改。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 适配器。
下面是一个简单的表格,展示回弹问题处理的步骤:
| 步骤 | 操作 |
| ---- | ---- |
| 1 | 在 Scribe Workbench 中打开 “Settings - Adapter” 窗口,在 “Run As” 选项卡选择用户 |
| 2 | 配置发布者时,忽略特定用户消息并选择相同用户 |
监控功能
Scribe 中有两种不同类型的监控,它们的行为类似:
-
系统监控
:用于报告整个 Scribe 系统的健康状况。系统健康指标可能包括一段时间内的集成数量或失败集成的数量。
-
业务活动监控
:使用相同的技术,但更侧重于业务目标而非系统健康。例如,一段时间内 CRM 中新增的客户数量或按日期分组的订单完成平均时间。
Scribe 用户可以通过 Scribe Console 创建监控。监控可以设置为基于 “查询” 或 “队列” 工作:
-
查询监控
:用户编写类似 SQL 的语法来形成查询。当结果集满足或超过一定的行数或基于某个字段的值时,查询监控会发出 “警报”。
-
队列监控
:监听 MSMQ 队列。可以通过自定义消息标签、特定 MSMQ 消息中包含的消息的 XML 架构和其他类似的消息特征来定义要监控的消息。与查询监控一样,警报可以与队列中的消息数量相关联。常见的用途是确保系统之间的通信高效进行,例如,如果 ScribeIn MSMQ 中的消息数量超过 100,设置监控以提醒 Scribe 管理员。
下面是一个 mermaid 流程图,展示监控功能的工作流程:
graph LR
A[开始] --> B{监控类型}
B --> |系统监控| C(监测系统健康指标)
B --> |业务活动监控| D(监测业务目标指标)
C --> E{是否触发警报条件}
D --> E
E --> |是| F(发出警报)
E --> |否| G(继续监控)
F --> H[结束]
G --> C
数据视图
数据视图旨在以表格或图形形式呈现信息,可以将其视为关键绩效指标(KPI)报告仪表。用户可以创建数据视图来报告某个指标。例如,管理级别的数据视图可能是随时间变化的失败集成数量,而协作数据视图可能是随时间变化的新订单数量。
Scribe 应用程序发布者、查询发布者和桥梁
在过程集成中,扩展系统需要能够响应系统某一部分的用户驱动事件。例如,当用户在 Microsoft Dynamics CRM 中添加帐户时,系统需要将相关信息驱动到 ERP/后台办公系统中。Scribe 支持多种方式来满足这一需求:
| 发布者类型 | 说明 | 优点 | 缺点 |
|---|---|---|---|
| 查询发布者 | 用户定义查询,结果代表要管理的项目。可以将查询结果集的行分组以优化集成事件。是一种 “轮询” 方法,Scribe 按用户配置的时间间隔定期运行查询并对结果集做出反应 | 可以处理大量数据,适合定期检查数据变化情况 | 可能产生不必要的网络通信,数据更新不及时 |
| 适配器发布者 | 某些应用程序在发生更改时会自行发出信号,而不是进行定期检查。当新内容准备好时,应用程序会发出信号 | 减少不必要的网络通信,实现更接近实时的集成 | 依赖于应用程序自身的信号机制 |
下面是一个 mermaid 流程图,展示查询发布者和适配器发布者的工作流程:
graph LR
A[开始] --> B{发布者类型}
B --> |查询发布者| C(定期运行查询)
B --> |适配器发布者| D(等待应用程序信号)
C --> E{有新数据吗}
D --> E
E --> |是| F(处理数据并集成)
E --> |否| C
F --> G[结束]
综上所述,Scribe 在数据集成与同步方面提供了丰富的功能和工具。从基本的数据集成操作,到复杂的实时和双向集成配置,再到解决常见问题的功能,如回弹处理、监控和不同类型的发布者机制,都为用户提供了全面的解决方案。通过合理运用这些功能,用户可以更高效地实现不同系统之间的数据集成与同步,满足业务需求。
超级会员免费看

被折叠的 条评论
为什么被折叠?



