大きなデータにアルゴリズムを適用する


8

大きなデータ(つまり、メインメモリに完全にロードできないデータ)に一般的なアルゴリズム(並べ替え、検索など)を効率的に適用する方法と、それらのアルゴリズムのコストを考慮してアルゴリズムを効率的に適用する方法を教える本またはチュートリアルはありますか?外部メモリからのブロック転送?たとえば、ほとんどすべてのアルゴリズムの教科書では、BおよびB +ツリーを使用してデータをディスクに格納できるとされています。ただし、実際にこれを行う方法、特にデータがディスク上に存在する場合のポインタの処理については説明されていません。同様に、多くの本は検索技術を教えていますが、二次記憶に存在するデータを考慮していません。

クヌースの本をチェックしました。これらのアイデアについて説明していますが、実際にそれらを高級言語に適用する方法はまだわかりませんでした。これらの詳細について説明している参考資料はありますか?


1
「Mining Massive Data Sets」をチェックしてください。
デイブクラーク

SXLXLの包括的な参考文献を見ることができます。XXLデータセットの標準テンプレートライブラリです
Vor

オラクル、DB2、SQL Serverの、のような偉大なのDBを有する。この日は、通常、誰もが大きなデータセット、自分自身を、働かないあなたは、DBサーバの1つに関連文書を見て可能性が興味を持ったが、この日の場合はMartin Fowler氏と他のいくつかの人々がしようとしていますNO SQLに移動して、チェックすることもできます。(しかし、高速データベースだけではなく、同時実行性、セキュリティなど、大きなデータベースには多くの側面があります)。

@ Dave、Vor:参考にしていただきありがとうございます。それらをチェックして、私が探しているものかどうかを通知します。
アラニ

@SaeedAmiri:私はそれを理解していますが、私が理解していることから、データベースへのデータの保存は、データが何らかの形で高度に構造化されている場合にのみ役立ちます。そのため、一連の数値やその他の同様のデータは、通常、データベースを使用して保存されません。さらに、データベースの教科書は、データベース開発者の観点からは詳しく説明していません。それらのほとんどは、データベースがBおよびB +ツリーを使用すると述べていますが、ほとんどは、これらのデータ構造をどのように実装するかを実際に説明していません。
アラニ

回答:


2

データベースの本が良い例です。ただし、フィールドI / Oの効率的なデータ構造(およびアルゴリズム)を確認してください。私の知る限りでは、このトピックに関するコースはいくつかありますが、本はほとんどありません。

この本をチェックしてください:U. Meyer、P。Sanders、およびJ. Sibeyn(編)、メモリ階層のアルゴリズム、Lecture Notes in Computer Science 2625、Springer、2003。

これらのコースを確認してください:http : //www.win.tue.nl/~hermanh/teaching/2IL35/ http://www.daimi.au.dk/~large/ioS12/

およびこれらのスライド:algo2.iti.kit.edu/sanders/courses/algen09-10/rdslides.pdf


1

Ramkrishnan and Gehrkeのデータベースブックでは、これらの事項について詳細に説明しています。


史上最悪で最も退屈な:)!データベースとデータベースの最適化に関する多くの興味深いトピックへの良い入門ですが。
2015


0

現在、このフィールドはビッグデータと呼ばれ、仮想化との強いつながりに基づいて非常に迅速かつ迅速に進化しており、リレーショナルデータベーステクノロジーはサブセットとしてのみ見られています。また、コメントとして、キー/バリューデータベースとNoSQLは、多くの新しい革新と勢いが動いているところです。しかし、あなたのコメントから、あなたはリレーショナルデータベースの設計原則とテクニックにもっと興味があるようです。次の参照を試してください:


私は実際には非リレーショナルデータベースシステムを研究していないので、それは1つのもっともらしい答えかもしれません。しかし、私は実際にはデータベースの設計を説明するデータベースのテキストを探していません。代わりに、データベース開発者の観点からそれを説明する本(ディスクで作業するためのデータ構造がどのように実装されているかを明示的に示している)は非常に役立ちます。
Arani、2012

これを認めるのは嫌いですが、これらの参照を少し失敗しました。データベースアルゴリズムに関する本はありますが、テーブルの編成方法、データのモデル化、正規化、インデックスなど、これらのような概念に関するデータベース設計に関する本はたくさんあります。これらはあなたの質問に接線的に関連していますが、それらは本当に正確に接続されていません。基本的に、最新のデータベースでBツリーを管理するための戦略の多くは、企業秘密にややこしらえています。通常、Bツリーは動的に割り当てられ、インデックスが付けられる「ページ」に格納されます。いつかこれについてより良い参照を探すかもし​​れません。
vzn

あなたが本当に望んでいるのは、物理データベースストレージ設計です(これらの参照の一部では大まかにカバーされているか、そうでない可能性があります)。たとえば、関連するコンテンツを含むケーススタディのホワイトペーパーはここにあります。 、MS SQLサーバー
vzn 2012

密接に関連するクエリプランの最適化
vzn

1
B +ツリーインデックスも参照してください。ストレージページへのいくつかの参照とapache derby、実装の詳細を含むJavaのBツリーフェッチ/ストレージ実装
vzn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.