Class StreamWriter.Builder

java.lang.Object
com.google.cloud.bigquery.storage.v1.StreamWriter.Builder
Enclosing class:
StreamWriter

public static final class StreamWriter.Builder extends Object
A builder of StreamWriters.
  • Method Details

    • setWriterSchema

      @CanIgnoreReturnValue public StreamWriter.Builder setWriterSchema(ProtoSchema protoSchema)
      Sets the user provided proto schema of the rows.
    • setWriterSchema

      @CanIgnoreReturnValue public StreamWriter.Builder setWriterSchema(ArrowSchema arrowSchema)
      Sets the user provided serialized Arrow schema of the rows.
    • setWriterSchema

      @CanIgnoreReturnValue public StreamWriter.Builder setWriterSchema(org.apache.arrow.vector.types.pojo.Schema arrowSchema)
      Sets the user provided unserialized Arrow schema of the rows.
    • setMaxInflightRequests

      public StreamWriter.Builder setMaxInflightRequests(long value)
    • setMaxInflightBytes

      public StreamWriter.Builder setMaxInflightBytes(long value)
    • setEndpoint

      public StreamWriter.Builder setEndpoint(String endpoint)
      Gives the ability to override the gRPC endpoint.
    • setEnableConnectionPool

      public StreamWriter.Builder setEnableConnectionPool(boolean enableConnectionPool)
      Enables a static shared bidi-streaming connection pool that would dynamically scale up connections based on backlog within each individual connection. A single table's traffic might be splitted into multiple connections if needed. Different tables' traffic can also be multiplexed within the same connection.
       Each connection pool would have a upper limit (default to 20) and lower limit (default to
       2) for the number of active connections. This parameter can be tuned via a static method
       exposed on ConnectionWorkerPool.
      
       Example:
       ConnectionWorkerPool.setOptions(
           Settings.builder().setMinConnectionsPerRegion(4).setMaxConnectionsPerRegion(10).build());
      
       
      Parameters:
      enableConnectionPool -
      Returns:
      Builder
    • setChannelProvider

      public StreamWriter.Builder setChannelProvider(TransportChannelProvider channelProvider)
      ChannelProvider to use to create Channels, which must point at Cloud BigQuery Storage API endpoint.

      For performance, this client benefits from having multiple underlying connections. See InstantiatingGrpcChannelProvider.Builder.setPoolSize(int).

    • setCredentialsProvider

      public StreamWriter.Builder setCredentialsProvider(CredentialsProvider credentialsProvider)
      CredentialsProvider to use to create Credentials to authenticate calls.
    • setExecutorProvider

      public StreamWriter.Builder setExecutorProvider(ExecutorProvider executorProvider)
      ExecutorProvider to use to create Executor to run background jobs.
    • setTraceId

      public StreamWriter.Builder setTraceId(String traceId)
      Sets traceId for debuging purpose. TraceId must follow the format of CustomerDomain:DebugString, e.g. DATAFLOW:job_id_x.
    • setLocation

      public StreamWriter.Builder setLocation(String location)
      Location of the table this stream writer is targeting.
    • setLimitExceededBehavior

      public StreamWriter.Builder setLimitExceededBehavior(FlowController.LimitExceededBehavior limitExceededBehavior) throws io.grpc.StatusRuntimeException
      Sets the limit exceeded behavior.
      Parameters:
      limitExceededBehavior -
      Returns:
      Throws:
      io.grpc.StatusRuntimeException
    • setMaxRetryDuration

      public StreamWriter.Builder setMaxRetryDuration(Duration maxRetryDuration)
    • setCompressorName

      public StreamWriter.Builder setCompressorName(String compressorName)
    • setDefaultMissingValueInterpretation

      public StreamWriter.Builder setDefaultMissingValueInterpretation(AppendRowsRequest.MissingValueInterpretation defaultMissingValueInterpretation)
      Sets the default missing value interpretation value if the column is not presented in the missing_value_interpretations map.
    • setMissingValueInterpretationMap

      public StreamWriter.Builder setMissingValueInterpretationMap(Map<String,AppendRowsRequest.MissingValueInterpretation> missingValueInterpretationMap)
      Sets the missing value interpretation map for the stream writer. The input missingValueInterpretationMap is used for all write requests unless otherwise changed.
      Parameters:
      missingValueInterpretationMap - the missing value interpretation map used by stream writer.
      Returns:
      Builder
    • setEnableLatencyProfiler

      public StreamWriter.Builder setEnableLatencyProfiler(boolean enableLatencyProfiler)
      Enable a latency profiler that would periodically generate a detailed latency report for the top latency requests. This is currently an experimental API.
    • setEnableOpenTelemetry

      public StreamWriter.Builder setEnableOpenTelemetry(boolean enableOpenTelemetry)
      Enable generation of metrics for OpenTelemetry.
    • setRetrySettings

      public StreamWriter.Builder setRetrySettings(RetrySettings retrySettings)
      Enable client lib automatic retries on request level errors.
       Immeidate Retry code:
       ABORTED, UNAVAILABLE, CANCELLED, INTERNAL, DEADLINE_EXCEEDED
       Backoff Retry code:
       RESOURCE_EXHAUSTED
      
       Example:
       RetrySettings retrySettings = RetrySettings.newBuilder()
            .setInitialRetryDelay(Duration.ofMillis(500)) // applies to backoff retry
            .setRetryDelayMultiplier(1.1) // applies to backoff retry
            .setMaxAttempts(5) // applies to both retries
            .setMaxRetryDelay(Duration.ofMinutes(1)) // applies to backoff retry .build();
       
      Parameters:
      retrySettings -
      Returns:
    • build

      public StreamWriter build() throws IOException
      Builds the StreamWriterV2.
      Throws:
      IOException