暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Apache Kafka和SAP与Kafka Connect ODP源连接器的集成

Kafka Confluent 兴趣爱好者 2021-06-10
3467

SAP是一家德国跨国软件公司,致力于开发和销售企业软件以管理业务运营和客户关系。SAP以ERP解决方案而闻名,例如SAP ECC和SAP S 4HANA。但是,对于每个单独的解决方案,都有多个组件。例如,如果企业要采用SAP ECC,则IT团队需要考虑不同的版本,架构,集成选项(例如,专有和开放接口以及多个SAP中间件选项)以及其他第三方插件解决方案。这篇博客文章探讨了SAP如何通过利用Kafka Connect和INIT Software的ODP连接器为ApacheKafka®和SAP集成提供一种现代的,可扩展的方法

Kafka和SAP集成–永无止境的故事

在数据和应用程序层上都有多种集成Kafka和SAP系统的选项,这使得企业选择正确的方法既具有挑战性,也至关重要。一些最常见的选项是:

  • 传统中间件(ETL ESB)

  • Web服务(SOAP / REST)

  • 第三方交钥匙解决方案

  • Kafka Connect的Kafka原生连接

  • 使用SAP SDK的自定义胶水代码

由于集成替代方案和SAP产品,界面和用例的种类繁多,因此研究和确定适合您的选择并不是一件容易的事。Kafka SAP集成博客文章– API,工具,连接器,ERP等探索了可用的不同选项,它们的用例以及优缺点。

关键考虑因素是该项目需要外部第三方集成解决方案(例如ESB或ETL工具)还是Kafka本机集成解决方案(通常基于Kafka Connect)。两种方法各有利弊。博客文章Apache Kafka与企业服务总线(ESB)–朋友,敌人还是朋友探索了ESB / ETL工具和Kafka生态系统之间的不同概念和体系结构。

以下内容介绍了基于Kafka Connect和SAP Operational Data Provisioning(ODP)的集成选项。这种结合将完全支持的交钥匙解决方案与Kafka Connect和Confluent Platform的优势相结合,可提供高可扩展性和性能,简单的安装和操作以及关键任务支持SLA。


INIT软件的SAP连接器

自1996年成立以来,INIT Individuelle Softwareentwicklung&Beratung GmbH的服务组合的重点是异构系统领域,复杂结构和业务流程以及分布式信息中与SAP相关的项目。对于此处介绍的解决方案,我们在Hadoop生态系统中的实际项目经验特别有优势,并且我们一直致力于使用各种技术为SAP集成开发解决方案。

架构

在开发SAP连接器时,我们做出的体系结构决策的最重要方面是可伸缩性,性能,简单性,广泛的适用性以及受现代微服务启发的狭窄范围。通过Kafka Connect API与Kafka生态系统紧密集成,使您可以利用Confluent Platform提供的集中日志记录,监视,配置和维护功能,以及一致的服务,例如故障转移恢复和使用逻辑偏移量的精确一次交付语义,退回恢复,将数据转换为不同的数据格式,模式处理等等。

下图提供了为ODP源连接器选择的内部体系结构的概述。它代表了最灵活,开箱即用的设计,可用于从基于SAP NetWeaver ABAP的系统中收集数据,并使用成熟的技术和界面将其写入Kafka。

SAP运营数据供应(ODP)

SAP提供了几种与本机SAP系统进行交互和数据交换的解决方案,其中之一就是ODPODP可用于从基于SAP NetWeaver AS ABAP的系统(例如SAP ERP,ECC或S / 4HANA)提取数据。因此,它不适用于SAP Ariba,Business One,Concur和SuccessFactors等系统。

INIT选择SAP ODP作为其源连接器的集成方法,因为它为数据提取和复制提供了独特的技术基础架构。ODP已成为从SAP ABAP系统到SAP BW / 4HANA的数据复制的中央基础架构ODP API v2.0使连接器可以连接到称为上下文的不同源类型,包括众所周知的SAPI数据源(提取器),HANA视图,BW InfoProvider,SLT和ABAP CDS等。大多数历史业务内容数据源已迁移到ODP。除了直接数据访问外,还可以进行完全复制,更改数据捕获(CDC)或增量复制,数据初始化,实时数据复制,投影和过滤器,ODP在它们之上添加了另一层,以提供统一的数据复制体验。与要求您直接访问基础7.x数据源相反,这带来了数据提取性能的提高。通过以压缩格式将数据持久存储在增量队列中,这也使来自多个使用者的订阅成为可能。

Kafka Connect ODP源连接器

Kafka ConnectKafka的原生组件,也是用于将第三方系统与Kafka无缝集成的框架。它提供了用于开发源连接器和接收器连接器的高级Connect API,并且与Confluent Platform集成。

ODP连接器与connect API完全兼容, 两者也能够与kafka Connect和Confluent 平台无缝集成与底层Consumer和Producer API开发的连接器相比,Connect API提供了与Kafka Connect的紧密集成。它充分利用了Kafka Connect的offset管理,从而减少了实现功能(如回滚策略和精确一次语义)所需的工作量。

