4

データのタグ付けをサポートするストレージ システムを実装しようとしています。このシステムの非常に単純なアプリケーションは、複数のタグでタグ付けされた Stackoverflow の質問のようなものです。また、クエリは複数のタグで構成される場合があります。これも、複数のキーワードで Google で検索したように見えます。

このシステムによって維持されるデータ セットは、数十億のエントリを持つ数または数十テラバイトのように、非常に大きくなります。

では、このシステムでデータを維持およびクエリするために、どのデータ構造とアルゴリズムを使用すればよいでしょうか? また、データはマシンのクラスター全体に保存される場合があります。

そのような問題と解決策を説明するガイドや論文はありますか?

4

2 に答える 2

3

以下の 2 冊の本を読むことをお勧めします。

  1. 活動中の集合知

    サトナム アラグ (ISBN: 1933988312)
    http://www.manning.com/alag/

    「Capter 3. タグからのインテリジェンスの抽出」では、次の内容をカバーしています。

    • タグ付けの 3 つの形式とタグの使用
    • タグからインテリジェンスを抽出する方法の実例
    • タグ付けのためのデータベース アーキテクチャ
    • タグクラウドの開発

  2. 集合知のプログラミング

    トビー・セガラン (ISBN: 978-0-596-52932-1)
    http://shop.oreilly.com/product/9780596529321.do

     「第 4 章 検索とランキング」では、次の内容を扱います。

    • 検索エンジン インデックスのアルゴリズムの基本概念
    • クリック追跡ニューラル ネットワークの設計

それが役に立てば幸い。

于 2012-09-26T11:52:14.470 に答える
2

あなたの問題は非常に難しいですが、関連する論文や本はたくさんあります。Amazon Dynamo紙yahoo PNUTS、およびこのHadoop紙が良い例です。したがって、最初に、データをクラスター全体に分散する方法を決定する必要があります。データは、ホットスポットなしでネットワーク全体に均等に分散する必要があります。コンシステントハッシュは、この問題の良い解決策になります。また、データは冗長である必要があり、個々のノードの障害に耐えるために、エントリを複数の場所に保存する必要があります。

次に、システムで書き込みがどのように発生するかを決定する必要があります。すべての書き込みは、更新されたデータエントリを含むノード間で複製する必要があります。CAP定理と結果整合性の概念について読みたいと思うかもしれません(ウィキペディアには両方についての良い記事があります)。また、一貫性があります-遅延のトレードオフ。書き込みレプリケーションにはさまざまなメカニズムを使用できます。ある種のゴシッププロトコルまたは状態マシンレプリケーションです。

どういうタグ付けなのかわかりませんが、このタグは手動でエントリに割り当てられているのですか、それともデータから学習されているのですか。とにかく、これは情報検索(IR)の分野です。ある種の転置インデックスを使用して、タグまたはキーワードでエントリを効果的に検索できます。また、クエリ結果のランク付けアルゴリズムを使用する必要があります。

于 2012-09-27T06:19:26.993 に答える