Spring Batch extension which contains an ItemWriter
and ItemReader
implementations for BigQuery.
ItemWriter
support:
Load job | Write API (Commited) | Write API (Pending) | |
---|---|---|---|
Supported |
Supported |
Supported |
|
Supported |
ItemReader
support:
Supported |
|
Supported |
Based on Java BigQuery.
@Bean
BigQueryLoadJobCsvItemWriter<MyDto> bigQueryCsvWriter() {
WriteChannelConfiguration writeConfiguration = WriteChannelConfiguration
.newBuilder(TableId.of("csv_dataset", "csv_table"))
.setAutodetect(true)
.setFormatOptions(FormatOptions.csv())
.build();
return new BigQueryLoadJobCsvItemWriterBuilder<MyDto>()
.bigQuery(bigQueryService)
.writeChannelConfig(writeConfiguration)
.build();
}
@Bean
BigQueryItemReader<PersonDto> bigQueryReader() {
return new BigQueryQueryItemReaderBuilder<PersonDto>()
.bigQuery(bigQueryService)
.rowMapper(res -> new PersonDto(res.get("name").getStringValue()))
.query("SELECT p.name FROM persons p")
.build();
}
Additional examples could be found in the test folder.