1、mongodb 文件資料庫,儲存的是文件 (bson->json的二進位製化)
特點:內部執行引擎為js直譯器, 把文件儲存成bson結構,在查詢時,轉換為js物件,並可以通過熟悉的js語法來操作.
2、mongo和傳統型資料庫相比,最大的不同:
傳統型資料庫: 結構化資料, 定好了表結構後,每一行的內容,必是符合表結構的,就是說:5列的個數,型別都一樣.
mongo文件型資料庫: 表下的每篇文件,都可以有自己獨特的結構 (json物件都可以有自己獨特的屬性和值)
nosql一詞最早出現於2023年,是carlo strozzi開發的乙個輕量、開源、不提供sql功能的關聯式資料庫。
nosql從字面上理解:不是sql,這個sql一般代表的是資料庫而且是特指mysql、oracle這種傳統的關係型資料庫,那nosql也就是說不是關係型資料庫。另外一種解釋則是「not only sql」,即「不僅僅是sql」,這旨在強調nosql資料庫並非sql的替代品,它實際上也可以使用類似於sql的查詢概念。
nosql,指的是非關係型的資料庫。nosql有時也稱作not only sql的縮寫,是對不同於傳統的關係型資料庫的資料庫管理系統的統稱。nosql現在的產品有很多,其中最典型是redis和mongodb
nosql的優點/缺點
優點:缺點:
nosql用於超大規模資料的儲存,一般實現儲存資料的結構有以下幾種:
生成或建立鍵:
1、文件代表了mongodb 中的乙個儲存單元。
2、跟關聯式資料庫一樣的,必須通過某種方式來唯一定義一條指定的記錄, mongodb要求每個文件必須有唯一識別符號,稱為_id,預設格式都是objectid,(是乙個12位元組的唯一識別符號),系統預設建立的,除非為該字段指定某個值,否則mongodb將自動建立唯一值。
3、文件是由鍵值對組成。
4、集合collection是一組類似元素的集合,集合可以按需求及時建立。
5、 mongodb的資料庫的最簡單方式就是將它看成乙個集合的集合。
1. wiredtiger 儲存引擎
wiredtiger 在3.2版本成為mongodb的預設儲存引擎
1>、document-level concurrency
document-level concurrency control 的寫操作,這麼說,多個client可以在同一時間內修改同一collection的不同文件。對於大多數讀寫操作,wiredtiger都會使用最佳的併發控制,在global、database、collection等級別上只使用了意向鎖(intent lock)。如果儲存引擎檢測到兩個操作衝突了,則導致mongodb將其中乙個操作重新執行。
2>、snapshots and checkpoints
mongodb配置wiredtiger在每60秒或者2gb日誌資料就建立乙個checkpoint(快照)。在寫入乙個checkpoint時,前乙個checkpoint仍然是有效的,所以在此時mongodb如果崩潰了,還是可以回退到最新的有效checkpoint,並依靠日誌來恢復最近的改變。在新的checkpoint成功變成有效的,之前的舊checkpoint pages就會被釋放
2. 面向文件
mongodb的資料儲存是以文件儲存的,其資料在資料庫中的儲存格式與伺服器端指令碼和客戶端處理的格式非常接近,這避免了將資料在行和物件之間進行轉換。
3. 支援動態查詢
mongodb支援動態查詢,就意味著可以執行查詢而不需要提前做出計畫。
4.為文件建立索引(單鍵索引,符合索引和唯一索引)
mongodb中的所有文件都將會在_id鍵上自動建立索引。系統自動建立的不能刪除,用於保證每個文件的唯一可識別性,提高查詢效能。
5. 使用地理空間索引
索引中特別值得一提的索引,通過該索引可以索引基於位置的資料,從而處理從給定座標開始的特定距離內有多少個元素這樣的查詢。
6 .分析查詢
使用mongodb的查詢規劃器explain()這個內建分析工具可以顯示出如何找到返回的文件。
7. 就地更新資訊
對於mmap儲存的資料庫, mongodb可以在資料所在的位置更新。
8. 儲存二進位制資料
gridfs 是mongodb在資料庫當乙個文件中儲存的二進位制資料超過16m 時中的解決方案,它通過files集合中儲存檔案的資訊(稱為元資料)來實現,資料本身被分成多塊資訊塊儲存在chunks集合中。
9. 複製資料
mongodb中提供複製集來實現資料庫的複製,複製集有一台主伺服器,它將處理所有來自客戶端的要求,當寫入操作發生時,該操作也會被寫入注伺服器的oplog集合中。
10 .實施分片
mongodb涉及大規模部署的應用中,自動分片是其最重要和常用的特性。在自動分片場景中, mongodb將處理所有資料的分割和重組,保證資料進入正確的伺服器,並以最高效的方式執行查詢和重組結果。
11. 使用map和reduce 函式
mongodb提供了對map和reduce 函式的支援,類似於group by .
12. 聚集框架
資料移動,bosn 和josn之間的轉換,應用過濾等都需要使用c++編寫的聚集框架mapreduce.
大資料處理平台簡介和總結
批量大資料 靜態的批量資料,在計算前已經獲取儲存,計算中不發生變化 流式大資料 按時間順序無限增加的動態資料序列 大規模圖資料 大規模的圖結構資料,如 社交網路圖。圖資料存在較強的區域性依賴性 資料採集層 包括業務資料 網際網路資料 可以通過爬蟲採集 物聯網資料 可以通過流採集 資料儲存層 注意非關...
大資料處理
大資料處理的流程主要包括以下四個環節 採集 匯入 預處理 統計 分析 挖掘,下面針對這四環節進行簡單闡述。大資料處理之一 採集 在大資料的採集過程中,其主要特點和挑戰是併發數高,因為同時有可能會有成千上萬的使用者來進行訪問和操作,比如火車票售票 和 它們併發的訪問量在峰值時達到上百萬,所以需要在採集...
利用 SDE 對資料處理入庫
在arcsde中,向量資料的載入通常使用三種方法,使用arccatalog或者arctoolbox中的shapefile coverage等 to geodatabase 直接使用命令列或者使用程式進行入庫shp2sde cov2sde 使用arccatalog更加簡單一些,命令列優勢在於可以真正意...