批/离线处理设计书/文档

Chr*_*now 4 architecture batch-processing

是否有书籍或任何文档描述了设计批次(离线)流程以便在双方之间共享数据的最佳实践?

我在spring批次站点上找到了一些有用的信息,但它的级别很低: 批处理策略批处理原则指南.

批次有很多注意事项,例如:

  1. 数据传输方法(例如文件)
  2. 双方之间的控制协议
  3. 错误处理
  4. 文件命名约定(如果使用文件进行传输)
  5. 同步双方的截止时间
  6. 等等

如果有一些授权文件或清单确保设计遵循该领域的最佳实践,那将是一件好事.


更新:

当我遇到它们时,我将添加本节的答案.

一般批处理/离线处理信息

本节摘自@ user1813068的答案.

你会发现在这个区的一些建筑设计模式的链接,并也是在这个链接描述为合作伙伴集成合作伙伴和数据同步方法.

此维基百科页面还提供了架构模式的高级概述,并包括数据集成的模式:架构模式.

" 数据集成蓝图和建模 "一书也非常好.

数据文件

本节中的大部分内容来自此处:来源

使用页眉和页脚进行平面文件交换被认为是最佳实践.可以在没有页眉和页脚的情况下交换平面文件,并且文件的命名可以概述与标题相同的一些信息.使用分隔文件时,始终需要字段列表标题.

在系统之间交换数据时,接收方确切地知道正在发送什么类型的数据是非常重要的.确保这一点的一种方法是提供标题行,其中包括有关数据内容及其处理方式的相关信息.

使用平面文件时,文件名本身也可用于通知接收方文件内容.但是,标题行可以为所有可用选项提供更好的支持.

使用API​​时,可以以类似的方式提供这些标题字段.实施将由API服务的开发人员确定.

如果包含标头,则它由一组数据组成,并且必须始终是文件中的第一个数据.

页脚

当使用基于文件的格式来指示没有剩余的数据要处理时,可以提供页脚.

处理时,应忽略在页脚行之后找到的数据.此外,在创建数据时,请注意页脚行之后的任何数据都将被忽略.

数据格式

分隔文件

事实上的行业标准是分隔文件.

逗号分隔(CSV或逗号分隔值)文件通常需要数据封装,通常使用双引号(");然后必须使用反斜杠()或双引号("")对双引号进行转义.对于CSV实现中的不一致性,建议使用制表符作为分隔符,不进行封装.在这种情况下,必须从数据中删除制表符.分隔文件通常可以更快地处理XML文件.

XML文件

业内有一些人更喜欢XML文件.XML允许更清晰地表示信息,因为它支持嵌套数据.许多公司对此格式的支持有限或不支持,因此不建议这样做.

编码

UTF-8编码

所有数据都应采用UTF-8编码,以确保所有系统之间的最大兼容性.

日期和时间

建议对所有日期和时间字段使用UTC时间以防止混淆.


一些更好的实践:EDI调度和文件传输

Chr*_*now 5

你会发现在这个区的一些建筑设计模式的链接,并也是在这个链接描述为合作伙伴集成合作伙伴和数据同步方法.

此维基百科页面还提供了架构模式的高级概述,并包括数据集成的模式:架构模式.

" 数据集成蓝图和建模 "一书也非常好.

  • @ObsessiveSSOℲ通常,是的.然而,这个问题实际上要求提供外部信息(书籍/文件)! (2认同)