连接器的安装过程就像从Confluent Hub下载和解压缩连接器存档一样容易,可以通过使用Confluent Hub CLI进一步进行编码。您只需手动处理一个外部依赖项,即将SAP Java连接器(SAP JCo)库复制到连接器的类路径中。可以从SAP市场上下载SAP JCo库

该连接器还与Confluent控制中心完全集成关于连接器的实例化,维护和配置,控制中心通过完善的Web UI指导您完成每个步骤。您还可以使用简单的属性文件或Kafka Connect REST API配置连接器,但是您会错过Control Center的交互模式,该模式显示/隐藏相关属性并发现源系统中的元数据条目,从而提供了-fly数据输入验证。

下图描述了在Confluent Platform中运行的连接器实例。这些是在增量初始化测试期间进行的,该测试从债权人的订单中提取了大约200万个数据集和大约1 GB的数据。

SAP ODP可以被 RFC或OData 消费。当涉及到非常大的数据集的数据复制时,该连接器使用SAP JCo而不是OData来建立基于RFC的连接,以实现最佳性能。此外,JCo还为SAP提供了其他本机服务特征,包括使用SAP消息服务器登录组的系统负载平衡,通过应用安全网络通信(SNC)的数据完整性,单点登录身份验证和数据加密。

有关连接器的更多详细信息以及介绍视频,请参考INIT文档

用例:几乎实时地从SAP提取CDC的数据

