NoSQL復習題


第一章————————————————————

1.網絡存儲方式不包括()。A.DAS  B.NAS  C.ANS  D.SAN

DAS:直連式存儲

NAS:網絡接入式存儲

SAN:存儲區域網絡

2.大數據的特征不包括()。A.大量化  B.價值化  C.整體化   D.快速化

3.大數據的特征不包括()。A.Volumn  B.Vague   C.Variety  D.Velocity

4.對比關系型數據庫,關於NoSQL說法錯誤的是()。A.采用非關系的數據模型  B.弱化模式或表結構、弱化完整性約束、弱化甚至取消事務機制  C.無法支持,或不能完整的支持SQL語句  D.不能實現強大的分布式部署能力

5.下面不屬於NoSQL數據庫的特點的是()。A.開源  B.支持SQL   C.分布式  D.非關系型

6.下面()不屬於關系型數據庫的特點。A.實體和實體間的聯系都可以通過關系的方式來表示  B.關系模型需要滿足實體完整性和參照完整性約束  C.可以通過SQL語句實現數據定義和操作  D.不支持事務和ACID一致性等特性 

7.下面不屬於數據操作語言的是()。A.定義  B.增加  C.查詢  D.刪除

 

大數據的特征:

○大容量(Volume)

○多樣化(Variety)

○有價值(Value)

○高速率(Velocity)

關系型數據庫和NoSQL在設計上的區別:

    關系型數據庫:

高效的存儲數據

支持多用戶對數據的並發控制

NoSQL:

用來應對數據的爆發式增長,實現橫向擴展

    https://www.cnblogs.com/sunzhiqi/p/10869655.html

NoSQL數據庫的技術特點:
    1.非關系型的存儲模式。

    2.習慣的統稱,並非嚴謹的定義。

    3.和關系型數據管理系統有不同的側重點。

    4.通過犧牲事務、一致性和SQL語句等重要機制,來換取更好的分布式部署特性。

NoSQL在大數據體系當中的作用:

○數據存儲工具

○數據管理工具

○數據查詢工具

○NoSQL一般不會提供實時數據采集功能(需要借助其他的工具寫入數據庫),也無法提供復雜的數據預處理、數據分析等功能,無法提供完整的數據可視化功能。

第二章————————————————————

1.NoSQL的主要存儲模式不包括()。A.鍵值對存儲模式  B.列存儲模式  C.文件存儲模式   D.圖存儲模式

2.BASE不包括()。A.基本可用  B.軟狀態  C.強一致性   D.最終一致性

3.CAP理論不包括()。A.Consistency(一致性)  B.Atomicity(原子性)  C.Availability(可用性)  D.Partition tolerance(分區容錯性)

4.()不屬於分布式數據管理的特點。A.數據分片  B.數據多副本  C.一次寫入多次讀取  D.讀寫分離 

    讀寫分離:1.其實就是將數據庫分為了主從庫,一個主庫用於寫數據,多個從庫完成讀數據的操作,主從庫之間通過某種機制進行數據的同步,是一種常見的數據庫架構。2.一個主從同步集群,通常被稱為是一個“分組”。

5.分布式部署關系型數據庫時,讀寫分離(主從集群)不包括()。A.所有對數據庫的修改都通過主服務器  B.從服務器分擔主服務器讀服務器請求  C.解決了寫數據的瓶頸   D.主從服務器之間可能存在暫時的數據不一致的情況

    讀寫分離是用來解決數據庫的讀性能瓶頸的。

6.預防死鎖的主要方法包括:一是(),即在設計階段規定所有的事務都按相同的順序來封鎖表;一是(),即當一個事物加鎖時間過長時就判斷出現死鎖。A.順序法 一次封鎖法  B.超時法 等待圖法  C.順序法 超時法   D.超時法 順序法

7.關系型數據庫事務機制中的ACID不包括()。A.連續性(Continuance)  B.隔離性(Isolation)  C.持久性(Durability)

    關系型數據庫事務機制中的ACID:

    事務在英文中是transaction,和現實世界中的交易很類似,它有如下四個特性:

