MonoDB的資料準備

2021-09-07 16:37:56 字數 1796 閱讀 4777

首先是資料的錄入,為了分析我們伺服器集群的效能,需要準備大量的使用者資料,幸運的是

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...