当前位置: 首页 > 知识库问答 >
问题:

是否可以在批处理作业开始执行之前读取静态表数据,并将这些数据用作批处理作业的元数据

阎庆
2023-03-14

我尝试使用简单的select查询读取数据,并使用resultset数据创建csv文件。

到目前为止,在application.properties文件中已经有了select查询,并且能够生成csv文件。

现在,我希望将查询移动到一个静态表中,并在批处理作业开始之前(类似于before作业)将其作为初始化步骤获取。

你能告诉我做这件事最好的策略是什么吗。在读取数据和创建CSV文件的实际批处理作业开始之前从数据库读取数据。

extract.sql.query=SELECT * FROM schema.table_name

我希望它移动到数据库,并在实际工作开始前提取

共有1个答案

公孙联
2023-03-14

1)我用一个步骤(读然后写)创建了一个作业。2)实现了JobExecutionListener。在beforeJob方法中,使用JdbcTemplate从DB中获取相关细节(在我的例子中是一个查询)。3)使用JobExecution.getExecutionContext(),我在执行上下文中设置查询。4)使用步骤作用域读取器使用后期绑定检索值。@value(“#{JobExecutionContext['query']}”)String MyQuery。5)这里成功的关键是传递一个null的占位符值,以便编译成功。

 类似资料:
  • 我需要使用服务帐户执行数据流作业,下面是同一平台中提供的一个非常简单和基本的wordcount示例。 根据这一点,GCP要求服务号具有数据流工作者的权限,以便执行我的作业。即使我已经设置了所需的权限,错误仍然出现时,堰部分会出现: 有人能解释这种奇怪的行为吗?太感谢了

  • 在这个应用程序中,我使用了Spring Data JPA。它是另一个使用Spring Batch并创建这些表的应用程序。换句话说,我只想运行一个连接查询,并将它直接映射到我的定制对象,只需要一些必要的字段。在可能的范围内,我希望避免为这两个表制作分开的模型。但我不知道这里最好的方法。

  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。

  • 我正在尝试在GCP数据流中运行批处理作业。工作本身有时会占用大量内存。目前,工作一直在崩溃,因为我相信每个工作人员都在试图同时运行pcollection的多个元素。有没有办法防止每个工人一次运行多个元素?

  • 我当前正在命令行中传递文件名在spring批处理作业中的参数并运行我的作业,spring批处理作业将查找文件并读取、处理和写入该文件。我目前在读取器中的作业参数文件名和读取器文件名,如何才能在处理器和写入器中使用相同的作业参数文件名。

  • 我的spring批处理应用程序运行在连接到MySQL数据库(单实例)的PCF平台上,只有一个实例启动时运行良好