1、A (Atomicity) 原子性 原子性很容易理解,也就是說事務里的所有操作要么全部做完,要么都不做,事務成功的條件是事務里的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。 比如銀行轉賬,從A賬戶轉100元至B賬戶,分為兩個步驟:1)從A賬戶取100元;2)存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。

2、C (Consistency) 一致性 一致性也比較容易理解,也就是說數據庫要一直處於一致的狀態,事務的運行不會改變數據庫原本的一致性約束。 例如現有完整性約束a存款+b存款=2000,如果一個事務改變了a存款,那么必須得改變b存款,使得事務結束后依然滿足a存款+b存款=2000,否則事務失敗。

3、I (Isolation) 隔離性 所謂的獨立性是指並發的事務之間不會互相影響,如果一個事務要訪問的數據正在被另外一個事務修改,只要另外一個事務未提交,它所訪問的數據就不受未提交事務的影響。 比如現在有個交易是從A賬戶轉100元至B賬戶,在這個交易還未完成的情況下,如果此時B查詢自己的賬戶,是看不到新增加的100元的。

即要達到這么一種效果:對於任意兩個並發的事務T1和T2,在事務T1看來,T2要么在T1開始之前就已經結束,要么在T1結束之后才開始,這樣每個事務都感覺不到有其他事務在並發地執行。(串行化)

4、D (Durability) 持久性 持久性是指一旦事務提交后,它所做的修改將會永久的保存在數據庫上,即使出現宕機也不會丟失。

8.下面關於NoSQL數據庫完整性約束不正確的是()。A.域完整性一般較弱,或不支持  B.不能存在主鍵相同的行,或內容相同但時間戳不同的行  C.一般不提供參照完整性,或者外鍵  D.用戶定義完整性靠應用程序支持

9.與關系模型相比,關於NoSQL不正確的是()。A.NoSQL中可能沒有明確的結構  B.列可能是復合型的  C.列中的內容和類型可能是隨意的、無定義的  D.會為空值留出存儲空間 

 

1.CAP理論中,NoSQL數據庫需要在C和P之間進行權衡。F

C:Consistency(強一致性)

A:Availability(可用性)

P:Partition tolerance(分區容錯性)

我們只能在一致性和可用性之間進行權衡

2.NoSQL數據庫能夠滿足CAP三個特性。F

3.一次寫入多次讀取不是分布式數據管理的特點。F

4.ACID是NoSQL數據庫的基本要求。F

5.NoSQL一般不提供參照完整性,或者外鍵,因此一般也不支持跨表的關聯查詢。T

6.NoSQL不會為空值留出存儲空間,可能很難直接插入數值。T

7.NoSQL由明確的表結構。F

 

 BASE原理:

基本可用(Basically Available):基本可用指分布式系統在出現故障時,系統允許損失部分可用性,即保證核心功能或者當前最重要功能可用。對於用戶來說,他們當前最關注的功能或者最常用的功能的可用性將會獲得保證,但是其他功能會被削弱。

軟狀態(Soft-state):軟狀態允許系統數據存在中間狀態,但不會影響系統的整體可用性,即允許不同節點的副本之間存在暫時的不一致情況。

最終一致性(Eventually Consistent):最終一致性要求系統中數據副本最終能夠一致,而不需要實時保證數據副本一致。例如,銀行系統中的非實時轉賬操作,允許 24 小時內用戶賬戶的狀態在轉賬前后是不一致的,但 24 小時后賬戶數據必須正確。

最終一致性是 BASE 原理的核心,也是 NoSQL 數據庫的主要特點,通過弱化一致性,提高系統的可伸縮性、可靠性和可用性。而且對於大多數 Web 應用,其實並不需要強一致性,因此犧牲一致性而換取高可用性,是多數分布式數據庫產品的方向。

 

一丶在數據一致性問題上,ACID和BASE差別是什么?分別適合哪種場景

