和小青GPT助理聊天吧

小青是一位基于大语言预训练模型的超级智能AI,熟悉轻易云产品并能为您提供多种数据集成方案和技术支持。您在使用轻易云产品时遇到问题或有关技术咨询,小青都将为您提供专业、即时、高效的帮助和建议。与小青智能对话,您可享受同人类互动一样的使用体验,全面了解最新产品更新、功能特性及相关技术资讯,进一步提升您在数据集成领域的实力。小青是您友好、智能、便捷的助手,与她互动让您的数据集成之路轻松愉快。
轻易云自训练大语言模型小青助理
扫码关注公众号即可开始聊天

一篇文读懂如何设计系统间数据对接传输

如果一个系统特别外向,喜欢与周边的系统互动,乐于参与交流,成为了一个热门的“社交明星”,那么它基本上扮演的是中台的角色。

但实际上,大多数系统都处于两种极端之间。就像人类社会一样,既需要自己生产,也需要参与交流——这在系统世界中体现为数据对接。

数据对接的核心目的是实现信息的有效传输。

在后端产品的世界里,系统间的对接,无论是子系统之间,还是与外部系统之间,都是非常常见的现象。
作为一名产品经理,理解数据来源,并清晰掌握数据获取后的处理流程,包括握手协议、运算逻辑、异常处理规则、容错机制和数据日志等,是非常关键的。

本文旨在探讨以下几个关于数据传输的关键话题:

  1. 数据传输的场景与意义:探讨数据传输发生的背景和它的重要性。
  2. 数据传输的方式:介绍不同的数据传输技术和方法。
  3. 数据传输的处理机制:分析数据在传输过程中的处理流程和机制。
  4. 数据传输的注意事项:指出在数据传输过程中需要注意的关键点。

通过以上内容的探讨,旨在为读者提供一个关于系统间数据传输的全面视角。

一、数据传输的场景及其重要性

数据传输的应用场景

前后端互动

在任何时间点,前端与后端之间都在进行数据的不断互动,这是为了确保信息能够在系统间无缝共享。例如,一旦某个系统部署完成,各个系统模块就需要协同工作,如订单系统需要将库存扣减数据同步给备货系统以便进行采购操作。

与第三方平台的集成

例如,当店铺入驻第三方销售平台,如淘宝天猫时,店主需要管理自己的订单数据,这就需要从淘宝天猫平台获取订单信息。

调用公共插件

为了避免“重新发明轮子”,许多开放性功能插件可供调用或集成,如集成百度地图API或微信小程序的二次开发等。

企业内部多套系统集成

为了避免“重新发明轮子”,许多开放性功能插件可供调用或集成,如集成百度地图API或微信小程序的二次开发等。

企业内部多套系统集成

  • 例子:用友ERP系统与CRM销售系统 *

在企业内部,ERP (企业资源计划) 系统和CRM (客户关系管理) 系统的集成是提高运营效率和客户满意度的重要手段。例如,用友ERP系统主要处理企业的内部资源计划、财务管理、生产、库存等后端操作,而CRM系统则专注于管理客户信息、销售机会和营销活动。

集成这两套系统意味着销售团队在CRM系统中更新的客户订单信息可以自动同步到ERP系统,实现库存管理和订单履行的自动化。这样,不仅提高了处理订单的效率,还减少了因手动输入数据而导致的错误,确保了信息的一致性和准确性。

企业营销系统与外部经销商系统集成

  • 例子:百威啤酒BEES营销云系统与经销商ERP系统 *

对于面向消费者的企业来说,如百威啤酒,其BEES营销云系统与各个不同经销商的ERP系统的集成是扩大市场覆盖和提升销售效率的关键。BEES系统作为一个先进的营销和销售平台,能够提供实时的市场数据、客户偏好和购买行为分析等信息。

通过将BEES系统与经销商的ERP系统集成,可以实现订单自动传输和库存管理,确保产品及时补货,同时还能根据市场需求动态调整营销策略。这种集成不仅加强了企业与经销商之间的协作,也为最终消费者提供了更加及时、个性化的服务。

数据传输的意义

资源与功能的有效利用

通过共享和传输数据,可以避免重复创建数据库,从而减少资源和功能的浪费。

统一数据源

统一数据的维护和生产源头,可以避免在相同公司的不同系统间数据不一致的问题,确保信息的准确性和一致性。

利用外部数据

有些数据是无法由自己产生的,因此需要利用现有的资源,如API或SDK,来共享他人的数据或功能,这不仅节省了时间,还可能因技术限制而无法自行开发的功能。

通过上述分析,我们可以看到数据传输不仅是技术层面的需求,也是确保企业运营效率和信息流通性的关键要素。在数字化时代,有效地管理和传输数据是保持竞争力的重要策略之一。

二、数据传输方式详解

在现代企业的IT架构中,数据传输扮演着至关重要的角色。产品经理将数据传输方式分为接口传输、中间件传输、消息方式传输等几类,每种方式都有其特定的应用场景和优缺点。以下是对这些数据传输方式的进一步解析和说明。

接口传输

常见形式

