ไลบรารี Java สำหรับการสรุปข้อมูลในสตรีมซึ่งไม่สามารถจัดเก็บเหตุการณ์ทั้งหมดได้ โดยเฉพาะอย่างยิ่ง มีคลาสสำหรับการประมาณค่า: ภาวะเชิงการนับ (เช่น การนับสิ่งของ); กำหนดสมาชิกภาพ; องค์ประกอบและความถี่ระดับบนสุด คุณสมบัติที่มีประโยชน์อย่างยิ่งประการหนึ่งคือตัวประมาณค่าจำนวนนับที่มีการกำหนดค่าที่เข้ากันได้สามารถรวมเข้าด้วยกันได้อย่างปลอดภัย
คลาสเหล่านี้อาจใช้โดยตรงในโปรเจ็กต์ 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
รหัสสมาชิกที่ตั้งไว้คือการใช้งาน Bloom Filter จาก Apache Cassandra ประมาณเดือนธันวาคม 2552 การเปลี่ยนแปลงที่นี่มีเพียงเล็กน้อยและมีวัตถุประสงค์เพื่อการทดสอบและการใช้งานอิสระ ส่วนหัวของ Apache Software Foundation ยังคงอยู่ในไฟล์เหล่านี้ โดยการขยายเรายังรวมการบ่นด้วย
เราได้รับแรงบันดาลใจให้ใช้โค้ดนี้จากโพสต์ของ Jonathan Ellis ทุกสิ่งที่คุณอยากรู้เกี่ยวกับการเขียนฟิลเตอร์บาน
มีการอ้างอิง javadoc ไปยังเอกสารเฉพาะ สิ่งเหล่านี้คือสิ่งที่เราพบว่ามีความเกี่ยวข้องมากที่สุดระหว่างการวิจัย
Min Cai, Jianping Pan, Yu K. Kwok และ Kai Hwang การวัดเมทริกซ์ทราฟฟิกที่รวดเร็วและแม่นยำโดยใช้การนับคาร์ดินัลลิตี้แบบปรับเปลี่ยนได้ ใน MineNet '05: Proceedings of the 2005 ACM SIGCOMM Workshop on Mining network data, หน้า 205–206, นิวยอร์ก, นิวยอร์ก, สหรัฐอเมริกา, 2005. ACM
อาเหม็ด เมตวัลลี, ดิวิอากันต์ อากราวัล และอัมร์ อี. อับบาดี ทำไมต้องใช้ลอการิทึมถ้าเราสามารถเชิงเส้นได้: ไปสู่การนับปริมาณการค้นหาที่แตกต่างกันอย่างมีประสิทธิภาพ ใน EDBT '08: การประชุมนานาชาติครั้งที่ 11 เรื่องการขยายเทคโนโลยีฐานข้อมูล หน้า 618–629 นิวยอร์ก นิวยอร์ก สหรัฐอเมริกา 2551 ACM
นิคอส เอ็นตาร์มอส, ปีเตอร์ ทริอานทาฟิลลู และแกร์ฮาร์ด ไวคัม การนับจำนวนมาก: การประมาณจำนวนสมาชิกที่มีประสิทธิภาพในเครือข่ายข้อมูลระดับอินเทอร์เน็ต ใน ICDE '06: Proceedings of the 22nd International Conference on Data Engineering, หน้า 40+, วอชิงตัน ดี.ซี. สหรัฐอเมริกา, 2549 IEEE Computer Society
มารีแอนน์ ดูแรนด์ และฟิลิปป์ ฟลาโจเลต์ LogLog การนับจำนวนสมาชิกจำนวนมาก ใน ESA03 เล่มที่ 2832 ของ LNCS หน้า 605–617, 2003
คยู วาย. หวาง, แบรด ที. แวนเดอร์ แซนเดน และโฮเวิร์ด เอ็ม. เทย์เลอร์ อัลกอริธึมการนับความน่าจะเป็นตามเวลาเชิงเส้นสำหรับแอปพลิเคชันฐานข้อมูล พลอากาศเอกทรานส์ ระบบฐานข้อมูล, 15(2):208–229, 1990.
โมเสส ชาริการ์, เควิน เฉิน และมาร์ติน เอฟ. โคลตัน การค้นหารายการที่พบบ่อยในสตรีมข้อมูล ใน ICALP '02: Proceedings of the 29th International Colloquium on Automata, Languages and Programming, หน้า 693–703, London, UK, 2002. Springer-Verlag
สเตฟาน ฮอยเลอ, มาร์ค นันเกสเซอร์, อเล็กซ์ ฮอลล์ HyperLogLog ในทางปฏิบัติ: วิศวกรรมอัลกอริทึมของอัลกอริธึมการประมาณจำนวนสมาชิกที่ทันสมัย การดำเนินการของการประชุม EDBT 2013, ACM, เมืองเจนัว ประเทศอิตาลี
เชชิง จิน, เว่ยหนิง เฉียน, เฉาเฟิง ซา, เจฟฟรีย์ เอ็กซ์. หยู และ อายิง โจว การรักษารายการที่ใช้บ่อยแบบไดนามิกผ่านสตรีมข้อมูล ใน CIKM '03: Proceedings of the 12 international conference on Information and Knowledge Management, หน้า 287–294, นิวยอร์ก, นิวยอร์ก, สหรัฐอเมริกา, 2003. ACM. 10.1145/956863.956918 http://dl.acm.org/citation.cfm?id=956918
อาเหม็ด เมตวัลลี, ดิเวียกันต์ อากราวัล และอัมร์ อับบาดี การคำนวณที่มีประสิทธิภาพขององค์ประกอบที่พบบ่อยและองค์ประกอบ top-k ในสตรีมข้อมูล หน้า 398–412. 2548 10.1007/978-3-540-30570-5_27 http://link.springer.com/chapter/10.1007/978-3-540-30570-5_27