ACID的一致性:強調(一個或多個)事務前后,數據的狀態(約束、完整性)都是有效的。

CAP的一致性:強調多個副本是狀態一致、同步更新的。

BASE的一致性:和ACID的相近,但是強調弱一致性。

二丶什么是CAP原理?CAP原理是否適用於單機環境?

C:Consistency(強一致性)

A:Availability(可用性)

P:Partition tolerance(分區容錯性)

CAP理論是指在分布式系統中,CAP三個特性不可兼得,只能同時滿足兩個。

不適用於單機環境

三布隆過濾器的優缺點是什么?如何降低布隆過濾器的誤報率?

空間占用低,檢索速度快,缺點是存在一定的誤報率,當布隆過濾器認為某元素存在於集合時,該元素可能不存在,當布隆過濾器認為該元素不存在與集合時,該元素一定不存在。

降低誤報率:

采取多個獨立的哈希算法同時進行映射

增大二進制向量的大小

 

第三章——————————————————————

 1.HDFS的角色不包括()A.Masternode  B.Namenode   C.Datanode  D.Secondary Namenode

 

2.Hadoop核心組件不包括()。A.HDFS  B.HBase   C.YARN  D.MapReduce

 

1.Hive不屬於NoSQL數據庫。T

 

2.HDFS在數據讀寫時,對客戶提供強一致性保障,在副本復制過程中采用最終一致性方式。T

 

3.HDFS Namenode的fsimage文件啟動加載后,一直保持只讀狀態,不能直接在內存或硬盤修改。T

 

4.HDFS的Namenode和DataNode不能在一個物理節點上。F

 

5.Hadoop核心組件包括Hbase。F

 

6.HDFS屬於NoSQL數據庫。F

 
HDFS是否屬於NoSQL數據庫?請分析一下HDFS作為數據庫的不足之處。
不屬於
1.不擅長低延時的數據訪問(hadoop針對數據吞吐量做了優化,犧牲了獲取數據的延遲)。 
2.不擅長大量小文件存儲(存儲大量的小文件,會占用namenode大量的內存來存儲文件、目錄和塊信息。)
3.不支持多用戶並發寫入一個文本(同一時間內,只能有一個用戶執行寫操作)。
4.不支持文件的隨機修改(多次寫入,一次讀取)僅支持數據末尾追加。
第四章——————————————————————
1.下面對HBase的描述不正確的是()?A是一種NoSQL數據庫   B.不是開源的   C.是分布式的  D.是面向列的
2.HBase虛擬分布式模式需要()個節點?A.最少3個  B.2   C.1   D.3
3.HBase分布式模式最好需要()個節點?A.最少3個  B.2  C.1   D.3 
4.HBase依靠()存儲底層數據。A.MapReduce  B.Memory   C.HDFS   D.Hadoop
5.HBase依賴()提供消息通信機制。A.Chubby  B.Socket   C.Zookeeper   D.RPC
6.HBase來源於哪篇文章?A.BigTable   B.BigTable   C.MapReduce  D.The Google File System
7.HBase的邏輯節點不包括()。A.Regionmaster  B.Master   C.NameNode  D.Zookeeper
Hbase采用主從式的拓撲結構,主要組件:一個主節點(稱為Master或Hmaster),若干從節點(稱為Regionserver或Hregionserver),Zookeeper分布式協調服務,均指進程。
可能會部署多個Master節點,只有一個為活躍(active),其他為待命(standby)。
1.Hbase可以實現事務、多表查詢等功能。 F
2.HBase創建表時,必須定義列族。F
 
 
一丶HBase的特點是什么?
○分布式、主從架構、底層基於HDFS、基於java語言開發
○可伸縮、高可靠性、易於使用
○基於鍵值對+基於列(族)的數據存儲模式
○可以基於shell進行操作
○原生的java語言調用接口,支持遠程調用
○支持通過thrift,實現跨語言、跨平台調用
二丶HBase采用了什么樣的數據結構 ?
LSM樹:將數據的修改增量保持在內存中,達到指定的大小限制后,這些修改操作批量寫入到磁盤中。
LSM樹的原理是把一棵大樹拆分成N棵小樹,它首先寫入內存中,隨着小樹越來越大,內存中的小樹會flush到磁盤中,磁盤中的樹定期做merge操作,合並成一顆大樹來優化讀的性能。
三丶HBase的拓撲結構是什么?每個角色起什么作用?
主從結構(主節點和從節點)
底層采用HDFS:
  可以服用節點共同部署HDFS和HBase
  但節點無必然對應關系,如:DataNode節點不一定是Hregionserver節
  可能會部署多個Master節點
