bulkOptionsBuilder.setAsyncMutatorWorkerCount(asyncMutatorCount); bulkOptionsBuilder.setUseBulkApi(configuration.getBoolean(BIGTABLE_USE_BULK_API, true)); bulkOptionsBuilder.setBulkMaxRowKeyCount( configuration.getInt(
bulkOptionsBuilder.setAsyncMutatorWorkerCount(asyncMutatorCount); bulkOptionsBuilder.setUseBulkApi(configuration.getBoolean(BIGTABLE_USE_BULK_API, true)); bulkOptionsBuilder.setBulkMaxRowKeyCount( configuration.getInt(
static SerializableFunction<BigtableOptions.Builder, BigtableOptions.Builder> enableBulkApiConfigurator( final @Nullable SerializableFunction<BigtableOptions.Builder, BigtableOptions.Builder> userConfigurator) { return optionsBuilder -> { if (userConfigurator != null) { optionsBuilder = userConfigurator.apply(optionsBuilder); } return optionsBuilder.setBulkOptions( optionsBuilder.build().getBulkOptions().toBuilder().setUseBulkApi(true).build()); }; }
@Test public void testGetBigtableServiceWithConfigurator() { SerializableFunction<BigtableOptions.Builder, BigtableOptions.Builder> configurator = (SerializableFunction<BigtableOptions.Builder, BigtableOptions.Builder>) input -> input .setInstanceId(INSTANCE_ID.get() + INSTANCE_ID.get()) .setProjectId(PROJECT_ID.get() + PROJECT_ID.get()) .setBulkOptions(new BulkOptions.Builder().setUseBulkApi(true).build()); BigtableService service = config .withProjectId(PROJECT_ID) .withInstanceId(INSTANCE_ID) .withBigtableOptionsConfigurator(configurator) .getBigtableService(PipelineOptionsFactory.as(GcpOptions.class)); assertEquals(PROJECT_ID.get(), service.getBigtableOptions().getProjectId()); assertEquals(INSTANCE_ID.get(), service.getBigtableOptions().getInstanceId()); assertEquals(true, service.getBigtableOptions().getBulkOptions().useBulkApi()); }
@Test public void testWriteWithBigTableOptionsSetsBulkOptionsAndRetryOptions() { final int maxInflightRpcs = 1; final int initialBackoffMillis = -1; BigtableOptions.Builder optionsBuilder = BIGTABLE_OPTIONS.toBuilder(); BulkOptions.Builder bulkOptionsBuilder = new BulkOptions.Builder(); bulkOptionsBuilder.setMaxInflightRpcs(maxInflightRpcs); RetryOptions.Builder retryOptionsBuilder = new RetryOptions.Builder(); retryOptionsBuilder.setInitialBackoffMillis(initialBackoffMillis); optionsBuilder .setBulkOptions(bulkOptionsBuilder.build()) .setRetryOptions(retryOptionsBuilder.build()); BigtableIO.Write write = BigtableIO.write().withBigtableOptions(optionsBuilder.build()); BigtableOptions options = write.getBigtableOptions(); assertEquals(true, options.getBulkOptions().useBulkApi()); assertEquals(maxInflightRpcs, options.getBulkOptions().getMaxInflightRpcs()); assertEquals(initialBackoffMillis, options.getRetryOptions().getInitialBackoffMillis()); assertThat( options.getBulkOptions(), Matchers.equalTo(bulkOptionsBuilder.setUseBulkApi(true).build())); assertThat(options.getRetryOptions(), Matchers.equalTo(retryOptionsBuilder.build())); }