0
쉘에서 특정 시간 소인 후 행 키 (값 또는 시간 소인이 아님)를 어떻게 나열 할 수 있습니까?쉘에서 특정 시간 소인 후 hbase의 행 키만 나열하십시오.
쉘에서 특정 시간 소인 후 행 키 (값 또는 시간 소인이 아님)를 어떻게 나열 할 수 있습니까?쉘에서 특정 시간 소인 후 hbase의 행 키만 나열하십시오.
타임 스탬프는 열에 바인딩되며 행에는 바인딩되지 않습니다. 따라서 타임 스탬프로 필터링하면 행의 일부 열만 반환됩니다.
당신이 테이블 t1이있는 경우 : 당신이 타임 스탬프를 필터링 할 수 있습니다
ROW COLUMN+CELL
ID1 column=d:actif, timestamp=25, value=false
ID1 column=d:name, timestamp=22, value="Sudipto"
ID1 column=m:lastMaj, timestamp=25, value=25
ID2 column=d:actif, timestamp=24, value=false
ID2 column=m:lastMaj, timestamp=24, value=24
:
scan 't1', { TIMERANGE => [0, 25] }
을하지만 당신 만 반환합니다
ROW COLUMN+CELL
ID1 column=d:actif, timestamp=26, value=false
ID1 column=m:lastMaj, timestamp=26, value=26
ID2 column=d:actif, timestamp=24, value=false
ID2 column=m:lastMaj, timestamp=24, value=24
그래서 당신이 열을 잃게 :
ROW COLUMN+CELL
ID1 column=d:name, timestamp=22, value="Sudipto"
그러나 모든 열을 원한다면 해결책이 있습니다. 메타 데이터 (여기에서 m : lastMaj)로 필터링 할 수 있습니다. 이 lastMaj 데이터는 행의 열을 수정할 때마다 업데이트되어야합니다. 난 개질 때 여기
은 난 후 모든 행을 얻고 싶은 경우
(둘 다 25의 타임 스탬프를 가지고) "D : ACTIF를", 또한 "lastMaj m"변형 특정 타임 스탬프, 난 그냥 "m : lastMaj 타임 스탬프"에 행을 필터링합니다.
명령
은 될 수 쉘에서 값으로 스캔하기 : 당신의 코멘트 Tremo에 대한import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
import org.apache.hadoop.hbase.filter.SubstringComparator
import org.apache.hadoop.hbase.util.Bytes
scan 't', { FILTER =>
SingleColumnValueFilter.new(
Bytes.toBytes('m'),
Bytes.toBytes('lastMaj'),
CompareFilter::CompareOp.valueOf('GREATER'),
Bytes.toBytes('25'))
}
감사합니다. hbase shell에서 필터를 사용하는 방법에 대한 예제를 제공해 주시겠습니까? –