Zookeeper功能:
  ○維護元數據的總入口,以及記錄Master節點的地址
  ○監控集群,如果Hregionserver出現故障,則通知Master,Master會將其負責的分區移交給其他的Hregionserver
  ○當活躍的Master節點故障時,Zookeeper會在備用的Master節點中選舉一個新的活躍的Master節點。
HMaster功能:
  ○HMaster節點是所有Hregionserver的管理者,負責對Hregionserver的管理范圍進行分配,但是不負責管理用戶的數據表。
Hregionserver功能:
  ○用戶表的實際管理者,在分布式集群中,數據表會進行水平分區,每個regionservers只會對一部分分區進行管理——負責數據的寫入、查詢、緩存、和故障恢復等。
 
 
 第五章————————————————————
1.HFile數據格式中的MetaIndex字段用於()。 A.Meta塊的起始點   B.Meta塊數據內容  C.Meta塊的結束點  D.Meta塊的長度
2.當用戶讀寫HBase數據庫時,會首先在()尋找表和行鍵對應的分區。A.Region   B.ZooKeeper   C.Master  D.RegionServer
當用戶進行讀寫數據時,會根據需要讀寫的表和行鍵,通過如下順序尋找該行鍵對應的分區:Zookeeper->META->Regionserver>Region
3.下面與Zookeeper類似的框架是?A.Kafka   B.Chubby   C.Java  D.Protobuf
Apache基金會基於Chubby協議創立了Zookeeper開源項目軟件。
4.HBase不包括如下()分區方式。A.自動分區  B.預分區  C.手動拆分   D.固定分區 
表(或分區)的水平拆分的機制,都是基於行鍵拆分的:自動分區、預分區、手動拆分
5.HFile數據格式中的Data字段用於()。A.存儲數據的起點  B.存儲數據塊的起點  C.指定字段的長度   D.存儲實際的KeyValue數據 
6.Rowkey設計的原則,下列哪些選項的描述是不正確的?() A.本身是無序的   B.可以使用漢字  C.可以使用字符串  D.盡量保證越短越好
 
一丶預寫日志(WAL)的作用
○當數據被寫入memstore之前,Regionserver會先將數據寫入預寫日志,預寫日志一般被寫入HDFS,但鍵值寫入時不會被排序,也不會區分region。
○出現節點宕機、線程重啟等問題時,memstore中未持久化的數據會丟失,當regionserver恢復后,會查看當前日志當中的數據,並將記錄進行重放,根據記錄的表名和分區明,將數據恢復到制定的store當中。
二丶如何理解HBase的合並和分區拆分機制,各包括那幾種方式。

○hbase為了防止小文件過多,以保證查詢效率,hbase需要在必要的時候將這些小的store file合並成相對較大的store file,這個過程就稱之為compaction。

在hbase中主要存在兩種類型的compaction合並:小合並和大合並

https://www.cnblogs.com/bigdatalaoliu/p/14053296.html

    ○表(或分區)的水平拆分的機制,都是基於行鍵拆分的:自動分區、預分區、手動拆分
