Package org.apache.beam.sdk.io.jdbc
Class JdbcIO.WriteVoid<T>
java.lang.Object
org.apache.beam.sdk.transforms.PTransform<PCollection<T>,PCollection<Void>>
org.apache.beam.sdk.io.jdbc.JdbcIO.WriteVoid<T>
- All Implemented Interfaces:
Serializable
,HasDisplayData
- Enclosing class:
JdbcIO
public abstract static class JdbcIO.WriteVoid<T>
extends PTransform<PCollection<T>,PCollection<Void>>
A
PTransform
to write to a JDBC datasource. Executes statements in a batch, and returns
a trivial result.- See Also:
-
Field Summary
Fields inherited from class org.apache.beam.sdk.transforms.PTransform
annotations, displayData, name, resourceHints
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionexpand
(PCollection<T> input) Override this method to specify how thisPTransform
should be expanded on the givenInputT
.If true, enables using a dynamically determined number of shards to write.withBatchSize
(long batchSize) Provide a maximum size in number of SQL statement for the batch.withDataSourceProviderFn
(SerializableFunction<Void, DataSource> dataSourceProviderFn) withMaxBatchBufferingDuration
(long maxBatchBufferingDuration) Provide maximum buffering time to batch elements before committing SQL statement.withRetryConfiguration
(JdbcIO.RetryConfiguration retryConfiguration) When a SQL exception occurs,JdbcIO.Write
uses thisJdbcIO.RetryConfiguration
to exponentially back off and retry the statements based on theJdbcIO.RetryConfiguration
mentioned.withRetryStrategy
(JdbcIO.RetryStrategy retryStrategy) When a SQL exception occurs,JdbcIO.Write
uses thisJdbcIO.RetryStrategy
to determine if it will retry the statements.withStatement
(String statement) withStatement
(ValueProvider<String> statement) Methods inherited from class org.apache.beam.sdk.transforms.PTransform
addAnnotation, compose, compose, getAdditionalInputs, getAnnotations, getDefaultOutputCoder, getDefaultOutputCoder, getDefaultOutputCoder, getKindString, getName, getResourceHints, populateDisplayData, setDisplayData, setResourceHints, toString, validate, validate
-
Constructor Details
-
WriteVoid
public WriteVoid()
-
-
Method Details
-
withAutoSharding
If true, enables using a dynamically determined number of shards to write. -
withDataSourceConfiguration
-
withDataSourceProviderFn
public JdbcIO.WriteVoid<T> withDataSourceProviderFn(SerializableFunction<Void, DataSource> dataSourceProviderFn) -
withStatement
-
withStatement
-
withPreparedStatementSetter
-
withBatchSize
Provide a maximum size in number of SQL statement for the batch. Default is 1000. The pipeline will either commit a batch when this maximum is reached or its maximum buffering time has been reached. SeewithMaxBatchBufferingDuration(long)
- Parameters:
batchSize
- maximum batch size in number of statements
-
withMaxBatchBufferingDuration
Provide maximum buffering time to batch elements before committing SQL statement. Default is 200 The pipeline will either commit a batch when this maximum buffering time has been reached or the maximum amount of elements has been collected. SeewithBatchSize(long)
- Parameters:
maxBatchBufferingDuration
- maximum time in milliseconds before batch is committed
-
withRetryStrategy
When a SQL exception occurs,JdbcIO.Write
uses thisJdbcIO.RetryStrategy
to determine if it will retry the statements. IfJdbcIO.RetryStrategy.apply(SQLException)
returnstrue
, thenJdbcIO.Write
retries the statements. -
withRetryConfiguration
When a SQL exception occurs,JdbcIO.Write
uses thisJdbcIO.RetryConfiguration
to exponentially back off and retry the statements based on theJdbcIO.RetryConfiguration
mentioned.Usage of RetryConfiguration -
maxDuration and initialDuration are Nullablepipeline.apply(JdbcIO.<T>write()) .withDataSourceConfiguration(...) .withRetryStrategy(...) .withRetryConfiguration(JdbcIO.RetryConfiguration. create(5, Duration.standardSeconds(5), Duration.standardSeconds(1))
pipeline.apply(JdbcIO.<T>write()) .withDataSourceConfiguration(...) .withRetryStrategy(...) .withRetryConfiguration(JdbcIO.RetryConfiguration. create(5, null, null)
-
withTable
-
expand
Description copied from class:PTransform
Override this method to specify how thisPTransform
should be expanded on the givenInputT
.NOTE: This method should not be called directly. Instead apply the
PTransform
should be applied to theInputT
using theapply
method.Composite transforms, which are defined in terms of other transforms, should return the output of one of the composed transforms. Non-composite transforms, which do not apply any transforms internally, should return a new unbound output and register evaluators (via backend-specific registration methods).
- Specified by:
expand
in classPTransform<PCollection<T>,
PCollection<Void>>
-