You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by da...@apache.org on 2017/06/08 01:35:16 UTC
[27/50] beam git commit: Generate a random table name. Assume Spanner
database exists.
Generate a random table name.
Assume Spanner database exists.
Project: http://git-wip-us.apache.org/repos/asf/beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/3a9c00ac
Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/3a9c00ac
Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/3a9c00ac
Branch: refs/heads/DSL_SQL
Commit: 3a9c00ac7303823490d97f2f0adb5469700687ac
Parents: 6853d8e
Author: Mairbek Khadikov <ma...@google.com>
Authored: Mon Jun 5 12:29:02 2017 -0700
Committer: Davor Bonaci <da...@google.com>
Committed: Tue Jun 6 15:44:44 2017 -0700
----------------------------------------------------------------------
.../beam/sdk/io/gcp/spanner/SpannerWriteIT.java | 32 ++++++++++++++------
1 file changed, 23 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/beam/blob/3a9c00ac/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerWriteIT.java
----------------------------------------------------------------------
diff --git a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerWriteIT.java b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerWriteIT.java
index 064c65e..8df224b 100644
--- a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerWriteIT.java
+++ b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerWriteIT.java
@@ -33,6 +33,7 @@ import com.google.cloud.spanner.SpannerOptions;
import com.google.cloud.spanner.Statement;
import com.google.spanner.admin.database.v1.CreateDatabaseMetadata;
import java.util.Collections;
+
import org.apache.beam.sdk.io.GenerateSequence;
import org.apache.beam.sdk.options.Default;
import org.apache.beam.sdk.options.Description;
@@ -52,6 +53,9 @@ import org.junit.runners.JUnit4;
/** End-to-end test of Cloud Spanner Sink. */
@RunWith(JUnit4.class)
public class SpannerWriteIT {
+
+ private static final int MAX_DB_NAME_LENGTH = 30;
+
@Rule public final transient TestPipeline p = TestPipeline.create();
/** Pipeline options for this test. */
@@ -66,10 +70,10 @@ public class SpannerWriteIT {
String getInstanceId();
void setInstanceId(String value);
- @Description("Database ID to write to in Spanner")
+ @Description("Database ID prefix to write to in Spanner")
@Default.String("beam-testdb")
- String getDatabaseId();
- void setDatabaseId(String value);
+ String getDatabaseIdPrefix();
+ void setDatabaseIdPrefix(String value);
@Description("Table name")
@Default.String("users")
@@ -80,6 +84,7 @@ public class SpannerWriteIT {
private Spanner spanner;
private DatabaseAdminClient databaseAdminClient;
private SpannerTestPipelineOptions options;
+ private String databaseName;
@Before
public void setUp() throws Exception {
@@ -88,15 +93,17 @@ public class SpannerWriteIT {
spanner = SpannerOptions.newBuilder().setProjectId(options.getProjectId()).build().getService();
+ databaseName = generateDatabaseName();
+
databaseAdminClient = spanner.getDatabaseAdminClient();
// Delete database if exists.
- databaseAdminClient.dropDatabase(options.getInstanceId(), options.getDatabaseId());
+ databaseAdminClient.dropDatabase(options.getInstanceId(), databaseName);
Operation<Database, CreateDatabaseMetadata> op =
databaseAdminClient.createDatabase(
options.getInstanceId(),
- options.getDatabaseId(),
+ databaseName,
Collections.singleton(
"CREATE TABLE "
+ options.getTable()
@@ -107,6 +114,13 @@ public class SpannerWriteIT {
op.waitFor();
}
+ private String generateDatabaseName() {
+ String random = RandomStringUtils
+ .randomAlphanumeric(MAX_DB_NAME_LENGTH - 1 - options.getDatabaseIdPrefix().length())
+ .toLowerCase();
+ return options.getDatabaseIdPrefix() + "-" + random;
+ }
+
@Test
public void testWrite() throws Exception {
p.apply(GenerateSequence.from(0).to(100))
@@ -115,13 +129,13 @@ public class SpannerWriteIT {
SpannerIO.write()
.withProjectId(options.getProjectId())
.withInstanceId(options.getInstanceId())
- .withDatabaseId(options.getDatabaseId()));
+ .withDatabaseId(databaseName));
p.run();
DatabaseClient databaseClient =
spanner.getDatabaseClient(
DatabaseId.of(
- options.getProjectId(), options.getInstanceId(), options.getDatabaseId()));
+ options.getProjectId(), options.getInstanceId(), databaseName));
ResultSet resultSet =
databaseClient
@@ -134,7 +148,7 @@ public class SpannerWriteIT {
@After
public void tearDown() throws Exception {
- databaseAdminClient.dropDatabase(options.getInstanceId(), options.getDatabaseId());
+ databaseAdminClient.dropDatabase(options.getInstanceId(), databaseName);
spanner.closeAsync().get();
}
@@ -151,7 +165,7 @@ public class SpannerWriteIT {
Mutation.WriteBuilder builder = Mutation.newInsertOrUpdateBuilder(table);
Long key = c.element();
builder.set("Key").to(key);
- builder.set("Value").to(RandomStringUtils.random(valueSize, true, true));
+ builder.set("Value").to(RandomStringUtils.randomAlphabetic(valueSize));
Mutation mutation = builder.build();
c.output(mutation);
}