Hi all,
  I've run across an interesting problem. I have imported a few thousand rows 
into HBase and when I do a 'scan' from the shell tool I get back a different 
amount of rows than if I do the same query with a remote Java Client.

scan tool command...

hbase(main):030:0> scan 'TrafficLog', {STARTROW=>'pg_nhp1 2010-12-08 0000000', 
ENDROW=>'pg_nhp1 2010-12-10 9999999', COLUMNS=>['Data:BotCode'], VERSIONS=>1}

This query returns 399 rows

Java client code...

    Scan scan = new Scan();
    scan.setCaching(10000);
    scan.setMaxVersions(1);
    scan.setCaching(1000);
    scan.addFamily(TRAFFIC_FAMILY_BYTES);

    scan.addColumn(TRAFFIC_FAMILY_BYTES, 
TrafficFilterArray.BOT_CODE.getColumnAsBytes());

    final String affiliate = m_affiliateList.get(0);
    final String startingRow = (affiliate + SPACE_CHARACTER + m_startDate + 
STARTING_INDEX + STARTING_INDEX);
    scan.setStartRow(startingRow.getBytes());

    final String endingRow = (affiliate + SPACE_CHARACTER + m_endDate + 
ENDING_INDEX);
    scan.setStopRow(endingRow.getBytes());
    try
    {
      final ResultScanner scanner = m_trafficTable.getScanner(scan);
      int rowCount = 0;
      for (final Result result : scanner)
      {
        rowCount++;
      }
      m_logger.error("<><><> RowCount: " + rowCount);
    }
    catch (IOException p_ioException)
    {
      m_logger.error("IOException during scan.", p_ioException);
    }

This query returns 195 results.

I'm at  a loss on this one.

Thanks

-Pete

PS If there is a better way to query from the Client I would love to know it. I 
just hacked this together.

Reply via email to