@Internal @Experimental public abstract class PubsubMessageToRow extends DoFn<PubsubMessage,Row>
DoFn.BoundedPerElement, DoFn.BundleFinalizer, DoFn.Element, DoFn.FieldAccess, DoFn.FinishBundle, DoFn.FinishBundleContext, DoFn.GetInitialRestriction, DoFn.GetPartition, DoFn.GetRestrictionCoder, DoFn.GetSize, DoFn.MultiOutputReceiver, DoFn.NewTracker, DoFn.OnTimer, DoFn.OnTimerContext, DoFn.OnWindowExpiration, DoFn.OutputReceiver<T>, 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.WindowedContext
Constructor and Description |
---|
PubsubMessageToRow() |
Modifier and Type | Method and Description |
---|---|
static org.apache.beam.sdk.extensions.sql.meta.provider.pubsub.PubsubMessageToRow.Builder |
builder() |
abstract Schema |
messageSchema()
Schema of the Pubsub message.
|
void |
processElement(DoFn.ProcessContext context) |
abstract boolean |
useDlq() |
getAllowedTimestampSkew, getInputTypeDescriptor, getOutputTypeDescriptor, populateDisplayData, prepareForProcessing
public abstract Schema messageSchema()
Required to have exactly 3 top level fields at the moment:
Schema.FieldType#DATETIME
MAP<VARCHAR,VARCHAR>
ROW<...>
Only UTF-8 JSON objects are supported.
public abstract boolean useDlq()
public static org.apache.beam.sdk.extensions.sql.meta.provider.pubsub.PubsubMessageToRow.Builder builder()
@DoFn.ProcessElement public void processElement(DoFn.ProcessContext context)