Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Plain View
HBase >> mail # user >> Table and Family


+
Bing Li 2013-08-12, 16:22
+
Stas Maksimov 2013-08-12, 16:31
Copy link to this message
-
Re: Table and Family
Hi

Try using  SingleColumnValueFilter # setFilterIfMissing()

Default value of this is false. Set it to True to filter rows when  the
cf:q is missing

-Anoop-

On Mon, Aug 12, 2013 at 9:52 PM, Bing Li <[EMAIL PROTECTED]> wrote:

> Hi, all,
>
> My understandings about HBase table and its family are as follows.
>
> 1) Each table can consist of multiple families;
>
> 2) When retrieving with SingleColumnValueFilter, if the family is
> specified, other families contained in the same table are not
> affected.
>
> Are these claims right? But I got a problem which conflicts with the
> above understandings.
>
> In the following code, even though no any data in the family of
> ContrivedNeighborStructure.NODE_NEIGHBOR_IN_GROUP_BASICS_FAMILY, the
> for-loop runs many times if other families has the column of
> ContrivedNeighborStructure.NODE_NEIGHBOR_IN_GROUP_DC_KEY_COLUMN.
>
> Is that normal in HBase? If so, I think it is not a good design. No
> column overlaps must exist among the families of the same table?
> Otherwise, retrieving the table must cause waste of scanning loops?
>
> Thanks so much!
>
> Best wishes,
> Bing
>
>         SingleColumnValueFilter dcKeyFilter = new
>
> SingleColumnValueFilter(ContrivedNeighborStructure.NODE_NEIGHBOR_IN_GROUP_BASICS_FAMILY,
> ContrivedNeighborStructure.NODE_NEIGHBOR_IN_GROUP_DC_KEY_COLUMN,
> CompareFilter.CompareOp.EQUAL, new SubstringComparator(dcKey));
>         Scan scan = new Scan();
>         scan.setFilter(dcKeyFilter);
>         scan.setCaching(Parameters.CACHING_SIZE);
>         scan.setBatch(Parameters.BATCHING_SIZE);
>
>         String qualifier;
>         String hostNodeKey = SocialRole.NO_NODE_KEY;
>         String groupKey = SocialGroup.NO_GROUP_KEY;
>         int timingScale = TimingScale.NO_TIMING_SCALE;
>         String key;
>         try
>         {
>             ResultScanner scanner = this.neighborTable.getScanner(scan);
>             for (Result result : scanner)
>             {
>                 for (KeyValue kv : result.raw())
>                 {
>                     qualifier = Bytes.toString(kv.getQualifier());
>                     if
>
> (qualifier.equals(ContrivedNeighborStructure.NODE_NEIGHBOR_IN_GROUP_HOST_NODE_KEY_STRING_COLUMN))
>                     {
>                         hostNodeKey = Bytes.toString(kv.getValue());
>                     }
>                     else if
>
> (qualifier.equals(ContrivedNeighborStructure.NODE_NEIGHBOR_IN_GROUP_HOST_GROUP_KEY_STRING_COLUMN))
>                     {
>                         groupKey = Bytes.toString(kv.getValue());
>                     }
>                     else if
>
> (qualifier.equals(ContrivedNeighborStructure.NODE_NEIGHBOR_IN_GROUP_TIMING_SCALE_STRING_COLUMN))
>                     {
>                         timingScale = Bytes.toInt(kv.getValue());
>                     }
>                 }
>                 if (!hostNodeKey.equals(SocialRole.NO_NODE_KEY) &&
> !groupKey.equals(SocialGroup.NO_GROUP_KEY) && timingScale !> TimingScale.NO_TIMING_SCALE)
>                 {
>                     key = Tools.GetKeyOfNode(hostNodeKey, groupKey,
> timingScale);
>                     if (!neighborMap.containsKey(key))
>                     {
>                         neighborMap.put(key, new
> NodeNeighborInGroup(hostNodeKey, groupKey, timingScale));
>                     }
>                 }
>                 hostNodeKey = SocialRole.NO_NODE_KEY;
>                 groupKey = SocialGroup.NO_GROUP_KEY;
>                 timingScale = TimingScale.NO_TIMING_SCALE;
>             }
>         }
>         catch (IOException e)
>         {
>             e.printStackTrace();
>         }
>
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB