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
-
Method Summary
Modifier and TypeMethodDescriptioncom.google.api.core.ApiFuture<AppendRowsResponse>
Schedules the writing of a message.void
close()
Close the stream writer.static long
The maximum size of one request.static StreamWriterV2.Builder
newBuilder
(String streamName) Constructs a newStreamWriterV2.Builder
using the given stream.static StreamWriterV2.Builder
newBuilder
(String streamName, BigQueryWriteClient client) Constructs a newStreamWriterV2.Builder
using 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:
close
in interfaceAutoCloseable
-
newBuilder
Constructs a newStreamWriterV2.Builder
using 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.Builder
using the given stream.
-