我要为GCP扳手创建批处理,并计划使用需要数据源的JdbcCursorItemReader,所以我需要为我的GCP Spanner实例创建数据源,您能在这方面建议我吗?
答案 0 :(得分:2)
您需要像这样将Cloud Spanner JDBC驱动程序添加到您的构建路径:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
<version>1.9.0</version>
</dependency>
然后,您可以按常规方式定义Spring数据源。以编程方式进行操作应如下所示:
@Bean
public DataSource spannerDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.google.cloud.spanner.jdbc.JdbcDriver");
dataSource.setUrl("jdbc:cloudspanner:/projects/<YOUR-PROJECT-ID>/instances/<YOUR-INSTANCE-ID>/databases/<YOUR-DATABASE-ID>?credentials=<PATH-TO-YOUR-SERVICE-CREDENTIALS>");
return dataSource;
}
----评论后的其他信息----
Google Cloud Spanner不是Spring Batch默认支持的数据库。因此,您需要将数据库类型显式设置为支持的数据库类型之一。 Have a look at this answer看看如何完成。
即使您正在使用另一个数据库,也需要选择一个受支持的数据库。这可能会导致其他兼容性问题,尤其是如果让Spring Batch自动生成数据模型时。如果您手动创建数据模型并且仅使用Spring Batch读取数据,那么应该不会有太大问题。我建议尝试将数据库类型设置为POSTGRES,然后查看它是否有效。