public class StreamWriterV2 implements AutoCloseable
A BigQuery Stream Writer that can be used to write data into BigQuery Table.
TODO: Support batching.
TODO: Support schema change.
Implements
AutoCloseableStatic Methods
getApiMaxRequestBytes()
public static long getApiMaxRequestBytes()
The maximum size of one request. Defined by the API.
Type | Description |
long |
newBuilder(String streamName)
public static StreamWriterV2.Builder newBuilder(String streamName)
Constructs a new StreamWriterV2.Builder using the given stream.
Name | Description |
streamName | String |
Type | Description |
StreamWriterV2.Builder |
newBuilder(String streamName, BigQueryWriteClient client)
public static StreamWriterV2.Builder newBuilder(String streamName, BigQueryWriteClient client)
Constructs a new StreamWriterV2.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.
Name | Description |
streamName | String |
client | BigQueryWriteClient |
Type | Description |
StreamWriterV2.Builder |
Methods
append(ProtoRows rows, long offset)
public ApiFuture<AppendRowsResponse> append(ProtoRows rows, long offset)
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());
Name | Description |
rows | ProtoRows the rows in serialized format to write to BigQuery. |
offset | long the offset of the first row. |
Type | Description |
ApiFuture<AppendRowsResponse> | the append response wrapped in a future. |
close()
public void close()
Close the stream writer. Shut down all resources.