柚子快報激活碼778899分享:NoSQL數(shù)據(jù)庫
柚子快報激活碼778899分享:NoSQL數(shù)據(jù)庫
文章目錄
NoSQL數(shù)據(jù)庫NoSQL 特點(diǎn)
大數(shù)據(jù)特征三種外部存儲形式(DAS、SAN、NAS)管理和查詢方式
關(guān)系型數(shù)據(jù)庫關(guān)系模型完整性約束ACID要求CAP原理和BASE原理
Hadoop架構(gòu)三個節(jié)點(diǎn)
HDFS 基本配置參數(shù)hbase數(shù)據(jù)模型拓?fù)浣Y(jié)構(gòu)META表 尋址數(shù)據(jù)讀寫機(jī)制分區(qū)方式數(shù)據(jù)表基本設(shè)計(jì)原則(常見原則2個)
Cassdndra三個特點(diǎn)Dynamo數(shù)據(jù)一致性原理矢量時鐘的設(shè)計(jì)目的閑話(Gossip)CQL的數(shù)據(jù)類型原生類型集合類型用戶自定義類型
mongoDB概述配置文件重要參數(shù)管道和聚合索引操作(索引類型)概述配置文件重要參數(shù)管道和聚合索引操作(索引類型)部署分片集
NoSQL數(shù)據(jù)庫
NoSQL 特點(diǎn)
NoSQL是指非關(guān)系型數(shù)據(jù)庫,相對于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,它具有以下特點(diǎn):
非結(jié)構(gòu)化數(shù)據(jù)存儲:NoSQL數(shù)據(jù)庫不需要預(yù)定義數(shù)據(jù)模型和表結(jié)構(gòu),可以存儲非結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù),如JSON、XML、文本、圖像等。分布式數(shù)據(jù)存儲:NoSQL數(shù)據(jù)庫采用分布式數(shù)據(jù)存儲架構(gòu),可以水平擴(kuò)展,支持大規(guī)模數(shù)據(jù)存儲和處理。高可用性和容錯性:NoSQL數(shù)據(jù)庫具有高可用性和容錯性,可以自動復(fù)制數(shù)據(jù),保證數(shù)據(jù)的可靠性和可用性。高性能數(shù)據(jù)訪問:NoSQL數(shù)據(jù)庫通常使用基于鍵值或文檔的數(shù)據(jù)訪問模型,能夠?qū)崿F(xiàn)高性能的數(shù)據(jù)讀取和寫入。適合大數(shù)據(jù)和高并發(fā)場景:NoSQL數(shù)據(jù)庫適合處理海量數(shù)據(jù)和高并發(fā)場景,如社交媒體、物聯(lián)網(wǎng)、云計(jì)算等應(yīng)用場景。靈活性和擴(kuò)展性:NoSQL數(shù)據(jù)庫可以根據(jù)業(yè)務(wù)需求進(jìn)行定制和擴(kuò)展,可以通過添加新節(jié)點(diǎn)、增加存儲空間等方式來擴(kuò)展系統(tǒng)。
總的來說,NoSQL數(shù)據(jù)庫具有非常高的可擴(kuò)展性、可用性、靈活性和性能,適合處理大數(shù)據(jù)和高并發(fā)場景下的數(shù)據(jù)管理和分析需求。
大數(shù)據(jù)
大數(shù)據(jù)是指數(shù)據(jù)量非常龐大、復(fù)雜多變的數(shù)據(jù)集合,這些數(shù)據(jù)可以來自各種不同的來源,如社交媒體、傳感器、設(shè)備、傳統(tǒng)企業(yè)數(shù)據(jù)等。
特征
Volume(數(shù)據(jù)量大):大數(shù)據(jù)的主要特征是其數(shù)據(jù)量巨大,以至于傳統(tǒng)的數(shù)據(jù)處理工具無法處理它們。Velocity(數(shù)據(jù)處理速度快):大數(shù)據(jù)的產(chǎn)生速度非???,因此需要快速處理和分析數(shù)據(jù),以便及時做出決策。Variety(數(shù)據(jù)多樣性):大數(shù)據(jù)來源廣泛,包括結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),因此需要能夠處理和分析多種不同類型的數(shù)據(jù)。Veracity(數(shù)據(jù)準(zhǔn)確性):大數(shù)據(jù)往往包含大量的噪音和錯誤,因此需要采取措施保證數(shù)據(jù)的準(zhǔn)確性。
三種外部存儲形式(DAS、SAN、NAS)
DAS、SAN、NAS都是存儲領(lǐng)域的術(shù)語,它們分別表示:
DAS(Direct Attached Storage):直接連接式存儲,是一種將存儲設(shè)備直接連接到服務(wù)器上的存儲架構(gòu)。DAS常見的形式是將硬盤或SSD通過SATA或SAS接口直接連接到服務(wù)器的內(nèi)部或外部。DAS的特點(diǎn)是延遲低、吞吐量大、成本低,但可擴(kuò)展性較差,不能滿足大規(guī)模數(shù)據(jù)的存儲和處理需求。SAN(Storage Area Network):存儲區(qū)域網(wǎng)絡(luò),是一種通過網(wǎng)絡(luò)連接存儲設(shè)備和服務(wù)器的存儲架構(gòu)。SAN通常采用光纖通道(Fiber Channel)或iSCSI等網(wǎng)絡(luò)技術(shù)連接服務(wù)器和存儲設(shè)備,具有高可靠性、高可擴(kuò)展性、高帶寬等特點(diǎn)。SAN適用于大規(guī)模數(shù)據(jù)中心和企業(yè)級應(yīng)用。NAS(Network Attached Storage):網(wǎng)絡(luò)附屬存儲,是一種通過網(wǎng)絡(luò)連接存儲設(shè)備和服務(wù)器的存儲架構(gòu)。NAS通常采用以太網(wǎng)連接服務(wù)器和存儲設(shè)備,具有易于管理、易于擴(kuò)展等特點(diǎn),適用于小型和中型企業(yè)以及個人用戶。
總體而言,DAS適用于小規(guī)模數(shù)據(jù)存儲需求,SAN適用于大規(guī)模數(shù)據(jù)中心和企業(yè)級應(yīng)用,而NAS適用于小型和中型企業(yè)以及個人用戶的數(shù)據(jù)存儲需求。選擇適合自己需求的存儲架構(gòu)可以提高數(shù)據(jù)的處理效率和準(zhǔn)確性。
管理和查詢方式
大數(shù)據(jù)的列管理和原格式存儲通常采用的查詢方式有以下兩種:
掃描整個表格查詢:在這種方式下,數(shù)據(jù)分布在多個列中,需要查詢整個表格才能找到需要的數(shù)據(jù)。這種方式的查詢速度較慢,但對于需要查詢多個列的情況比較有效。這種方式的代表是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫查詢方式。列存儲查詢:在這種方式下,數(shù)據(jù)按列存儲,每個列都有一個獨(dú)立的存儲文件,因此只需讀取需要的列即可找到需要的數(shù)據(jù)。這種方式的查詢速度較快,尤其適合需要查詢單獨(dú)列的情況。這種方式的代表包括Hadoop中的列式存儲、Apache Cassandra等。
總的來說,列存儲適合讀取較少的列,但對于讀取整個表格的情況可能不如行式存儲快速,需要權(quán)衡存儲成本、數(shù)據(jù)量以及查詢性能等因素來選擇合適的存儲方式和查詢方式。
關(guān)系型數(shù)據(jù)庫
關(guān)系模型
關(guān)系模型的特點(diǎn)包括:
表格化的數(shù)據(jù)結(jié)構(gòu):關(guān)系型數(shù)據(jù)庫采用表格化的數(shù)據(jù)結(jié)構(gòu),每個表格包含若干行數(shù)據(jù)和若干列屬性。關(guān)系的概念:關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)存儲為若干個關(guān)系,每個關(guān)系由一張表格表示,通過主鍵和外鍵建立關(guān)系。SQL語言:關(guān)系型數(shù)據(jù)庫使用SQL語言進(jìn)行數(shù)據(jù)的操作和查詢。事務(wù)支持:關(guān)系型數(shù)據(jù)庫支持ACID事務(wù),保證數(shù)據(jù)的一致性、隔離性、持久性和原子性。
完整性約束
完整性約束是關(guān)系型數(shù)據(jù)庫中的一個重要特性,它用于保證數(shù)據(jù)的一致性和完整性,包括:
實(shí)體完整性:保證每個表格中的每一行數(shù)據(jù)都有一個唯一的主鍵值,以便能夠準(zhǔn)確地找到和修改每一行數(shù)據(jù)。參照完整性:保證外鍵引用的關(guān)系必須存在,以便能夠建立關(guān)系和維護(hù)數(shù)據(jù)的一致性。域完整性:保證數(shù)據(jù)在插入或更新時滿足指定的數(shù)據(jù)類型、長度、格式、精度等規(guī)定,以便能夠準(zhǔn)確地存儲和查詢數(shù)據(jù)。
ACID要求
ACID是關(guān)系型數(shù)據(jù)庫的一個重要特性,表示原子性、一致性、隔離性和持久性。
原子性:事務(wù)操作是一個不可分割的整體,要么全部執(zhí)行成功,要么全部失敗,保證數(shù)據(jù)的完整性和一致性。一致性:事務(wù)執(zhí)行前后數(shù)據(jù)庫中的數(shù)據(jù)必須保持一致性,不會出現(xiàn)數(shù)據(jù)損壞或丟失。隔離性:并發(fā)的事務(wù)之間相互隔離,不會相互影響,保證數(shù)據(jù)的獨(dú)立性和安全性。持久性:事務(wù)執(zhí)行成功后,數(shù)據(jù)必須永久保存在數(shù)據(jù)庫中,即使發(fā)生系統(tǒng)故障也不會丟失。
CAP原理和BASE原理
CAP原理是指在分布式系統(tǒng)中,一致性(Consistency)、可用性(Availability)和分區(qū)容錯性(Partition Tolerance)這三個特性無法同時滿足,必須舍棄其中一個或多個。具體來說:
一致性(Consistency):指在分布式系統(tǒng)中,數(shù)據(jù)在多個節(jié)點(diǎn)上的副本必須保持一致,即任何時刻任何節(jié)點(diǎn)讀取到的數(shù)據(jù)都是最新的數(shù)據(jù)??捎眯裕ˋvailability):指在分布式系統(tǒng)中,任何時刻都能夠讀寫數(shù)據(jù),即系統(tǒng)具有高可用性。分區(qū)容錯性(Partition Tolerance):指在分布式系統(tǒng)中,系統(tǒng)在遇到節(jié)點(diǎn)故障、網(wǎng)絡(luò)故障等情況時仍然能夠正常工作,即系統(tǒng)具有分區(qū)容錯性。
在CAP原理中,由于分布式系統(tǒng)的不可避免的網(wǎng)絡(luò)分區(qū)問題,必須選擇放棄一項(xiàng),以保證系統(tǒng)的正常運(yùn)行。在實(shí)際應(yīng)用中,根據(jù)不同的需求和場景,可以選擇不同的權(quán)衡策略。
而BASE原則是對CAP原則的一種補(bǔ)充,它認(rèn)為在分布式系統(tǒng)中,不同的應(yīng)用場景對一致性的要求是不同的,因此不必追求強(qiáng)一致性,而應(yīng)該追求基本可用性(Basically Available)、軟狀態(tài)(Soft state)和最終一致性(Eventually Consistent):
基本可用性(Basically Available):指系統(tǒng)在出現(xiàn)故障或異常情況時,仍能夠保證核心功能的正常使用。軟狀態(tài)(Soft state):指系統(tǒng)的狀態(tài)可以在不同的節(jié)點(diǎn)之間進(jìn)行傳輸和同步,因此系統(tǒng)的狀態(tài)不需要全局一致。最終一致性(Eventually Consistent):指系統(tǒng)在一定時間內(nèi)會達(dá)到一致狀態(tài),即數(shù)據(jù)在多個節(jié)點(diǎn)之間會在一定時間內(nèi)保持一致。
BASE原則強(qiáng)調(diào)的是在分布式系統(tǒng)中,系統(tǒng)的可用性和性能至關(guān)重要,因此在數(shù)據(jù)的一致性和可用性之間需要進(jìn)行權(quán)衡。相比CAP原則追求強(qiáng)一致性,BASE原則追求最終一致性,更加符合實(shí)際需求。
Hadoop
架構(gòu)
Hadoop是一個由Apache開發(fā)的分布式計(jì)算框架,其架構(gòu)包含以下幾個組件:
HDFS(Hadoop Distributed File System):Hadoop分布式文件系統(tǒng),用于存儲和管理大規(guī)模數(shù)據(jù)。HDFS將文件分割成多個塊并存儲在多個節(jié)點(diǎn)上,實(shí)現(xiàn)數(shù)據(jù)的可靠存儲和高可用性。YARN(Yet Another Resource Negotiator):Hadoop資源管理器,用于分配和管理集群中的計(jì)算資源,包括內(nèi)存、CPU等。MapReduce:分布式計(jì)算框架,用于實(shí)現(xiàn)分布式計(jì)算任務(wù)。MapReduce將大規(guī)模數(shù)據(jù)分割成多個小數(shù)據(jù)塊,然后將這些小數(shù)據(jù)塊分配給不同的節(jié)點(diǎn)進(jìn)行處理,最后將結(jié)果合并。Hadoop Common:提供各個Hadoop組件所需的基礎(chǔ)庫和工具。
三個節(jié)點(diǎn)
在Hadoop分布式文件系統(tǒng)(HDFS)中,NN、DN和2NN的作用分別如下:
NameNode(NN):是HDFS的主服務(wù)器,負(fù)責(zé)管理文件系統(tǒng)的命名空間、文件的目錄樹和文件的訪問權(quán)限等。同時也記錄著每個文件塊的副本位置信息,以及塊所屬的DataNode的信息等。當(dāng)客戶端請求讀取或?qū)懭胛募r,它將與NameNode通信以獲取所需的信息,NameNode返回對應(yīng)的DataNode位置信息給客戶端。同時,它也定期地向所有DataNode發(fā)送心跳信號以檢查數(shù)據(jù)塊的可靠性。DataNode(DN):是HDFS的工作節(jié)點(diǎn),存儲文件數(shù)據(jù)塊以及它們的副本,并向NameNode匯報這些信息。同時,它也負(fù)責(zé)接收來自客戶端和其他DataNode的寫入請求,以及向其他DataNode傳輸數(shù)據(jù)塊。DataNode定期向NameNode發(fā)送心跳信號,告知自身的存儲容量和數(shù)據(jù)塊的狀態(tài)。Secondary NameNode(2NN):它的作用是幫助NN進(jìn)行checkpoint操作,即定期將NN的元數(shù)據(jù)信息寫入磁盤并保存一份最新的文件系統(tǒng)狀態(tài),以避免NN的元數(shù)據(jù)信息過于龐大而導(dǎo)致的性能問題。在Hadoop 2.x及以上版本中,2NN已經(jīng)不再承擔(dān)checkpoint操作,而是由NameNode自身執(zhí)行。
總之,NN、DN和2NN是Hadoop集群中非常重要的組件,它們共同協(xié)作,保證了HDFS的高可用性和可靠性。
HDFS 基本配置參數(shù)
在Hadoop集群中,HDFS的配置參數(shù)對于數(shù)據(jù)的性能和可靠性具有重要影響。以下是HDFS的幾個基本配置參數(shù):
dfs.replication:表示數(shù)據(jù)塊的副本數(shù)。默認(rèn)值為3,建議根據(jù)集群規(guī)模和數(shù)據(jù)的重要性進(jìn)行調(diào)整。增加副本數(shù)可以提高數(shù)據(jù)的可靠性,但會占用更多的存儲空間和網(wǎng)絡(luò)帶寬。dfs.blocksize:表示HDFS中數(shù)據(jù)塊的大小,默認(rèn)為128MB??梢愿鶕?jù)文件大小、I/O并發(fā)性等因素進(jìn)行調(diào)整,一般建議為128MB~256MB。dfs.namenode.name.dir:表示NameNode的數(shù)據(jù)存儲目錄,默認(rèn)為${hadoop.tmp.dir}/dfs/name。建議將該目錄設(shè)置為多個磁盤或磁盤陣列,以提高可靠性和性能。dfs.datanode.data.dir:表示DataNode的數(shù)據(jù)存儲目錄,默認(rèn)為${hadoop.tmp.dir}/dfs/data。建議將該目錄設(shè)置為多個磁盤或磁盤陣列,以提高性能和可靠性。dfs.permissions.enabled:表示是否啟用HDFS的權(quán)限控制,默認(rèn)為true??梢愿鶕?jù)實(shí)際需求進(jìn)行調(diào)整。
這些配置參數(shù)可以通過修改Hadoop的配置文件(如hdfs-site.xml)來進(jìn)行修改。
hbase
數(shù)據(jù)模型
數(shù)據(jù)模型:HBase采用的是列族(Column Family)的數(shù)據(jù)模型,它類似于關(guān)系型數(shù)據(jù)庫的表格模型,但是一個列族可以包含多個列,每個列可以在不同的行中存儲不同的值。數(shù)據(jù)按照行鍵(Row Key)排序存儲,每個行鍵可以對應(yīng)多個列族和列,但是只能有一個版本號。在HBase中,每個表格都由一個或多個列族組成,而每個列族可以包含任意數(shù)量的列,每個列可以存儲一個或多個值。HBase的數(shù)據(jù)模型是靈活的,支持動態(tài)列族的創(chuàng)建和刪除,因此可以方便地存儲半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。
拓?fù)浣Y(jié)構(gòu)
拓?fù)浣Y(jié)構(gòu):HBase采用的是Master-Slave結(jié)構(gòu),其中Master節(jié)點(diǎn)負(fù)責(zé)管理集群中的各個RegionServer,包括Region的劃分、負(fù)載均衡、故障轉(zhuǎn)移等工作。RegionServer是HBase中的工作節(jié)點(diǎn),負(fù)責(zé)存儲和管理一組Region,每個Region負(fù)責(zé)管理表格中的一部分?jǐn)?shù)據(jù)。一個RegionServer可以管理多個Region,而一個Region可以存儲多個行鍵的數(shù)據(jù)。HBase采用了ZooKeeper來維護(hù)集群的狀態(tài)信息和配置信息,包括Master的選舉、RegionServer的注冊、故障檢測等工作。
META表 尋址
META表尋址:在HBase中,META表存儲了所有表格的元數(shù)據(jù)信息,包括表格名稱、列族名稱、行鍵范圍等,通過META表可以快速定位到指定行鍵所在的RegionServer。當(dāng)客戶端需要查詢或?qū)懭胍粭l數(shù)據(jù)時,它首先會向ZooKeeper請求獲取META表的位置,然后根據(jù)行鍵范圍查詢META表中對應(yīng)的RegionServer,最后通過RPC協(xié)議與RegionServer通信完成數(shù)據(jù)操作。
數(shù)據(jù)讀寫機(jī)制
數(shù)據(jù)讀寫機(jī)制:HBase采用了基于LSM樹(Log-Structured Merge Tree)的數(shù)據(jù)存儲和讀寫機(jī)制,即將數(shù)據(jù)寫入MemStore內(nèi)存緩存,當(dāng)緩存達(dá)到一定大小時,將數(shù)據(jù)寫入HDFS的HFile文件中,然后進(jìn)行數(shù)據(jù)合并和壓縮,生成新的HFile文件,并刪除舊的HFile文件,最終形成一個包含多個HFile文件的Store文件夾。當(dāng)需要查詢一條數(shù)據(jù)時,先從MemStore中查找,如果找不到,則從HFile文件中查找,如果存在多個版本,則取最新的版本。
分區(qū)方式
分區(qū)方式:在HBase中,數(shù)據(jù)按照行鍵進(jìn)行范圍劃分,每個Region負(fù)責(zé)管理一個或多個連續(xù)的行鍵范圍,Region的大小可以通過表格的預(yù)分區(qū)數(shù)或自動分區(qū)機(jī)制進(jìn)行控制。預(yù)分區(qū)數(shù)是指在創(chuàng)建表格時指定的Region數(shù),可以根據(jù)數(shù)據(jù)大小和查詢負(fù)載進(jìn)行調(diào)整。自動分區(qū)機(jī)制是指在寫入數(shù)據(jù)時,如果一個Region的大小超過了指定閾值,就會自動將其拆分為兩個Region,以保持Region的大小均衡和數(shù)據(jù)的負(fù)載均衡。
數(shù)據(jù)表基本設(shè)計(jì)原則(常見原則2個)
行鍵設(shè)計(jì)原則:行鍵應(yīng)該盡量短小、有意義、易于分片和查詢,避免使用隨機(jī)數(shù)和復(fù)雜結(jié)構(gòu),如時間戳、哈希值等。列族設(shè)計(jì)原則:列族應(yīng)該按照業(yè)務(wù)和查詢需求進(jìn)行劃分和命名,避免列族數(shù)量過多或命名不規(guī)范的情況,同時可以根據(jù)需要進(jìn)行動態(tài)創(chuàng)建和刪除。
Cassdndra
三個特點(diǎn)
基于列的存儲結(jié)構(gòu):Cassandra的數(shù)據(jù)模型采用了列式存儲結(jié)構(gòu),數(shù)據(jù)按列族存儲在表中,列族可以動態(tài)創(chuàng)建和刪除,并且支持列級別的索引和查詢。高可用和容錯性:Cassandra采用了分布式的架構(gòu)和數(shù)據(jù)復(fù)制機(jī)制,數(shù)據(jù)被自動復(fù)制到多個節(jié)點(diǎn)上,保證數(shù)據(jù)的高可用性和容錯性。線性可擴(kuò)展性:Cassandra的節(jié)點(diǎn)可以隨時增加和刪除,支持線性的水平擴(kuò)展,以滿足不斷增長的數(shù)據(jù)需求。
Dynamo數(shù)據(jù)一致性原理
Dynamo數(shù)據(jù)一致性原理:Cassandra的設(shè)計(jì)靈感來自Amazon的Dynamo系統(tǒng),它采用了Dynamo的數(shù)據(jù)一致性原理,即最終一致性。最終一致性是指在數(shù)據(jù)寫入后,不保證立即在所有節(jié)點(diǎn)上同步,但最終所有節(jié)點(diǎn)的數(shù)據(jù)會達(dá)到一致狀態(tài)。Cassandra通過復(fù)制機(jī)制和數(shù)據(jù)版本控制來實(shí)現(xiàn)最終一致性。
矢量時鐘的設(shè)計(jì)目的
矢量時鐘的設(shè)計(jì)目的:矢量時鐘(Vector Clock)是Cassandra用來維護(hù)數(shù)據(jù)版本的機(jī)制,它是一個由節(jié)點(diǎn)ID和時間戳組成的向量,每次數(shù)據(jù)更新時都會增加對應(yīng)節(jié)點(diǎn)的時間戳,用于判斷不同節(jié)點(diǎn)的數(shù)據(jù)版本是否一致。矢量時鐘的設(shè)計(jì)目的是解決分布式系統(tǒng)中的數(shù)據(jù)一致性問題,因?yàn)樵诜植际较到y(tǒng)中,不同節(jié)點(diǎn)的時間戳可能不一致,所以不能單純依靠時間戳來判斷數(shù)據(jù)版本。
閑話(Gossip)
閑話(Gossip):Cassandra使用Gossip協(xié)議來實(shí)現(xiàn)節(jié)點(diǎn)間的信息交換和狀態(tài)同步。Gossip協(xié)議是一種去中心化、基于事件驅(qū)動的協(xié)議,節(jié)點(diǎn)之間定期向周圍節(jié)點(diǎn)發(fā)送消息,用于廣播自身狀態(tài)和接收其他節(jié)點(diǎn)的狀態(tài),通過交換狀態(tài)信息來實(shí)現(xiàn)節(jié)點(diǎn)狀態(tài)的同步。Cassandra使用Gossip協(xié)議來實(shí)現(xiàn)節(jié)點(diǎn)的發(fā)現(xiàn)、拓?fù)浣Y(jié)構(gòu)的維護(hù)和數(shù)據(jù)復(fù)制機(jī)制的實(shí)現(xiàn)。
CQL的數(shù)據(jù)類型
原生類型
ASCII:一個ASCII字符組成的字符串。Bigint:64位有符號整數(shù)。Blob:二進(jìn)制數(shù)據(jù),最大長度為2GB。Boolean:布爾類型,true或false。Counter:計(jì)數(shù)器類型,支持自增和自減操作。Date:日期類型,支持日期相關(guān)的操作。Decimal:高精度的十進(jìn)制類型。Double:雙精度浮點(diǎn)類型。Float:單精度浮點(diǎn)類型。Int:32位有符號整數(shù)。Text:一個UTF-8字符組成的字符串。Time:時間類型,支持時間相關(guān)的操作。Timestamp:時間戳類型,表示從1970年1月1日至今的毫秒數(shù)。UUID:通用唯一標(biāo)識符類型。Varchar:一個可變長度的字符串類型。Varint:任意大小的整數(shù)類型。
集合類型
List:有序列表,可以包含任何數(shù)據(jù)類型。Set:無序集合,可以包含任何數(shù)據(jù)類型。Map:鍵值對,可以包含任何數(shù)據(jù)類型。
用戶自定義類型
可以定義自己的數(shù)據(jù)類型,并將其作為表的一部分使用。自定義類型可以包含原生類型、集合類型和其他自定義類型。
mongoDB
概述
MongoDB以BSON(二進(jìn)制JSON)格式存儲數(shù)據(jù),具有高性能、易擴(kuò)展、高可用性等特點(diǎn)。它支持動態(tài)查詢、索引、負(fù)載均衡、分片和事務(wù)等功能。
配置文件重要參數(shù)
MongoDB的配置文件中包含了一些重要的參數(shù),如:
bindIp:MongoDB綁定的IP地址。port:MongoDB的端口號。dbpath:MongoDB存儲數(shù)據(jù)的路徑。logpath:MongoDB日志文件的路徑。replSetName:MongoDB副本集的名稱。shardName:MongoDB分片集的名稱。maxConns:MongoDB最大連接數(shù)。
管道和聚合
MongoDB的管道(pipeline)是一種數(shù)據(jù)聚合方法,它通過一系列的操作將多個文檔組合成一個結(jié)果集。管道操作可以用于聚合數(shù)據(jù)、篩選數(shù)據(jù)、排序數(shù)據(jù)、轉(zhuǎn)換數(shù)據(jù)等多種場景。
MongoDB提供了豐富的管道操作符,如
m
a
t
c
h
、
match、
match、group、
s
o
r
t
、
sort、
sort、project、
l
i
m
i
t
、
limit、
limit、skip等,它們可以用于構(gòu)建復(fù)雜的聚合操作。
索引操作(索引類型)
MongoDB是一個基于文檔的分布式數(shù)據(jù)庫管理系統(tǒng),以下是其相關(guān)內(nèi)容:
概述
MongoDB以BSON(二進(jìn)制JSON)格式存儲數(shù)據(jù),具有高性能、易擴(kuò)展、高可用性等特點(diǎn)。它支持動態(tài)查詢、索引、負(fù)載均衡、分片和事務(wù)等功能。
配置文件重要參數(shù)
MongoDB的配置文件中包含了一些重要的參數(shù),如:
bindIp:MongoDB綁定的IP地址。port:MongoDB的端口號。dbpath:MongoDB存儲數(shù)據(jù)的路徑。logpath:MongoDB日志文件的路徑。replSetName:MongoDB副本集的名稱。shardName:MongoDB分片集的名稱。maxConns:MongoDB最大連接數(shù)。
管道和聚合
MongoDB的管道(pipeline)是一種數(shù)據(jù)聚合方法,它通過一系列的操作將多個文檔組合成一個結(jié)果集。管道操作可以用于聚合數(shù)據(jù)、篩選數(shù)據(jù)、排序數(shù)據(jù)、轉(zhuǎn)換數(shù)據(jù)等多種場景。
MongoDB提供了豐富的管道操作符,如
m
a
t
c
h
、
match、
match、group、
s
o
r
t
、
sort、
sort、project、
l
i
m
i
t
、
limit、
limit、skip等,它們可以用于構(gòu)建復(fù)雜的聚合操作。
索引操作(索引類型)
MongoDB支持多種類型的索引,包括:
單字段索引:對單個字段進(jìn)行索引。復(fù)合索引:對多個字段進(jìn)行聯(lián)合索引。文本索引:對文本進(jìn)行全文索引。地理位置索引:對地理位置信息進(jìn)行索引。散列索引:對數(shù)據(jù)進(jìn)行散列,并對散列結(jié)果進(jìn)行索引。
MongoDB的索引操作可以使用createIndex、ensureIndex、dropIndex等命令進(jìn)行管理。
部署分片集
MongoDB支持分片(sharding)技術(shù),可以將數(shù)據(jù)劃分為多個分片(shard)存儲在不同的服務(wù)器上。要部署MongoDB分片集,需要進(jìn)行以下步驟:
部署config服務(wù)器:config服務(wù)器用于存儲集群的配置信息。部署mongos路由:mongos路由用于將請求路由到正確的分片上。部署多個shard服務(wù)器:每個shard服務(wù)器存儲部分?jǐn)?shù)據(jù)。
在分片集群中,可以使用sh.shardCollection命令將數(shù)據(jù)分片存儲,也可以使用mongos提供的自動分片功能。
柚子快報激活碼778899分享:NoSQL數(shù)據(jù)庫
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。