为什么基于 CSV 文件的集成比基于 API 的集成更好
已发表: 2018-11-07商家经常需要将大量数据(例如产品目录、订单或客户数据)从一个系统移动到另一个系统以进行处理或组织。 问题是一个系统如何构建和接受数据可能与目标系统不同。 那么,您如何在系统之间传输和共享数据(除了手动输入)?
许多依赖于使用 CSV(逗号分隔值)文件在系统之间导出和导入其数据的文本文件的集成。 CSV 是一种通用文件类型,许多系统都支持并且商家可以轻松管理。 虽然文件集成通常是一种集成选项,但它也有其局限性。 在您评估这种数据集成方法时,本文考虑了为什么通过 CSV 文件进行基于文件的集成比基于 API 的集成更好。
什么是平面文件集成?
基于文件的集成是指您的源数据和/或目标数据必须在文件(如 CSV 文件)中表示。 一些系统需要它作为 API 或直接数据库连接的替代方案。 基于文件的集成允许数据在不同的数据库或操作系统之间传递,而不必直接连接到它们。
虽然基于文件的集成可以包括不同的文件类型(例如 XML、JSON),但本文特别关注 CSV 文件集成。 CSV 文件中只能包含一个文件,但有时基于文件的集成需要您组合来自多个文件的元素。 它们被称为“扁平化”文件,其中在多行中定义了一条记录。
CSV 用于存储表格数据。 这意味着它们可以从将数据存储在表格中的程序(如 Microsoft Excel 或其他电子表格软件)中导入和导出,以成为可读格式。 需要注意的是,CSV 不能包含公式或 Excel 工作表提供的任何格式设置功能。 如果您将 Excel 文档另存为 CSV,则所有多余的内容都将被删除。
由于各种原因,商家几十年来一直成功地使用 CSV 文件集成在系统之间移动数据。 然而,在过去的 10 到 15 年中,API 已经成为两个系统相互通信或集成的一种更“现代”的方式。 有什么不同?
API 集成与 CSV 集成方法
API(应用程序接口)是一组代码,允许两个软件程序相互通信。 软件的 API 为开发人员编写从另一个系统或应用程序请求服务的程序提供了一种标准的、可预测的方式。
REST (REpresentational State Transfer) API 接受对 GET、PUT、POST 或 DELETE 数据的 HTTP 请求。 REST 代表了大多数现代 Web 服务开发中使用的一种架构风格和通信方法。 因此,它通常用于构建允许用户与云服务连接和交互的 API。
SOAP(简单对象访问协议)是另一种用于开发 API 的协议。 它在新 API 中不如 REST 常见,但完成基本相同的事情。
API 集成让您可以通过 API 在两个系统之间解释和转换数据,从而连接两个系统。 它支持数据流,例如从 ERP 中的已知 API 端点“获取产品”和“PUT 产品”到电子商务平台中的已知 API 端点。
虽然 API 集成是一种更现代的方法,但对于希望集成其系统的商家而言,它并不总是正确的解决方案(或可能)。 下面深入探讨了为什么基于文件的集成比 API 集成更好。
为什么基于文件的集成比 API 集成更好
在某些情况下,CSV 集成可能对您的业务最有意义。 请参阅下面这种系统集成方法的一些主要优点。
无需 API 即可保持和连接系统
并非所有软件系统都具有可用于集成的 API。 对于较旧的“遗留”软件来说通常是这种情况,但对于像 Salesforce Commerce Cloud (Demandware) 电子商务平台这样的现代系统来说也是如此。 必须在不使用 API 的情况下与这些系统集成,这意味着您最好的选择可能是基于文件的集成。
大多数系统至少通过手动导入过程接受 CSV,无论软件的年龄如何。 有些(同样,如 Salesforce Commerce Cloud)提供通过指向 SFTP 服务器自动导入 CSV 的能力。
值得注意的是,许多商家将使用这种集成方法,而不是承担有时成本高昂的项目来升级或替换这些无 API 系统。
非专有
CSV 文件不属于任何特定软件供应商。 创建和共享 CSV 是处理数据的通用方式。 这使它们易于在人和系统之间进行交互和共享。 您可以利用 Excel 或其他电子表格软件创建 CSV,大多数人都习惯以这种方式处理它们。 无论您使用哪种特定软件,能够导入和导出 CSV 文件并不是该软件或品牌独有的。
更容易创建文件
由于 CSV 是纯文本文件,因此 Web 开发人员或团队的其他成员可以更轻松地以电子表格的形式创建、查看和验证数据。 您所需要的只是顶部的标题行和随后的数据行。 您将能够根据需要操纵数据来组织它。 然后很容易在不同的系统之间共享这些数据。
数据之间没有层次关系,除非您使用多个 CSV 文件人为地表示该层次结构。 如果您需要这样做,它确实会使基于 CSV 的集成更加复杂。
商家可能创建的 CSV 文件的常见示例是定价表、客户列表、产品数据、订单数据以及在其电子商务和 ERP 或 POS 系统之间共享的折扣。
多源之间的标准通信
CSV 文件也是一种标准的数据通信方式,这使它们成为从多个来源或系统收集和编译数据的绝佳工具。 虽然数据的格式(哪些列的顺序)可能会有所不同,但 CSV 是一种成熟的、几乎普遍支持的文件类型。
例如,您可能会从少数不同的供应商那里收集产品目录。 无论他们使用什么系统来掌握他们的产品数据,他们都应该能够导出他们所有产品数据的 CSV。 然后,您可以获取此 CSV 文件并将其导入您的系统。 您无需担心直接集成到他们的系统中。 由于安全或其他问题,您甚至可能没有直接的 API 集成选项。
基于文件的集成的局限性
您应该考虑这种集成方法的缺点,尤其是在将此方法与基于 API 的集成等替代方法进行比较时。
安全责任
当自动化 CSV 文件传输时,您实际上是在服务器上放置一个文件,然后由另一个系统拾取该文件。 谁在维护服务器? 在整个过程中,您如何确保数据安全?
基于文件的集成要求商家以不同的方式考虑安全性。 虽然您希望您的数据在整个传输过程中都是安全的,但您也不能让访问变得太困难。 否则,将很难与其他业务系统进行通信。 您有责任找到这种平衡并确保所有人(仅此而已)可以根据需要访问这些文件。
批量同步
在集成系统时,大多数商家都希望在系统之间实时或即时同步他们的数据。
这对于具有快速变化的库存可用性的电子商务项目或必须在两天内发货的订单等数据尤其重要。 在线下订单后,您希望减少所有销售渠道的库存数量并开始处理订单。 这种同步的延迟,即使是小至 30 分钟,也可能在限时抢购或节假日等销售高峰期造成超卖。 它们还可能会减慢订单履行速度,导致您错过保证的交货日期。 您的客户将承担后果。
默认情况下,大多数 CSV 文件集成无法立即同步。 这是因为当其他一些系统不断地从 CSV 读取新行时,实际上不可能不断地向 CSV 写入新行。 您必须将一堆行写入文件,删除要拾取的文件,然后启动一个新文件。
这意味着无论您启动新文件的规则是“行数”还是“时间段”,在此过程中都会存在某种延迟。
以另一种方式考虑 CSV 文件集成:您不会像电子邮件一样按需交付邮件。 一天一次,您可能会收到一批信件,并且您也将它们作为一批发送出去。
处理复杂的数据结构
虽然 CSV 的平面文件结构可能是一个优势,但也可能是它的缺点。 按照设计,CSV 数据既不是分层的也不是面向对象的,这意味着它们具有普遍存在的结构。 对于某些商家来说,当您有多个相互关联的数据层时,这是一个问题。 考虑一下您需要如何表示具有多个订单项的订单或具有多种尺寸或颜色的产品。
您最终将创建多个 CSV 文件来尝试表示数据之间的这种关系。 尝试管理和组织大量数据可能具有挑战性。
验证数据
系统集成的一个关键步骤是验证您正在传输的数据。 您不想将不准确或错误的数据发送到另一个系统,尤其是因为它可能导致“无效”错误。 通过 CSV 文件集成,数据验证对用户来说是一个手动过程。
当您处理包含数百行数据的多个 CSV 时,验证变得难以管理。 您将不能仅仅“目测”一切看起来都很好发送。 相反,如果错误,用户将依靠用 Excel 编写的公式或宏来突出显示单元格。 然后,您需要手动修复任何错误。 在查看大量数据时,此过程既耗时又出错。
在某些情况下,加载 CSV 数据的系统可能会在导入的 CSV 上提供数据验证,但这也有缺点。 这些特性的存在性和鲁棒性在平台间并不一致。 而且,他们通常在失败时无法很好地管理导入事务。 这可能意味着如果 100,000 行中有一行不正确,则整个导入可能会失败。
从数据传输期间的错误中恢复
CSV 文件集成依赖于在服务器上删除和拾取文件。 在整个过程中,可能会出现很多问题,例如文件损坏或服务器或文件系统关闭。 通常也不会检查无效字符、缺少数据描述或其他文件内容问题。 当您发送有这些问题的文件时会发生什么? 你打算如何修复它?
管理用于数据处理的计算资源
根据编写代码以集成系统的方式,基于文件的集成可能会占用大量 CPU 和 RAM 来跨多个文件读取大型数据集。
字符编码问题
每个系统都有自己的默认字符编码,例如 UTF-8。 在共享文本文件(如 CSV)时,商家必须考虑到文件需要使用相同的编码字符。 否则,您的 CSV 文件之一可能会被拒绝,或者数据可能会出现错误,因为系统无法正确读取您的字符。 例如,目标系统可能无法读取亚洲语言的专用撇号或字符。
了解有关 CSV 集成的更多信息
在整合他们的系统时,商家可以选择。 对于许多人来说,通过 CSV 进行基于文件的集成可能是正确的选择。 但是,这种集成方法并非没有您应该考虑的缺点。
如果您有兴趣了解有关如何通过基于文件的集成实现业务自动化的更多信息,请了解有关 nChannel 文件传输解决方案的更多信息,该解决方案旨在直接解决本文档中描述的所有挑战。