我有一个应用程序,需要从客户端系统将数据导入到我的应用程序中。这些数据需要以我的应用程序要求的格式进行转换。另外,数据需要定期更新。
所以我在这里谈论两件事:
我对此进行了研究,人们建议可以通过文件上传初始数据。
还有其他选择吗?
假设我需要将产品和用户(大约1k)导入到我的系统中。
所以我的问题是:
我现在看到的解决方案是在服务器上提供API,客户端系统将调用该API,然后将这些数据移交给Job(使用spring-batch)以进行进一步处理。
我正在使用Spring框架和MySQL DB。
预先感谢
答案 0 :(得分:0)
初始导入可以通过Spring Batch作业完成。 Spring Batch的面向块的处理模型在这种ETL用例中大放异彩,尤其是当您拥有大量数据集时。
我现在看到的解决方案是在服务器上提供API,该API将由客户端系统调用
对于增量,我不确定您是否需要公开API。我认为这是另一个系统,应该提供这样的API,以在给定的日期/时间范围内提供数据更改。然后,您的系统可以定期调用此API来获取增量并进行自我更新。这也可以通过计划的批处理作业来完成(或者,如果增量足够小以至于可以在Web请求中进行处理,则不能这样做)。
希望这会有所帮助。
答案 1 :(得分:0)
您可以使用SOAP / REST API或从文件读取。我做过两种方式。 1k是非常小的数字。我已经使用Rest API完成了10k的任务。大多数组织在API响应大小方面都有网络限制。确保您的Rest / SOAP响应大小在组织的限制范围内。如果超过,则最好使用Spring批处理通过文件加载。
在ItemReader中,创建一个带有@PostConstruct注释的名为init()的方法。并调用Rest / SOAP端点或从文件读取以获取数据。您的阅读器应该一次返回一条记录/行,因为ItemProcessor应该解析阅读器发送的行/记录并进行进一步处理。
我希望这会有所帮助。