首先是資料的錄入,為了分析我們伺服器集群的效能,需要準備大量的使用者資料,幸運的是
mtools
提供了mgenerate
方法供我們使用。他可以根據乙個資料模版向
mongodb
中插入任意條
json
資料。下面的
json
結構是我們在例子中需要使用的資料模版
:,
"last":
},
"gender": ,
"age": "$number",
"address": ,
"city":
},
"created_at":
}
}
把它儲存為乙個叫
user.json
的檔案中,然後使用
mgenerate
插入一百條隨機資料。隨機資料的格式就按照上面
json
檔案的定義。你可以通過調整
--num
的引數來插入不同數量的
document
。(link to mgenerate wiki)
mgenerate user.json --num 1000000 --database test --collection users --port 38017
上面的命令會像
test
資料庫中
users collection
插入一百萬條資料。在有些機器上,執行上面的語句可能需要等待一段時間,因為生成一百萬條資料是乙個比較耗時的操作,之所以生成如此多的資料是方便後面我們分析效能時,可以看到效能的顯著差別。當然你也可以只生成十萬條資料來進行測試,只要能夠在你的機器上看到不同
find
語句的執行時間差異就可以
。插入完資料之後,我們想看一下剛剛插入的資料在伺服器集群中是如何分配的。通常,可以通過
sh.status() mongodb shell
命令檢視。不過對於一套全新的集群伺服器,再沒有切分任何
collection
之前,我們是看不到太多有用的資訊。不過,可以通過
explain
一條查詢語句來看一下資料的分布情況。這裡不得不強調一下在進行資料效能分析時乙個好的
ide
對工作效率有多大的影響,我選擇
dbkoda
作為mongodb
的ide
主要原因是他是目前唯一一款對
mongodb shell
的完美演繹,對於
mongodb shell
命令不太熟悉的開發人員來說尤為重要,幸運的是這款
ide
還支援windows/mac/linux
三種平台,基本上覆蓋了絕大多數作業系統版本。下面是對剛才建立的一百萬條
collection
的一次find
的explain
結果。(對於
explain
的應用,大家可以參考我的另外一片文章:如何通過
mongodb
自帶的explain
功能提高檢索效能?
) 來自:
資料探勘 資料的準備
1 資料的收集 2 資料抽樣 注意其代表性和隨機性 代表性指的是樣本與總體的接近程度 隨機性反映樣本被抽中純屬偶然 例如 在對總體質量狀況一無所知的情況下,採用簡單隨機抽樣最為合理 在對總體質量有一定的了解情況下,採用分層隨機或系統隨機抽樣可提高其代表性 而對於簡單隨機抽樣有困難的情況下,可採用隨機...
關於資料準備
在專案進入正式測試階段之前,有乙個環節就是測試資料準備。當時,面對專案複雜的業務規則,一下子還不知道這個測試資料如何入手,往往準備的很粗糙。緊接著就是緊張的測試工作。在測試過程中,原來不清晰的業務規則 很多業務的潛規則也一點一點的被挖出來 也終於顯山顯水了。隨著測試進一步進行,一系列的測試資料也因為...
weka資料準備
將matlab中的陣列資料儲存為weka使用的.arff格式的資料 1 先將matlab中的陣列資料儲存為.csv格式的資料 matlab命令 csvwrite filename matrixname 3 將.csv格式的資料轉換成.arff格式的資料 1 開啟weka gui chooser,在t...