すべてのイベントを保存することが不可能なストリーム内のデータを要約するための Java ライブラリ。より具体的には、次のような推定のためのクラスがあります。メンバーシップを設定します。上位 k 個の要素と頻度。特に便利な機能の 1 つは、互換性のある構成を持つカーディナリティ推定器を安全にマージできることです。
これらのクラスは、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 の投稿「ブルーム フィルターの作成について知っておきたいことすべて」です。
特定の論文への Javadoc 参照があります。これらは、調査中に最も関連性が高いとわかったものです。
Min Cai、Jianping Pan、Yu K. Kwok、Kai Hwang。適応型カーディナリティ カウンティングを使用した、高速かつ正確なトラフィック マトリクス測定。 MineNet '05: マイニング ネットワーク データに関する 2005 ACM SIGCOMM ワークショップの議事録、205 ~ 206 ページ、米国ニューヨーク州ニューヨーク、2005 年。ACM。
アーメド・メトワリー、ディヴィヤカント・アグラワル、アムル・E・アバディ。線形にできるのに、なぜ対数に行くのでしょうか?: 検索トラフィックを効果的に個別にカウントするために。 EDBT '08: データベース技術の拡張に関する第 11 回国際会議議事録、618 ~ 629 ページ、米国ニューヨーク州ニューヨーク、2008 年。ACM。
ニコス・ンタルモス、ピーター・トリアンタフィロウ、ゲルハルト・ヴァイクム。全体のカウント: インターネット規模のデータ ネットワークにおける効率的なカーディナリティ推定。 ICDE '06: データ エンジニアリングに関する第 22 回国際会議議事録、40 ページ以上、米国ワシントン DC、2006 年。IEEE Computer Society。
マリアンヌ・デュランとフィリップ・フラジョレ。 LogLog 大きなカーディナリティのカウント。 ESA03、LNCS のボリューム 2832、605 ~ 617 ページ、2003 年。
キュ・Y・ファン、ブラッド・T・ヴァンダー・ザンデン、ハワード・M・テイラー。データベース アプリケーション向けの線形時間確率計数アルゴリズム。 ACMトランス。データベース システム、15(2):208–229、1990。
モーゼス・チャリカー、ケビン・チェン、マーティン・F・コルトン。データ ストリーム内で頻繁に使用される項目を検索します。 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/quote.cfm?id=956918
アーメド・メトワリー、ディヴィヤカント・アグラワル、アムル・アバディ。データ ストリーム内の頻繁な要素と上位 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