如何将 MongoDB MapReduce 速度提升 20 倍
分析在MongoDB中正成为越来越重要的话题,因为它在越来越多的大型项目中使用。人们厌倦了使用不同的软件来做分析(包括Hadoop),
分析在MongoDB中正成为越来越重要的话题,因为它在越来越多的大型项目中使用。人们厌倦了使用不同的软件来做分析(包括Hadoop),它们显然需要传输大量开销的数据。
MongoDB提供了两种内置分析数据的方法:Map Reduce和Aggregation框架。MR非常灵活,很容易部署。它通过分区工作良好,,并允许大量输出。MR在MongoDB v2.4中,通过使用JavaScript引擎把Spider Monkey替换成V8,性能提升很多。老板抱怨它太慢了,尤其是和Agg框架(使用C++)相比。让我们看看能否从中榨出点果汁。
练习让我们插入1千万条文档,每个文档包含一个从0到1000000的整数。这意味着平均有10个文档会具有相同的值。
> for (var i = 0; i > db.uniques.findOne()
{ "_id" : ObjectId("51d3c386acd412e22c188dec"), "dim0" : 570859 }
> db.uniques.ensureIndex({dim0: 1})
> db.uniques.stats()
{
"ns" : "test.uniques",
"count" : 10000000,
"size" : 360000052,
"avgObjSize" : 36.0000052,
"storageSize" : 582864896,
"numExtents" : 18,
"nindexes" : 2,
"lastExtentSize" : 153874432,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 576040080,
"indexSizes" : {
"_id_" : 324456384,
"dim0_1" : 251583696
},
"ok" : 1
}
从这其中,我们想要计算出现的不同值的个数。可以用下列MR任务轻松完成这个工作:
> db.runCommand(
{ mapreduce: "uniques",
map: function () { emit(this.dim0, 1); },
reduce: function (key, values) { return Array.sum(values); },
out: "mrout" })
{
"result" : "mrout",
"timeMillis" : 1161960,
"counts" : {
"input" : 10000000,
"emit" : 10000000,
"reduce" : 1059138,
"output" : 999961
},
"ok" : 1
}
正如你在输出内容中看到的,这耗费了大概1200秒(在EC2 M3实例上进行的测试)。有1千万个map,1百万个reduce,输出了999961个文档。结果就像下面这样:
> db.mrout.find()
{ "_id" : 1, "value" : 10 }
{ "_id" : 2, "value" : 5 }
{ "_id" : 3, "value" : 6 }
{ "_id" : 4, "value" : 10 }
{ "_id" : 5, "value" : 9 }
{ "_id" : 6, "value" : 12 }
{ "_id" : 7, "value" : 5 }
{ "_id" : 8, "value" : 16 }
{ "_id" : 9, "value" : 10 }
{ "_id" : 10, "value" : 13 }
...
更多详情见请继续阅读下一页的精彩内容:
MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里
推荐阅读:
Java实现MongoDB中自增长字段
CentOS编译安装MongoDB
CentOS 编译安装 MongoDB与mongoDB的php扩展
CentOS 6 使用 yum 安装MongoDB及服务器端配置
Ubuntu 13.04下安装MongoDB2.4.3
如何在MongoDB中建立新数据库和集合
MongoDB入门必读(概念与实战并重)
《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









ハルビン医科大学の臨床薬学の就職の見通しはどのようなものですか? 全国の雇用情勢は楽観的ではありませんが、薬学部卒業生の就職の見通しは依然として良好です。全体として、薬学部卒業生の供給は需要を下回っており、製薬会社や製薬工場がその卒業生を吸収する主なチャネルとなっており、製薬業界における人材需要も着実に伸びています。報道によると、近年、医薬品製剤や生薬化学などの専攻の大学院生の需給比は1:10に達するケースもあるという。臨床薬学専攻の就職方向:臨床医学専攻の学生は卒業後、医療保健ユニット、医学研究部門等で治療、予防、医学研究等に従事することができます。雇用職種:医薬情報担当者、医薬品営業担当者、営業担当者、営業マネージャー、地域営業マネージャー、投資マネージャー、プロダクトマネージャー、プロダクトスペシャリスト、看護師

Golang での MapReduce 計算プロセスを高速化するためにキャッシュを使用する実践。データの規模が増大し、コンピューティングの強度が高まるにつれ、従来のコンピューティング手法では、迅速なデータ処理に対する人々のニーズを満たすことができなくなりました。これに関連して、MapReduce テクノロジーが登場しました。しかし、MapReduceの計算処理では、多数のKey-Valueペアを扱う演算を行うため計算速度が遅くなり、計算速度をいかに最適化するかが重要な課題となっている。近年、多くの開発者が Golang 言語の開発を始めています。

最近、何人かの友人が win10 イメージ ファイルをダウンロードする方法を報告しました。市場には非常に多くのイメージ ファイルがあるため、ダウンロードする通常のファイルを見つけたい場合はどうすればよいですか?本日、編集者が画像をダウンロードするためのリンクと詳細な解決手順を提供しましたので、一緒に見てみましょう。 win10 イメージのクイック ダウンロードとインストール チュートリアル ダウンロード リンク >>> システム ホーム Ghostwin101909 イメージ 64 ビット バージョン v2019.11<<<>>>Win10 イメージ 64 ビット v2019.07<<<>>>Win10 イメージ 32 ビット v2019。 07<< <1. インターネットで検索する

一時フォルダーをクリーンアップする方法 コンピューターを使用していると、一時ファイル (一時ファイル) が徐々に蓄積されていきます。これらの一時ファイルは、Web 閲覧時のキャッシュ ファイル、ソフトウェアのインストール時の一時ファイルなど、コンピューターを使用するときに生成されます。一時フォルダーを長期間クリーンアップしないと、大量のディスク領域が占有され、コンピューターの速度に影響が出る可能性があります。したがって、一時フォルダーを定期的にクリーニングすることは、コンピューターのパフォーマンスを維持するために必要な手順です。以下に、一時フォルダーをクリーンアップする簡単な方法をいくつか紹介します。方法 1: 手動でクリーニングします。

Win10システムをリセットするにはどうすればよいですか?最近、多くの友人が Win10 システムを搭載したコンピュータを使用することを好みますが、コンピュータを使用していると必ず解決できない問題が発生します。このとき、システムをリセットすることができます。エディターに従って、Win10 システムのリセットに関するチュートリアルを見てみましょう。必要なユーザーは見逃さないでください。 Win10 システムのリセットに関するチュートリアル 1. [Windows] をクリックし、[設定] を選択します。 2. 「更新とセキュリティ」をクリックします。 3. 「復元」を選択します。 4. 右側の「開始」をクリックして、このコンピュータをリセットします。上記は、[Win10 システムをリセットする方法 - Win10 システムをリセットするチュートリアル] の全内容ですが、このサイトにはさらに興味深いチュートリアルが用意されています。

win11コンピュータの構成を確認するにはどうすればよいですか? win11 システムは非常に実用的なコンピュータ オペレーティング システムのバージョンです。このバージョンではユーザーに豊富な機能が提供され、ユーザーはより良いコンピュータ操作体験を得ることができます。コンピュータを使用する多くの友人が自分のコンピュータに興味を持っています。具体的な構成、この操作の実行方法win11システムでは?詳細な操作方法を知らない友人も多いと思いますが、Win11 コンピュータの構成を表示する方法についてはエディターが以下にまとめていますので、興味がある方はエディターをフォローして読み進めてください。 Win11 コンピューター構成ビューのチュートリアル 1. 下のタスクバーの Windows アイコンをクリックするか、キーボードの「Windows キー」を押して、スタート メニューを開きます。 2. スタートメニューで「設定」または「sett」を見つけます。

システム再インストール時に環境テストに失敗し、書き換えが必要になる場合の解決方法:携帯電話が汚染されているため、ウイルス対策として Mobile Manager などのウイルス対策ソフトをインストールしてください 2. ジャンクが多いファイルは携帯電話内に保存されるため、携帯電話の実行メモリが占有されます。この問題を解決するには、電話機のキャッシュをクリアするだけです。3. 保存されたソフトウェアやファイルによって電話機のメモリが占有されすぎています。不要なファイルやソフトウェアを頻繁に削除しても問題ありません。ハードウェア構成がインストール要件を満たしている限り、次のことが可能です。新しいものを直接使用してください。システム ディスクからシステムを再インストールしてください。 USB フラッシュ ドライブまたはハードディスクを使用してインストールでき、非常に高速です。ただし、重要なのは、互換性の良いシステム ディスク (IDE、ACHI、および RAID モードでのインストールをサポート) を使用することであり、自動的かつ永続的にアクティブ化できることが検証されています。それで

この記事では、HTML に要素の値を追加する方法を説明します。 HTML の value 属性とそれが使用される状況についての基本を理解しています。 HTMLvalue 属性についての理解を深めていきましょう。 HTML では、value 属性は、一緒に使用される要素の値を記述するために使用されます。これは、さまざまな HTML コンポーネントに対して異なる意味を持ちます。使用法 - 、、、、、、、要素とともに使用できます。 - value 属性が存在する場合、input 要素のデフォルト値が何であるかを示します。入力の種類ごとに意味が異なります。ボタンが「ボタン」、「リセット」、および「&qu」に表示される場合。
