Architecture 批处理/脱机处理设计手册/文档

Architecture 批处理/脱机处理设计手册/文档,architecture,batch-processing,Architecture,Batch Processing,是否有一本书或任何文档描述了设计用于在双方之间共享数据的批处理(脱机)流程的最佳实践 我在spring batch网站上找到了一些有用的信息,但级别很低: 和 批处理有很多考虑因素,例如: 数据传输方法(如文件) 双方之间的控制协议 错误处理 文件命名约定(如果使用文件进行传输) 在双方之间同步截止时间 等等 如果有一些权威性的文档或检查表可以确保设计遵循该领域的最佳实践,那将是一件好事 更新: 当我遇到这些问题时,我会在本节中添加答案 一般批处理/脱机处理信息 本节摘自@user181306

是否有一本书或任何文档描述了设计用于在双方之间共享数据的批处理(脱机)流程的最佳实践

我在spring batch网站上找到了一些有用的信息,但级别很低: 和

批处理有很多考虑因素,例如:

  • 数据传输方法(如文件)
  • 双方之间的控制协议
  • 错误处理
  • 文件命名约定(如果使用文件进行传输)
  • 在双方之间同步截止时间
  • 等等
  • 如果有一些权威性的文档或检查表可以确保设计遵循该领域的最佳实践,那将是一件好事


    更新:

    当我遇到这些问题时,我会在本节中添加答案

    一般批处理/脱机处理信息 本节摘自@user1813068的答案


    您可以在这里和这里找到一些体系结构设计模式,它们描述了合作伙伴到合作伙伴集成和数据同步的方法

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

    这本书也很好

    数据文件 本节中的大部分内容都来自这里:

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

    标题 在系统之间交换数据时,接收方准确地知道发送的数据类型非常重要。确保这一点的一种方法是提供一个标题行,其中包含有关数据内容以及应如何处理数据的相关信息

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

    使用API时,可以以类似的方式提供这些头字段。实现将由API服务的开发人员确定

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

    页脚 当使用基于文件的格式时,可能会提供页脚,以指示没有更多的数据需要处理

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

    数据格式 分隔文件

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

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

    XML文件

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

    编码 UTF-8编码

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

    日期和时间

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



    更多最佳实践:

    根据您的要求,您可以查看数据复制系统以按原样传输数据。有很多商业和开源工具。您可以查看


    如果您需要进行一些转换和处理,可以查看ETL(提取、转换、加载)工具。大多数数据仓库书籍都有关于这一主题的章节,例如,

    您可以在这里和这里找到一些架构设计模式,它们描述了合作伙伴到合作伙伴集成和数据同步的方法

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


    这本书也很好。

    欢迎来到Stack Overflow!虽然这可以从理论上回答这个问题,但请在这里包括答案的基本部分,并提供链接供参考。@OccessoℲ 通常是的。但是这个问题实际上需要外部信息(书籍/文档)!@PaulGregory我很抱歉。我的评论一定是基于旧版本,或者当时误读了原始帖子。