Bigtable에서 시작 행과 끝 행으로 스캔하려고합니다. 스캔 사이의 요소는 약 100K입니다. setCaching(500)
을 사용하여 HBase에서 수행 할 수있는 일괄 처리로 가져오고 싶습니다.Hbase vs Google Bigtable : 많은 수의 행을 검색합니다.
Bigtable에서는 setCaching
이 무시되고 1 RPC에서 전체 결과 집합을 얻으려고합니다. HBase와 어떻게 비슷한 결과를 얻을 수 있습니까?
내가 자바 드라이버 bigtable-hbase-1.1
및 버전을 사용하고 1.0.0-pre3
Bigtable을 구성 :
Configuration conf = new Configuration();
conf.set("google.bigtable.buffered.mutator.throttling.enable", "false");
conf.set("google.bigtable.rpc.timeout.ms", "1500000");
conf.set("google.bigtable.grpc.read.partial.row.timeout.ms","1500000");
conf.set("google.bigtable.long.rpc.timeout.ms", "1500000");
conf.set("google.bigtable.grpc.retry.deadlineexceeded.enable", "false");
conf.set("google.bigtable.buffered.mutator.max.inflight.rpcs", "500");
conf.set("google.bigtable.bulk.max.row.key.count", "500");
Configuration conff = BigtableConfiguration.configure(conf,projectID,instanceID);
connection = BigtableConfiguration.connect(conff);
스캐너 구성 :
byte[] start = "prefix".getbytes() ;
byte[] end = Bytes.add("prefix".getbytes(),(byte))0xff);
Scan scan = new Scan(start, end);
나올 행
예상 번호가 100Ks의 순서이다 .
. 단지 100 만 줄까? – Peter
버퍼 청크 크기를 조정할 방법이 있습니까? 너무 작을 수 있습니다. 내 경우에는 클라이언트가 싱가포르에 있기 때문에 대만에서 bigtable 한 왕복 ~ 50 MS가 걸립니다 – Peter
또는 Bigtable 먼저 서버에서 전체 결과를 얻은 다음 클라이언트에 그것을 스트림 때문입니다. 그런 다음 전체 결과 집합을 얻는 것이 시간 소모적 일 수 있다고 생각하십니까? – Peter