Niel Markwick created BEAM-7732:
-----------------------------------
Summary: Allow access to SpannerOptions in Beam
Key: BEAM-7732
URL: https://issues.apache.org/jira/browse/BEAM-7732
Project: Beam
Issue Type: Improvement
Components: io-java-gcp
Affects Versions: 2.13.0, 2.12.0
Reporter: Niel Markwick
Beam hides the
[SpannerOptions|https://github.com/googleapis/google-cloud-java/blob/master/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java]
object behind a
[SpannerConfig|https://github.com/apache/beam/blob/master/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerConfig.java]
object because the SpannerOptions object is not serializable.
This means that the only options that can be set are those that can be
specified in SpannerConfig - limited to host, project, instance, database.
Suggestion: add the possibility to set a SpannerOptionsFactory in SpannerConfig:
{code:java}
public interface SpannerOptionsFactory extends Serializable {
public SpannerOptions create();
}
{code}
This would allow the user use this factory class to specify custom
SpannerOptions before they are passed onto the connectToSpanner() method;
connectToSpanner() would then become:
{code:java}
public SpannerAccessor connectToSpanner() {
SpannerOptions.Builder builder = spannerOptionsFactory.create().toBuilder();
// rest of connectToSpanner follows, setting project, host, etc.
{code}
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)