나는 디스크에 데이터를 플러시 후 테이블 테스트
CREATE TABLE test (
a int PRIMARY KEY,
b int
);
삽입 한 행
INSERT INTO test(a,b) VALUES(1, 10);
을 만들었습니다. *-Filter.db
파일을 사용할 수 있습니다. 내 경우를 위해 그것은 파티션 키가 존재하는 경우 la-2-big-Filter.db
여기 확인하는 샘플 코드입니다했다
Murmur3Partitioner partitioner = new Murmur3Partitioner();
try (DataInputStream in = new DataInputStream(new FileInputStream(new File("la-2-big-Filter.db"))); IFilter filter = FilterFactory.deserialize(in, true)) {
for (int i = 1; i <= 10; i++) {
DecoratedKey decoratedKey = partitioner.decorateKey(Int32Type.instance.decompose(i));
if (filter.isPresent(decoratedKey)) {
System.out.println(i + " is present ");
} else {
System.out.println(i + " is not present ");
}
}
}
출력 :
1 is present
2 is not present
3 is not present
4 is not present
5 is not present
6 is not present
7 is not present
8 is not present
9 is not present
10 is not present
방법 _Queried_? 블룸 필터에 액세스해야한다고 생각하는 이유를 이해하지 못합니다. –
서비스에서 cassandra로 cql 쿼리를 실행하고 있습니다. 그리고 저는 카산드라에게 질의 양을 줄이고 싶습니다. 내 자신의 블룸 필터를 만드는 대신, 카산드라에 내장 된 블룸 필터를 사용하고 싶습니다. –
왜 카산드라가 이미하는 일을하고 싶습니까? "동일한"BF로 쿼리를 사전 필터링하면 시스템이 더 빨리 작동하지 않습니다. 더 빨라지기를 원하면 데이터를 캐싱해야합니다 (캐산드라가 이미하는 것과 다른 방식으로). IMHO. – xmas79