在撰写本文时,Confluent Hub中已经有多个可用的连接器,这些连接器支持从各种SAP系统中提取数据。与HANA JDBC驱动程序(ngdbc.jar
结合使用的Confluent JDBC连接器和SAP HANA连接器均可用于从SAP ERP系统的基础HANA数据库提取数据并将数据插入SAP ERP系统的基础HANA数据库,并可与大多数SAP业务应用程序一起使用。与所有相关的数据库连接器一样,这种方法的缺点是与数据持久层的直接集成,因此绕过了应用程序层。在大多数情况下,数据库包含分布在多个表中的纯技术信息,并且业务对象是在处理该数据的应用程序逻辑中派生的。

SAP数据复制到Kafka中时,还有其他基于非Kafka Connect的解决方案可用,但是在将外部系统集成到Kafka中时,有充分的理由考虑到Kafka Connect

如果您需要将SAP AS ABAP中的业务实体提取到Kafka事件流平台中,则ODP Source Connector非常适合。ODP提供了多种源系统上下文和提取器供您选择。SAP在迁移大多数业务内容提取器上付出了很多努力,这些业务提取器主要用于将SAP实体复制到SAP BI,然后复制到ODP。

连接器支持启用增量功能的ODP数据源,在该数据源中数据保留在操作增量队列(ODQ)中。在这种情况下,CDC和其他可选特征(如实时数据采集)将作为提取器的一部分实现。提取器顶部的ODQ支持恢复方案,多个订户,异步通信和数据压缩。对于任何数量的数据集的每次复制,都会创建一个唯一请求,可以在相应的SAP源系统监视器(ODQMON)中对其进行监视。该请求还跟踪数据提取本身的状态,并且类似于Kafka中的偏移提交。连接器利用SAP端的请求状态处理和Kafka端的Connect API逻辑偏移量处理来存储有关哪些数据集最终已在连接器的两边写入Kafka的信息。这形成了一次准确交付保证的基础,即使在必须启动或停止连接器实例的情况下,甚至在连接器或整个平台不可用的情况下,也是如此。

ODQ请求进一步分为可配置大小的程序包。如果将连接器配置为从多个数据源中提取数据,则在多个源上进行任务管理和基于公平数据包的提取调度将确保连接器快速且一致的响应时间。这种策略在事件流甚至批处理的情况下(例如,对庞大的数据集执行增量初始化加载时)支持连续且可扩展的操作。

按照事件流平台的常规做法,该连接器被设计为一次配置和启动,并且可以永久运行,而无需复杂的管理任务。除了来自SAP的不同类型的元数据请求外,还可以通过集成的指数补偿策略在出现停机或与SAP系统发生通信问题时启用该策略。基于对错误消息和异常的不同解释,连接器知道它是否面临永久性错误或潜在的暂时性问题。回滚策略仅适用于临时性问题,并尝试通过在两次尝试之间应用不同的等待时间来反复重新连接到SAP,直到达到最大重试次数。所有这些都可以通过Confluent Control Center进行配置。

ODP已由INIT和其他机构证明可以提供更高的性能结合复杂的设计,作为高性能接口技术的JCo和作为现代分布式事件流平台的Kafka,该连接器在近乎实时或批量处理数据时具有很高的可伸缩性和性能。

优点和局限性

以下概述总结了ODP Source Connector的最重要的优点和局限性。

好处

  • Confluent认证的符合标准集成要求

  • 支持Confluent Hub CLI,控制中心,架构注册表,SMT和转换器,以便于安装,配置,管理,集成和监视

  • 包括从SAP ABAP,DDIC和JCo数据类型到内部Kafka Connect数据模型的正确数据类型映射

  • 兼容不同的数据类型转换器;更改用于在Kafka中存储消息的数据格式仅是更新配置设置的问题(已通过现有JSON和Avro转换器进行了测试)

  • 大量使用SAP元数据,因此支持完全自动发现供Schema Registry使用的复杂和嵌套模式

  • 提供一次准确的传递语义

  • 在源系统停机或通信问题时应用回退策略

  • 兼容单消息转换(SMT)

  • 将数据保留在ODQ中用于异步传输和恢复

  • 在AnyDB上支持SAP NetWeaver AS ABAP

  • 在不同客户的S / 4HANA,BW和ERP上进行了测试

  • 使用JCo,一种基于JNI的高性能RFC中间件

  • 可以与各种预先交付的业务内容数据源(请参阅SAP Note 2232584),ABAP CDS视图以及其他一起使用

  • 可以定制为每个数据源使用一个连接器实例,或者每个连接器实例使用多个数据源;这些场景各有利弊,例如允许为有限数量的数据源使用数量有限的任务,或者在与同一实例中运行的数据源相关的故障的情况下实现独立性

  • 为SAP中的ODQ请求监视提供完全支持(通过事务ODQMON)

  • 与Kafka Connect本地集成并兼容

  • 使用SLF4J与Kafka Connect日志记录集成

局限性

  • ODP连接器仅是源连接器。它支持多种源类型,但是SAP ODP尚未设计用于双向数据交换。INIT提供了其他几个使用不同集成协议的连接器,以启用其他源甚至接收器方案。

  • SAP提供的某些业务内容数据源不是开箱即用的,需要单独配置,例如物流数据源。有些甚至需要安排在SAP系统中运行的收集批处理作业,这会消耗OLTP任务之外的其他硬件资源。

  • 连接器仅支持启用增量的数据源。这是一项设计决策,因为常规的完全提取不完全适合事件流的想法,而CDC应该是其中的一部分。

  • 不支持ODP实时数据获取,因为这与Connect API不匹配

  • 每个Kafka Connect工作程序任务,连接器最多可扩展一个ODP源。中断处理单元和进一步并行化将破坏对顺序订单的保证。

  • 通过JCo的SAP RFC是一种传统的封闭源通信协议。

  • ODP API v2.0要求SAP _BASIS版本≥730(请参阅SAP注释1931427)。

  • 该连接器需要SAP和Kafka之间的直接RFC连接。

ODP连接器是否适用于您的业务案例?

如果您的业务用例需要将业务内容从SAP AS ABAP模块集成到Kafka中,而不仅仅是在数据库级别进行简单的数据复制,那么ODP连接器可能是您的最佳选择。了解如何INIT推出的连接器与SAP FI客户对供应商预订的复制:集成的SAP NetWeaver™的评估为基础的系统,apache kafka®

轻量级,Kafka原生SAP集成

ODP Source Connector是一种经济高效的Kafka原生,轻量级且可扩展的解决方案,用于从Kafka的基于SAP AS ABAP的系统中消费业务信息。如果满足以下条件,则是您的正确选择:

  • 连接器的上述限制不适用于您的用例或可以避免

  • 您尚未运行另一种提供类似功能的解决方案,例如第三方ETL工具SAP Data Hub / Data Intelligence,Cloud Platform IntegrationData ServicesHANA SDISAP BW

  • 现有的集成解决方案无法提供足够的服务保证,例如,它无法扩展,不具有成本效益,增加了延迟时间或无法实时交付,缺少足够的SLA或增加了不必要的复杂性

  • 您更喜欢一种精简且集成良好的解决方案,该解决方案具有易于维护的服务保证,例如一次语义和内置恢复。

简单的安装,管理和监控,无需其他工具

安装和维护其他应用程序或整体系统所需的大多数替代解决方案不仅着重于数据复制,而且着重于ETL转换逻辑或分析。这些可以是数据中心Kubernetes集群,数据服务作业服务器,SDI数据供应服务器,复杂的SAP BW系统,SAP PO实例或SAP云平台订阅。这些数据集成的附加层中的大多数不仅增加了总体拥有成本(TCO),而且还增加了数据传输的延迟,甚至更糟,无法满足现代事件流基础结构的要求。

使用ODP Source Connector时,您无需安装Kafka Connect以外的其他系统即可进行数据复制和ETL。在开发连接器时,我们仅专注于一对一的数据复制和相应的服务特征。在进行转换,数据清理,分析,预测性任务等方面时,该连接器无需依赖两次发明轮子,而是依靠Kafka的其他功能以及已建立的分析框架和工具。

可扩展且高性能的Kafka和SAP与SAP ODP连接器的集成

在全球范围内,将SAP应用程序与Kafka集成在一起以实现大规模实时消息传递,数据集成和数据处理的巨大需求。对SAP ERP(ECC和S / 4Hana)以及庞大的SAP产品组合中的大多数其他产品的需求都是真实的。

Kafka与SAP系统很好地集成。通过SAP SDK和第三方产品,可以使用不同的集成选项来实现专有接口,开放标准以及现代消息传递和事件流概念。来自INIT Software的Kafka Connect ODP源连接器提供了可扩展的高性能Kafka本机集成选项。


文章转载自Kafka Confluent 兴趣爱好者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论