Class StreamWriterV2
java.lang.Object
com.google.cloud.bigquery.storage.v1beta2.StreamWriterV2
- All Implemented Interfaces:
AutoCloseable
A BigQuery Stream Writer that can be used to write data into BigQuery Table.
TODO: Support batching.
TODO: Support schema change.
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptioncom.google.api.core.ApiFuture<AppendRowsResponse>Schedules the writing of a message.voidclose()Close the stream writer.static longThe maximum size of one request.static StreamWriterV2.BuildernewBuilder(String streamName) Constructs a newStreamWriterV2.Builderusing the given stream.static StreamWriterV2.BuildernewBuilder(String streamName, BigQueryWriteClient client) Constructs a newStreamWriterV2.Builderusing the given stream and client.
-
Method Details
-
getApiMaxRequestBytes
public static long getApiMaxRequestBytes()The maximum size of one request. Defined by the API. -
append
Schedules the writing of a message.Example of writing a message.
AppendRowsRequest message; ApiFuture<AppendRowsResponse> messageIdFuture = writer.append(message); ApiFutures.addCallback(messageIdFuture, new ApiFutureCallback<AppendRowsResponse>() { public void onSuccess(AppendRowsResponse response) { if (!response.hasError()) { System.out.println("written with offset: " + response.getAppendResult().getOffset()); } else { System.out.println("received an in stream error: " + response.getError().toString()); } } public void onFailure(Throwable t) { System.out.println("failed to write: " + t); } }, MoreExecutors.directExecutor());- Parameters:
rows- the rows in serialized format to write to BigQuery.offset- the offset of the first row.- Returns:
- the append response wrapped in a future.
-
close
public void close()Close the stream writer. Shut down all resources.- Specified by:
closein interfaceAutoCloseable
-
newBuilder
Constructs a newStreamWriterV2.Builderusing the given stream and client. AppendRows needs special headers to be added to client, so a passed in client will not work. This should be used by test only. -
newBuilder
Constructs a newStreamWriterV2.Builderusing the given stream.
-