接口传输是最基础且广泛使用的数据传输方式之一,它支持客户端与服务器之间的交互模式。这种方式包括HTTP调用、Java远程调用、Web Services等,其主要区别在于传输协议和报文格式。

接口的作用

接口允许系统调用第三方功能插件(例如API接口),或者根据特定需求开发定制化接口解决信息传输问题(例如HTTP接口)。接口使得数据和功能的共享成为可能,增强了系统间的互操作性。

接口创建原则

  • 谁负责创建接口? 数据传输的需求方通常是接口的请求方,而接口则应由提供数据的一方创建。这基于一个简单的原则:数据源方控制数据的输出。
  • 定义接口 涉及规定数据传输的格式、验证机制、数据范围等关键信息,以确保数据传输的准确性和安全性。
  • 数据转义 数据在传输过程中是否需要转换或转义,这取决于数据的最终使用场景。原则上,如果数据将被二次利用,则应尽可能地保持其原始形式。

数据获取方式

  • 主动获取 vs. 被动推送 数据可以通过请求获取(如HTTP GET方法)或由数据生产方主动推送(如HTTP POST方法)。选择哪种方式取决于数据的时效性要求和系统间的协议。

接口传输细节

  • GET vs. POST:GET方法适用于请求数据量小的场景,而POST方法适用于数据量大或需要较高安全性的场景。
  • 产品经理的角色:虽然接口定义是开发的职责,但产品经理需要明确数据传输的需求,包括传输频率、参数规则、数据格式等,并与开发团队紧密合作确保接口设计满足实际应用需求。

示例方案设计

考虑到实际应用的需求,产品经理可能需要提出类似以下的接口使用方案:

  • 定时拉取:比如,每小时从数据源系统拉取最新的50条数据记录,若超出数量限制,则在下一时间窗口继续拉取剩余数据。
  • 数据处理:明确指出数据拉取后的处理逻辑,比如是否需要转换数据格式,如何处理重复数据等。

通过这种方式,产品经理不仅明确了数据传输的需求,也为开发团队提供了清晰的指导,确保数据传输过程高效、安全、符合业务需求。

三、 数据流转的时效性

数据初始化和同步

当通过接口进行数据交换时,首先要考虑的是数据的初始化,确保在系统间基础数据保持一致性。这是上线前的重要步骤,以避免在后续操作中出现数据不一致的情况。数据同步的机制和要求应在方案定义阶段就明确设定。

同步机制

  1. 触发式同步:基于特定事件或条件的满足自动触发数据的同步。例如,当一个订单状态发生变化时,自动同步更新至相关系统。

  2. 定时任务同步:当数据源更新时间不可预测时,采用定时任务脚本周期性地检查并同步数据。这要求请求的频率与数据源的更新频率协调一致,以达到数据同步的目的。

接口的特点总结

优点

  • 时效性:接口能够支持实时数据交换和响应,适用于需要快速反馈的场景。
  • 安全性:通过HTTPS等传输层协议,可以加密数据传输,提高交换过程的安全性。
  • 通用性:接口支持多种编程语言和平台,使得不同系统间的集成和数据交换成为可能。

缺点

  • 依赖性:服务器和客户端必须同时在线,当服务器不可用时,数据交互无法进行。
  • 资源消耗:大量数据传输可能会占用大量网络带宽,导致连接超时,影响服务的可靠性。

相关概念扩展

  • API(应用程序编程接口):为软件系统之间交互提供预定义函数的一套规则和工具,无需了解底层实现细节即可使用。

  • Open API:指向外部开放的接口,如百度地图API、Facebook API、金蝶开放平台OpenAPI、钉钉开放平台等,任何开发者都可以按照规定的条件使用这些接口。

  • SDK(软件开发工具包):通常是一套API的集合,提供更完善、便于开发的功能和工具包。

  • HTTP接口:一种基于HTTP协议的接口传输方式,使用HTTP请求与响应模式进行数据交换。

API和HTTP接口的使用取决于具体的应用场景。API提供了一种更为广泛和概念化的交互方式,而HTTP接口则更侧重于基于Web的数据交换。在撰写方案时,根据实际需要选择适当的术语和技术是至关重要的。

四、消息队列MQ(Message Queue)

1. MQ概念

消息队列(MQ)是分布式系统中用于交换信息的一种技术,允许应用程序异步地发送和接收数据。这种技术使得数据可以像排队进入隧道一样,由一方推送到队列中,另一方则依次消费这些信息。消息队列可以基于内存或磁盘,直到消息被消费前,都会在队列中等待。MQ特别适合处理大数据量、高规律性的批量数据传输,主要用于应用解耦、异步处理、流量削峰等场景。

2. 异步处理示例

考虑用户注册场景,需要发送注册邮件和短信,常见的处理方式有:

  • 串行方式:用户信息写入数据库后,依次发送邮件和短信。这种方式虽然简单,但总体响应时间较长。

  • 并行方式:信息写入数据库后,同时发送邮件和短信,能相对提高处理速度。

引入MQ后的异步处理:用户注册信息写入数据库即返回响应,而发送邮件和短信的任务被推送到消息队列中异步处理。这极大缩短了用户等待的时间,并提升了系统的处理能力。

