Serializable, HasDisplayDatapublic static class CloudBigtableIO.CloudBigtableMultiTableWriteFn extends AbstractCloudBigtableTableDoFn<InputType,Void>
DoFn that can write either a bounded or unbounded PCollection of KV
of (String tableName, List of Mutations) to the specified table.
NOTE: This DoFn will write Puts and Deletes, not Appends and Increments.
This limitation exists because if the batch fails partway through, Appends/Increments might be
re-run, causing the Mutation to be executed twice, which is never the user's intent.
Re-running a Delete will not cause any differences. Re-running a Put isn't normally a problem,
but might cause problems in some cases when the number of versions supported by the column
family is greater than one. In a case where multiple versions could be a problem, it's best to
add a timestamp to the Put.
DoFn.BoundedPerElement, DoFn.BundleFinalizer, DoFn.Element, DoFn.FieldAccess, DoFn.FinishBundle, DoFn.FinishBundleContext, DoFn.GetInitialRestriction, DoFn.GetRestrictionCoder, DoFn.MultiOutputReceiver, DoFn.NewTracker, DoFn.OnTimer, DoFn.OnTimerContext, DoFn.OnWindowExpiration, DoFn.OutputReceiver<T extends Object>, DoFn.ProcessContext, DoFn.ProcessContinuation, DoFn.ProcessElement, DoFn.RequiresStableInput, DoFn.Setup, DoFn.SplitRestriction, DoFn.StartBundle, DoFn.StartBundleContext, DoFn.StateId, DoFn.Teardown, DoFn.TimerId, DoFn.Timestamp, DoFn.UnboundedPerElement, DoFn.WindowedContextconfig, connection, DOFN_LOG| Constructor | Description |
|---|---|
CloudBigtableMultiTableWriteFn(CloudBigtableConfiguration config) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
finishBundle(DoFn.FinishBundleContext c) |
|
void |
processElement(DoFn.ProcessContext context) |
|
void |
startBundle() |
getConfig, getConnection, logExceptions, logRetriesExhaustedWithDetailsException, populateDisplayData, rethrowExceptiongetAllowedTimestampSkew, getInputTypeDescriptor, getOutputTypeDescriptor, prepareForProcessingpublic CloudBigtableMultiTableWriteFn(CloudBigtableConfiguration config)
@StartBundle public void startBundle() throws Exception
Exception@ProcessElement public void processElement(DoFn.ProcessContext context) throws Exception
@FinishBundle public void finishBundle(DoFn.FinishBundleContext c) throws Exception
Exception