Class StreamWriterV2

java.lang.Object
com.google.cloud.bigquery.storage.v1beta2.StreamWriterV2
All Implemented Interfaces:
AutoCloseable

public class StreamWriterV2 extends Object implements AutoCloseable
A BigQuery Stream Writer that can be used to write data into BigQuery Table.

TODO: Support batching.

TODO: Support schema change.

  • Method Details

    • getApiMaxRequestBytes

      public static long getApiMaxRequestBytes()
      The maximum size of one request. Defined by the API.
    • append

      public com.google.api.core.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());
       
      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 interface AutoCloseable
    • newBuilder

      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.
    • newBuilder

      public static StreamWriterV2.Builder newBuilder(String streamName)
      Constructs a new StreamWriterV2.Builder using the given stream.