Источник данных для GCP Spanner - PullRequest
0 голосов
/ 07 ноября 2019

Я собираюсь создать пакет для гаечного ключа GCP и планирую использовать JdbcCursorItemReader, который нуждается в источнике данных, поэтому мне нужно создать источник данных для моего экземпляра GCP Spanner. Не могли бы вы предложить мне это?

1 Ответ

2 голосов
/ 07 ноября 2019

Вам необходимо добавить драйвер JDBC Cloud Spanner в путь сборки следующим образом:

    <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. Поэтому вам необходимо явно установить тип базы данных на один из поддерживаемых типов баз данных. Посмотрите на этот ответ , чтобы увидеть, как это сделать.

Вам необходимо выбрать одну из поддерживаемых баз данных, даже если вы используете другую базу данных. Это может вызвать другие проблемы с совместимостью, особенно если вы разрешите Spring Batch автоматически сгенерировать вашу модель данных. Если вы создаете модель данных вручную и используете Spring Batch только для чтения данных, это должно стать меньшей проблемой. Я бы рекомендовал установить тип базы данных POSTGRES и посмотреть, работает ли он.

...