第六章————————————————————————
1.下面不屬於CQL的集合類型的是()。A.Set   B.Tuple   C.List  D.Map
2.Cassandra的特點不包括()。A.節點對稱  B.支持異構設備   C.強調高一致性   D.去中心化
3.Dynamo中MerkleTree機制用於解決()問題。A.數據模型  B.數據一致性  C.拓撲分布   D.副本同步檢測機制 
4.Cassandra的Key Space類似關系數據庫中的()。A.列  B.行  C.表   D.庫
5.Cassandra采用()實現分布式環境的拓撲划分。A.CAP原理   B.一致性哈希算法  C.布隆過濾器  D.Paxos算法
6.Dynamo依靠()解決數據可能出現分本版本的問題。A.暗示移交  B.一致性哈希   C.矢量時鍾機制  D.負載均衡器
 
 
1.Cassandra可以通過用戶配置來調整可用性和一致性。 T
2.分簇鍵是Cassandra復合主鍵的一部分。 T
3.Cassandra不支持機架設置。 F
4.CQL創建表時,list、map和set類型的列如果是非frozen限定的(序列化),無法作為主鍵。 T
5.Cassandra的每個物理節點對應着環上的一個Token。 T
6.Cassandra不支持對數據表建立二級索引。 F
 
7.CAL利用WHERE子句可以在SELECT、UPDATE或DELETE語句中設置限定條件,但只針對主鍵。 T
 
一丶HBase和Cassandra在架構上有什么不同?各自架構有什么優缺點
Cassandra:
  ○采用了無中心的,對等的換型拓撲結構,不存在主節點單點失效問題。
  ○以主機為單位實現橫向擴展,擴展方式較為簡單,擴展對集群整體的影響較小。
  ○支持異構設備
Hbase:
  ○主從式結構
  ○具有良好的橫向擴展性
  ○實現嚴格的讀寫一致性和自動的故障轉移
二丶Cassandra表中的主鍵分為哪幾種類型?如何區分它們?
主鍵
復合主鍵
三丶Cassandra如何支持數據一致性?
采用環形結構
用矢量時鍾來解決數據可能出現的分支版本問題
Merkle Tree來解決副本之間的不一致性
Gossip協議來處理故障節點和新節點
 
 
 
第七章——————————————————————
1.MongoDB采用()進行數據存儲與編碼傳輸。A.YAML  B.XML   C.BSON  D.JSON
 
2.以下哪個不是MongoDB數據庫的索引類型?A.全文索引   B.時間索引  C.單鍵索引  D.地理位置索引
 
3.以下哪個不是MongoDB數據庫在分片時需要的節點?A.Config Server  B.Mongos  C.Shard   D.Config Router
 
4.CouchDB與MongoDB比較,不正確的是()。
A.CouchDB支持多主節點間的數據復制,而MongoDB只支持主從復制
B.CouchDB采用通用JSON格式存儲和傳輸數據
C.CouchDB支持動態查詢,MongoDB不支持動態查詢
D.CouchDB更多地采用通用技術,並考慮和ASF其他模塊的配合
 
5.MongoDB的分片切分機制不包括()。A.哈希分片  B.升序分片  C.位置分片   D.隨機分片
 
6.MongoDB數據庫中基本單元為?A.字段   B.文檔  C.表格  D.集合
 
 
1.MongoDB的主節點選舉算法是Paxos算法。 F
 
2.MongoDB中的一組文檔稱為“集合”,可以類比為傳統數據庫中的“數據庫”。 F
 
3.MongoDB支持復雜的數據結構,支持索引(包括二級索引和地理空間索引),支持聚合查詢。 T
 
4.MongoDB的集合是動態模式的,同一個集合里面的文檔可以是各式各樣的。 T
 
5.BSON比JSON相比,檢索速度更快,更節省空間。 F
 
6.MongoDB采用副本集提供數據庫的擴縮容能力。 F
 
 
 
一丶簡述MongDB的特點。
○易用、分布式架構、易擴展、支持多副本
○支持復雜的數據結構,支持索引(包括二級索引和地理空間索引)、支持聚合查詢,以及支持對大文件的存儲和管理等。
二丶簡述MongDB的集群架構(包含的角色和每個角色的作用)。
○Mongod(Shard):負責存儲實際數據分片的設備。
○Mongs服務器:作為用戶訪問集群的入口,負責與客戶端進行交互,並在內存中緩存分片數據的存儲和路由信息。
○config服務器:負責持久化存儲各類元數據和配置信息,當Mongs服務器啟動時,會通過Config服務器讀取相關信息並緩存到內存。
三丶MongDB集群的數據多副本策略和Cassandra集群有什么不同?
○MongDB(復制集機制):支持(分片的)多副本,以主從備份的形式實現,CAP中的CA由用戶權衡。
○Cassandra:支持數據多副本機制,強調弱一致性和高可用性。,CAP中AP由用戶的策略調整。
四丶MongDB和CouchDB有什么相同點和不同點?
同為文檔型數據庫,二者宏觀設計較為相似。
MongDB CouchDB
○采用C++編寫 ○采用Erlang語言編寫(最初也是C++)
○自定義了更高效的,基於TCP|IP的二進制格式協議 ○更多地采用通用技術,並考慮和ASF其他模塊的配合(在網絡傳輸上,采用了通用的HTTP/REST接口)
○支持動態查詢,查詢時不需要先建立索引 ○不支持動態查詢,必須先為查詢模式建立視圖
○MongDB只支持主從復制,其一致性更容易維護 ○支持多主節點間的數據復制(理論上都支持寫入操作),並且支持類似Dynamo的MVCC多版本一致性協調機制  
 
 
 
 
 
 
 
 
 
 
第八章——————————————————————
1.Neo4j采用()查詢語言。A.Neo4j Query Language  B.Structured Query Language  C.Cassandra Query Language   D.Cypher Query Language
 
2.Neo4j中CQL語法不支持的有()A.Match  B.Delete  C.Create   D.Update
 
3.()數據庫不是基於Java實現的。A.Neo4j   B.MongoDB  C.Cassandra  D.Hbase
 
4.Redis采用的是()模式。A.列存儲  B.圖存儲   C.鍵值對存儲  D.文檔存儲
 
5.Neo4j中,下面()語句可以刪除所有的節點和關系。
A.MATCH (n) MATCH (n)-[r]-(m) DELETE n, r,m
B.MATCH (n) MATCH (n)-[r]-() DELETE n, r
C.MATCH (n) OPTIONAL MATCH (n)-[r]-(m) DELETE n, r,m
D.MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n, r 
 
6.關於Neo4j中節點(Nodes),關系(Relations),屬性(Properties),標簽(Labels)說法不正確的有()
A.關系連接實體對象(Entity),關系沒有方向性
B.標簽(Labels)是對實體對象(Entity)做的說明
C.屬性(Properties)表示的是實體對象(Entity)中的屬性
D.節點代表最終的實體對象
 
7.Neo4j采用的是()模式。A.文檔存儲   B.圖存儲  C.列存儲  D.鍵值對存儲
 
8.下列哪些場景不適合使用Neo4j.() A.數據檢索  B.關系中的路徑查找  C.電商里的物品推薦  D.強相關的社交網絡
 
 
1.Neo4j中CQL語法中 Set的作用是可以更新實體對象(Entity)的屬性,也可以新加實體對象(Entity)的屬性。   T
 
2.Neo4j不支持分布式。   F
 
3.搜索引擎系統常和其他NoSQL數據庫或分布式文件系統配合使用。   T
 
4.Neo4j中CQL語法不支持limit。   F
 
 
一丶描述圖數據庫的數據模型,並舉例說明。

圖數據庫是專門描述節點與關系,關系更明確也更自由,不存在外鍵等約束條件

舉例:Neo4j

二丶Redis數據庫的拓撲架構和多副本策略。

Redis本質為環形結構的分布式集群部署。支持單機部署和分布式部署,在集群環境支持水平分片機制。使用類似於dynamo的環形架構(課本231圖片),沒有使用一致性哈希機制,引入了哈希槽的概念。

數據多副本方面:支持主從復制機制,和MongoDB相似,一個主節點可以對應多個從節點,當主節點發生故障時,可以從多個從節點中選舉一個新的主節點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM