모든 이벤트를 저장할 수 없는 스트림의 데이터를 요약하기 위한 Java 라이브러리입니다. 보다 구체적으로, 추정을 위한 클래스가 있습니다: 카디널리티(예: 사물 계산); 멤버십 설정; top-k 요소와 빈도. 특히 유용한 기능 중 하나는 호환 가능한 구성의 카디널리티 추정기를 안전하게 병합할 수 있다는 것입니다.
이러한 클래스는 JVM 프로젝트에서 직접 사용하거나 제공된 쉘 스크립트 및 오래된 Unix IO 리디렉션과 함께 사용할 수 있습니다.
여기의 아이디어는 우리에게 독창적인 것이 아닙니다. 우리는 기존 학술 문헌을 반복하여 유용한 구현을 만들기 위해 노력해 왔습니다. 따라서 이 라이브러리는 다른 사람의 작업에 크게 의존합니다. 출처와 참고자료 섹션을 읽어보세요.
$ echo -e "foonfoonbar" | ./bin/topk
item count error
---- ----- -----
foo 2 0
bar 1 0
Item count: 3
$ echo -e "foonfoonbar" | ./bin/cardinality
Item Count Cardinality Estimate
---------- --------------------
3 2
< dependency >
< groupId >com.clearspring.analytics</ groupId >
< artifactId >stream</ artifactId >
< version >2.9.5</ version >
</ dependency >
Apache Maven이 설치 및 구성되어 있다고 가정합니다.
mvn package
그리고 모든 준비가 완료되어야 합니다.
메일링 리스트: http://groups.google.com/group/stream-lib-user
설정된 멤버십 코드는 2009년 12월경 Apache Cassandra의 Bloom Filter 구현입니다. 여기에서의 변경 사항은 최소한이며 테스트 및 독립적인 사용을 위한 것입니다. Apache Software Foundation 헤더는 이러한 파일에 유지되었습니다. 확장하면 murmurhash도 포함됩니다.
우리는 Jonathan Ellis의 게시물 All you Ever Wanted to Know on Bloom Filters에서 이 코드를 사용하도록 영감을 받았습니다.
특정 논문에 대한 javadoc 참조가 있습니다. 이는 우리가 조사 중에 가장 관련성이 있다고 생각한 것입니다.
Min Cai, Jianping Pan, Yu K. Kwok 및 Kai Hwang. 적응형 카디널리티 카운팅을 사용하여 빠르고 정확한 트래픽 매트릭스 측정. MineNet '05: 채굴 네트워크 데이터에 관한 2005 ACM SIGCOMM 워크숍 진행, 페이지 205-206, 뉴욕, 뉴욕, 미국, 2005. ACM.
Ahmed Metwally, Divyakant Agrawal 및 Amr E. Abbadi. 선형으로 갈 수 있는데 왜 로그로 가는가?: 검색 트래픽의 효과적인 개별 계산을 위해. EDBT '08: 데이터베이스 기술 확장에 관한 제11차 국제 컨퍼런스 진행, 페이지 618-629, 뉴욕, 뉴욕, 미국, 2008. ACM.
Nikos Ntarmos, Peter Triantafillou, Gerhard Weikum. 대규모 계산: 인터넷 규모 데이터 네트워크에서 효율적인 카디널리티 추정. ICDE '06: 데이터 엔지니어링에 관한 제22차 국제 컨퍼런스 진행, 40페이지 이상, 미국 워싱턴 DC, 2006. IEEE 컴퓨터 협회.
마리안느 뒤랑과 필립 플라졸레. 대규모 카디널리티의 LogLog 계산입니다. ESA03, LNCS 2832권, 2003년 605~617페이지.
Kyu Y. Whang, 브래드 T. Vander Zanden 및 Howard M. Taylor. 데이터베이스 애플리케이션을 위한 선형 시간 확률 계산 알고리즘입니다. ACM 트랜스. 데이터베이스 시스템, 15(2):208–229, 1990.
모세스 차리카(Moses Charikar), 케빈 첸(Kevin Chen), 마틴 F. 콜튼(Martin F. Colton). 데이터 스트림에서 자주 발생하는 항목을 찾습니다. ICALP '02: 자동화, 언어 및 프로그래밍에 관한 제29차 국제 콜로키움 진행, 693-703페이지, 영국 런던, 2002. Springer-Verlag.
스테판 힐레, 마크 넌케서, 알렉스 홀. HyperLogLog 실습: 최첨단 카디널리티 추정 알고리즘의 알고리즘 엔지니어링. EDBT 2013 컨퍼런스 간행물, ACM, 제노바, 이탈리아
Cheqing Jin, Weining Qian, Chaofeng Sha, Jeffrey X. Yu 및 Aoying Zhou. 데이터 스트림을 통해 자주 사용되는 항목을 동적으로 유지 관리합니다. CIKM '03: 정보 및 지식 관리에 관한 제12차 국제 컨퍼런스 진행, 페이지 287-294, 뉴욕, 뉴욕, 미국, 2003. ACM. 10.1145/956863.956918 http://dl.acm.org/citation.cfm?id=956918
Ahmed Metwally, Divyakant Agrawal, Amr Abbadi. 데이터 스트림에서 자주 발생하는 요소와 상위 k 요소를 효율적으로 계산합니다. 398~412페이지. 2005. 10.1007/978-3-540-30570-5_27 http://link.springer.com/chapter/10.1007/978-3-540-30570-5_27