XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.7.1
    • None
    • api

    Description

      KuduScannerBuild API only supports the build of a scan using predicates in a conjuctive operation.
      Meaning that when using more than one predicate (p1,p2), the scan will be done using a statement similar to:

      WHERE p1 AND p2;

       

      In Java code:
       

      kc = new KuduClient.KuduClientBuilder(kuduMasters).build();
      session = kc.newSession();
      KuduScanner ks = kc.newScannerBuilder(table).addPredicate(p1).addPredicate(p2).build();
      

        

      There is no possibility to specify a OR operation that applies an disjunction between all/some predicates. E.g.

      WHERE p1 OR p2;

       

       

      The only way to do this using the current API (1.7.1) is to use two (or more) scanners and iterate them separately:

       

      KuduScanner scanner1 = kc.newScannerBuilder(table).addPredicate(p1).build();
      KuduScanner scanner2 = kc.newScannerBuilder(table).addPredicate(p2).build();
      
      while (scanner1.hasMoreRows()) {
          RowResultIterator results = scanner1.nextRows();
          while (results.hasNext()) {
              RowResult rowData = results.next();
              
              //Do stuff with rowData
      
          }
      }
      
      while (scanner2.hasMoreRows()) {
          RowResultIterator results = scanner2.nextRows();
          while (results.hasNext()) {
              RowResult rowData = results.next();
              //Do stuff with rowData
      
          }
      }
      

       

      Kudu API should provide "almost" the same query processing power as IMPALA or an SQL engine.
      Programmers should rely on Kudu API to operations like these and others like: sorting, table joins, etc.

      Attachments

        Issue Links

          Activity

            People

              ZhangYao ZhangYao
              RikG Ricardo Gaspar
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated: