[ 
https://issues.apache.org/jira/browse/BEAM-3973?focusedWorklogId=88017&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-88017
 ]

ASF GitHub Bot logged work on BEAM-3973:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 05/Apr/18 12:33
            Start Date: 05/Apr/18 12:33
    Worklog Time Spent: 10m 
      Work Description: iemejia commented on a change in pull request #4946: 
[BEAM-3973] Adds a parameter to the Cloud Spanner read connector that can 
disable batch API
URL: https://github.com/apache/beam/pull/4946#discussion_r179446138
 
 

 ##########
 File path: 
sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerReadIT.java
 ##########
 @@ -193,6 +196,52 @@ public void testQuery() throws Exception {
     p.run();
   }
 
+  @Test
+  public void testReadAll() throws Exception {
+    DatabaseClient databaseClient =
+        spanner.getDatabaseClient(
+            DatabaseId.of(
+                project, options.getInstanceId(), databaseName));
+
+    List<Mutation> mutations = new ArrayList<>();
+    for (int i = 0; i < 5L; i++) {
+      mutations.add(
+          Mutation.newInsertOrUpdateBuilder(options.getTable())
+              .set("key")
+              .to((long) i)
+              .set("value")
+              .to(RandomUtils.randomAlphaNumeric(100))
+              .build());
+    }
+
+    databaseClient.writeAtLeastOnce(mutations);
+
+    SpannerConfig spannerConfig = SpannerConfig.create()
+        .withProjectId(project)
+        .withInstanceId(options.getInstanceId())
+        .withDatabaseId(databaseName);
+
+    PCollectionView<Transaction> tx =
+        p.apply(
+            SpannerIO.createTransaction()
+                .withSpannerConfig(spannerConfig)
+                .withTimestampBound(TimestampBound.strong()));
+
+    PCollection<Struct> allRecords = p.apply(SpannerIO.read()
+        .withSpannerConfig(spannerConfig)
+        .withBatching(false)
 
 Review comment:
   I don't know if I was clear. I don't intend to make this implicit or the IO 
'smarter', I think the explicit batching approach is ok, I was just wondering 
if we can detect eagerly if the query is not root partitionable and the user 
chose the batching to break even before executing the complete thing. Maybe we 
can do something like that in a different JIRA (as well as the test for it).

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 88017)
    Time Spent: 1h 50m  (was: 1h 40m)

> Allow to disable batch API in SpannerIO
> ---------------------------------------
>
>                 Key: BEAM-3973
>                 URL: https://issues.apache.org/jira/browse/BEAM-3973
>             Project: Beam
>          Issue Type: Bug
>          Components: io-java-gcp
>    Affects Versions: 2.4.0
>            Reporter: Mairbek Khadikov
>            Assignee: Mairbek Khadikov
>            Priority: Major
>             Fix For: 2.5.0
>
>          Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> In 2.4.0, SpannerIO#read has been migrated to use batch API. The batch API 
> provides abstractions to scale out reads from Spanner, but it requires the 
> query to be root-partitionable. The root-partitionable queries cover majority 
> of the use cases, however there are examples when running arbitrary query is 
> useful. For example, reading all the table names from the 
> information_schema.* and reading the content of those tables in the next 
> step. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to