3. 异常情况处理

  • 首次消费失败:如果消费者无法正确处理消息(如数据格式不匹配),可以将消息重新放回队列中,等待下一次消费尝试。

  • 消息积压处理:设置机制,如消息循环次数过多或积压量超标则触发报警,及时处理异常情况,避免系统过载。

4. MQ与其他数据传输方式对比

  • 反馈机制:MQ推送到中间件即认为完成,不需要确认反馈。接口通信则需要响应来确认数据传输结果。

  • 消费模式:MQ中的消息一般只能被单个消费者消费一次,若多系统需要则需创建多个队列;接口则可由多个系统共同调用。

  • 文件共享:类似接口,文件共享方式在数据传输后不需要额外的反馈确认,适用于多方需求的场景。

5. 其他数据传输手段

  • 导入导出:适用于系统间无法直接对接但线下可获取数据的场景。要求数据量适中,格式标准化。

  • 爬取:当无法通过官方接口获取数据时,可通过爬虫技术抓取所需信息。需注意对方网站的反爬策略和法律法规。

MQ作为现代企业架构中重要的数据传输和处理工具,其异步处理能力极大地提升了应用的性能和可扩展性。然而,选择合适的数据传输方式需要根据实际业务需求、数据特性及系统架构综合考量。

五、数据传输的处理机制

1. 数据同步的触发机制

数据同步的频率和触发机制取决于具体的应用场景,通常要求数据能够持续不断地被获取。主要的触发方式包括:

  • 操作事件触发:例如,用户点击页面按钮即触发数据的最新状态同步。这种方式响应迅速,但可能因并发操作增加系统负载。
  • 异步机制:适用于时效性要求不那么高的情况,通过定时运行脚本监控数据变化。例如,设定脚本每2小时检查一次,在这个频率下获取A系统6小时内的更新数据,以确保不遗漏任何信息。定时任务的应用十分广泛,能有效减少直接查询数据库的性能开销。

2. 是否异步执行数据处理

对于需要进一步本地处理的数据,推荐先暂存至中间表,然后异步写入最终表。这样不仅方便错误排查(相当于数据清洗),而且减少模块间的耦合,提高系统的稳定性和可维护性。对于大量数据的处理,采用异步方式几乎是必须的。

3. 判重机制

数据在持续流动的过程中,可能会出现重复或相关数据的情况。通过设定唯一标识字段(如身份证号)进行数据更新或插入,可有效避免重复。在无法确定唯一字段时,可以通过人为定义的规则(如unique_code)来实现数据去重。

4. 数据的使用方式

数据使用方式分为两种:一种是直接通过接口调取显示,不在本地数据库保存;另一种是先保存到本地数据库后再进行调用。后者是常见的做法,它需要考虑数据的异步保存问题和保证数据的同源同步。

5. 处理日志

记录数据处理的日志至关重要,它帮助追踪数据的来源和去向,便于问题分析。日志记录应包括数据的提供、接收和写入情况。根据需要,日志可以保存到数据库中,便于长期追溯和分析。

六、数据传输的注意事项

1. 目标数据表与中间表的维度一致性

为了确保数据准确性和便于追踪异常数据,建议目标数据表(b’)与中间表(b)的维度保持一致。确保两表间去重字段相匹配,可以实现数据的一对一对应,方便异常数据溯源。

2. 不同入口的数据去重策略

在面对新旧两个数据写入程序将数据写入同一类型的利润表时,如何处理两个入口各自不同的去重规则,成为一项挑战。例如,入口1使用A+B作为去重字段,而入口2使用B+C。为了避免同一数据项的重复写入,可以采取以下策略:

  • 方案一:当入口1遇到待写入数据时,首先使用其去重字段A+B进行校验。若数据不存在,则进一步使用入口2的去重字段B+C校验。如果依然不存在,才由入口1写入;如果存在,则不进行写入,因为入口2将负责写入该数据。
  • 方案二:入口1直接使用入口2的去重字段B+C进行校验。如果存在重复数据,则本入口不进行写入;否则,按照本入口规则进行写入。相较于方案一,方案二的判断路径更短,执行效率更高。

3. 同步基础数据时的过滤策略

在同步基础数据(如员工信息)时,需决定是否仅同步特定状态(如“是否有效”)的数据。建议在数据量变化不大的情况下,同步全量数据。这样做的原因包括:

  • 当A系统中某个启用状态的用户突然被禁用时,B系统可以通过检查中间表中的状态,直接识别出问题所在,无需跨系统或跨部门进行复杂的沟通和验证。

热门文章

金蝶云星空和金蝶云星空集成接口设计

2023-01-26 10:15:39

金蝶云星空与阿里宜搭对接集成搜索表单实例详情列表连通费用申请新增(yk_宜搭_金蝶费用申请单(客户))

2023-01-26 10:15:38

旺店通·企业奇门和金蝶云星辰V1集成接口设计

2023-01-26 10:15:37

金蝶云星空、管易云·奇门通过接口配置数据对接

2023-01-26 10:15:34

畅捷通T+、道一云通过接口配置数据对接

2023-01-26 10:15:33