NOSQL期末

发布于 2025年6月10日 05:27:21 (武汉时间)

第1章 NoSQL数据库绪论

一、单选题

  1. 下列关于关系型数据库管理系统的描述中,哪一项是正确的(B)?
    A) 关系型数据库不支持事务处理
    B) 关系型数据库采用二维表结构存储数据
    C) 关系型数据库无法进行分布式部署
    D) 关系型数据库不需要遵循ACID特性

  2. NoSQL数据库的核心特征是(C)?
    A) 强一致性
    B) 严格遵循关系模型
    C) 弱化事务机制
    D) 依赖完整性约束

  3. 下列选项中,属于大数据4V特征的是(B)?
    A) 高安全性
    B) 大容量(Volume)
    C) 高一致性
    D) 高成本

  4. 云计算的三种服务模式是(A)?
    A) IaaS, PaaS, SaaS
    B) DAS, NAS, SAN
    C) SQL, NoSQL, NewSQL
    D) 容器化, 微服务, 虚拟化

  5. NoSQL数据库主要应用于哪些领域?
    正确答案:(B
    A) 仅限于互联网行业
    B) 互联网、电商、金融、医疗等多个行业
    C) 只能用于金融行业
    D) 以上都不对

  6. 关系型数据库的事务特性ACID中的C代表什么?
    正确答案:(B
    A) 可用性
    B) 一致性
    C) 隔离性
    D) 持久性

  7. 下列哪个选项不是大数据的4V特征之一?
    正确答案:(D
    A) 大容量(Volume)
    B) 多样化(Variety)
    C) 高速度(Velocity)
    D) 高精度(Precision)

  8. 下列哪项是NoSQL数据库的特点?
    正确答案:(B
    A) 强调事务处理能力
    B) 弱化模式或表结构
    C) 不支持分布式部署
    D) 仅支持结构化数据

  9. 云计算的基本特征不包括以下哪一项?
    正确答案:(C
    A) 按需自助服务
    B) 广泛的网络访问
    C) 固定的资源配置
    D) 快速和弹性

  10. 在推荐系统及用户画像等日志分析应用场景下,通常不需要严格的______。
    正确答案:(B
    A) 数据加密
    B) 事务特性和一致性保障
    C) 数据存储能力
    D) 数据查询效率

  11. 下列哪项不属于云计算的服务模式?
    正确答案:(D
    A) IaaS(基础设施即服务)
    B) PaaS(平台即服务)
    C) SaaS(软件即服务)
    D) HaaS(硬件即服务)

  12. 下列哪种类型的NoSQL数据库最适合用于物联网设备产生的时序性数据存储?
    正确答案:(C
    A) 文档数据库
    B) 键值对数据库
    C) 时间序列数据库
    D) 图形数据库

  13. 关于大数据场景下的数据采集方式,以下哪种描述正确?
    正确答案:(C
    A) 在线采集不能实时获取数据
    B) 离线采集更适合进行实时数据分析
    C) 在线采集可以实时获取并处理数据
    D) 离线采集无法定期上传数据

  14. NoSQL数据库与传统关系型数据库相比,在以下哪个方面可能表现得更为出色?
    正确答案:(B
    A) 支持复杂的SQL查询
    B) 对非结构化数据的支持
    C) 更强的数据一致性和事务支持
    D) 更高的维护成本

二、多选题

  1. 关系型数据库的瓶颈包括(ABC)?
    A) 难以横向扩展
    B) 强一致性导致性能下降
    C) 无法处理非结构化数据
    D) 支持高并发读写

  2. NoSQL数据库的典型应用场景包括(ABC)?
    A) 存储非结构化数据
    B) 高吞吐量缓存
    C) 时序数据管理
    D) 严格事务处理

  3. 大数据采集的方式包括(AB)?
    A) 在线采集
    B) 离线采集
    C) 数据加密
    D) 数据压缩

  4. 云计算的部署模式包括(ABCD)?
    A) 私有云
    B) 社区云
    C) 公有云
    D) 混合云

三、填空题

  1. 云计算的服务模式包括IaaS、PaaS和(SaaS)。
  2. NoSQL数据库的四大分类是键值存储、文档存储、列存储和(图数据库)。
  3. 大数据的4V特征包括大容量(Volume)、多样化(Variety)、有价值(Value)和(高速率(Velocity))。
  4. 容器化技术通过(容器镜像)实现轻量级虚拟化。

四、判断题(正确打√,错误打×)

  1. 关系型数据库可以轻松应对海量数据的横向扩展需求。(×
  2. NoSQL数据库完全取代了关系型数据库。(×
  3. 大数据的采集需要考虑数据隐私和安全问题。(
  4. 容器化技术比虚拟机技术更节省资源。(

五、简答题

  1. 答题思路:关系型数据库在海量数据场景下,纵向扩展成本高,横向扩展难以解决分布式一致性、分区容错性等问题,且事务机制和完整性约束导致性能下降。
  2. 答题思路:CAP定理指出一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)不可兼得。NoSQL通常优先保证AP或CP,根据业务需求权衡。
  3. 答题思路:大数据场景中,NoSQL的分布式特性、灵活数据模型和高吞吐能力更适合处理非结构化数据、高并发访问和弹性扩展需求。
  4. 答题思路:云计算提供按需资源分配和自动化运维能力,降低了NoSQL的部署复杂性,提升了可靠性和扩展性。

六、综合题

  1. 答题思路:NoSQL诞生于互联网业务对传统数据库的性能和扩展性需求。其发展过程包括:从开源社区起步,逐步完善分布式架构,结合NewSQL融合ACID特性,最终成为大数据时代的重要数据管理工具。
  2. 答题思路:物联网系统可采用时间序列数据库(如InfluxDB)存储传感器数据,用Redis缓存实时状态,通过Kubernetes容器化部署,结合云平台实现弹性扩展。
  3. 答题思路:利用Docker打包NoSQL组件,通过Kubernetes实现自动扩缩容、故障恢复和负载均衡,结合云平台的监控和日志服务优化运维效率。
  4. 答题思路:电商大数据流程包括:通过日志采集用户行为数据(如Apache Flume),用HBase存储商品信息,用Elasticsearch支持搜索,用Spark进行实时分析。NoSQL在存储和查询环节提供高效支持。

第2章 NoSQL数据库的基本原理

一、单选题

  1. 下列关于关系型数据库与非关系型数据库的描述中,哪一项是正确的(D)?
    A) 关系型数据库不支持分布式部署且无需牺牲一致性
    B) 非关系型数据库严格遵循ACID特性
    C) 关系型数据库采用键值对存储模型
    D) 非关系型数据库通常不支持固定表结构

  2. 关系模型中,实体标识符的作用是(B)?
    A) 描述实体的属性
    B) 唯一标识一个实体
    C) 定义实体之间的联系
    D) 确定实体的分类

  3. CAP理论中,以下哪一项描述是错误的(D)?
    A) 分区容错性(Partition Tolerance)要求系统在部分节点故障时仍可用
    B) 可用性(Availability)要求系统始终响应请求
    C) 一致性(Consistency)要求所有节点数据相同
    D) CAP理论要求分布式系统必须同时满足C、A、P

  4. 下列关于键值对存储模式的描述中,哪一项是正确的(C)?
    A) 键值对存储模式需要定义固定的列名和值域
    B) 键值对存储模式支持复杂的关联查询
    C) 键值对存储模式通常基于哈希分片
    D) 键值对存储模式的值可以是任意结构化数据

  5. CAP理论中的C代表什么?
    正确答案:(B
    A) 可用性
    B) 一致性
    C) 分区容忍性
    D) 基本可用性

  6. BASE理论中的S代表什么?
    正确答案:(B
    A) 强一致性
    B) 软状态
    C) 最终一致性
    D) 高可用性

  7. 下列哪个不是关系型数据库事务的隔离级别?
    正确答案:(D
    A) 最终一致性
    B) 可重复读
    C) 读已提交
    D) 读未提交

  8. 在两段锁协议中,扩展阶段指的是?
    正确答案:(C
    A) 数据删除阶段
    B) 数据插入阶段
    C) 获取锁的过程
    D) 数据更新阶段

  9. 下列哪种NoSQL数据库适合用于处理社交网络分析?
    正确答案:(C
    A) 列族数据库
    B) 文档数据库
    C) 图数据库
    D) 键值对数据库

  10. NoSQL数据库通常不支持以下哪种特性?
    正确答案:(B
    A) 快速检索和读写能力
    B) 支持复杂的SQL查询
    C) 弱化模式或表结构
    D) 分布式部署

  11. 下列哪个选项是NoSQL数据库的特点?
    正确答案:(B
    A) 强调事务处理能力
    B) 弱化完整性约束
    C) 不支持非结构化数据
    D) 需要预定义表结构

  12. 在CAP理论中,如果选择了强一致性和分区容忍性,则必须放弃什么?
    正确答案:(B
    A) 一致性
    B) 可用性
    C) 分区容忍性
    D) 最终一致性

  13. Paxos算法主要用于解决什么问题?
    正确答案:(B
    A) 数据备份
    B) 分布式共识
    C) 数据压缩
    D) 数据加密

  14. 下列哪种NoSQL数据库使用了键值对存储模式?
    正确答案:(A
    A) Redis
    B) Neo4j
    C) Cassandra
    D) MongoDB

  15. 在分布式系统中,当主节点出现故障时,常用的恢复方法是什么?
    正确答案:(C
    A) 主从复制
    B) 数据冗余
    C) 自动选举新的主节点
    D) 手动恢复

二、多选题

  1. 关系型数据库的完整性约束包括(ABCD)?
    A) 实体完整性
    B) 域完整性
    C) 参照完整性
    D) 用户定义完整性

  2. 分布式系统的一致性问题可能涉及以下哪些因素(ABD)?
    A) 网络延迟
    B) 节点故障
    C) 数据压缩
    D) 多副本同步

  3. NoSQL的常见存储模式包括(ABCD)?
    A) 键值对存储
    B) 文档式存储
    C) 列存储
    D) 图存储

  4. 布隆过滤器的特点包括(ACD)?
    A) 存储空间占用低
    B) 支持数据删除操作
    C) 存在一定的误报率
    D) 检索速度快

三、填空题

  1. CAP理论中的三个特性分别是(一致性)、(可用性)和(分区容错性)。
  2. 文档式存储模式中,数据通常以(JSON)格式描述。
  3. 分布式大数据处理的核心原则是(计算本地化)。
  4. Paxos算法主要用于解决(分布式共识)问题。

四、判断题(正确打√,错误打×)

  1. 关系型数据库的事务机制完全适用于分布式环境。(×
  2. 非关系型数据库支持强一致性。(×
  3. 布隆过滤器可以精确判断元素是否存在集合中。(×
  4. CAP理论要求分布式系统必须牺牲一致性以保证可用性。(×

五、简答题

  1. 答题思路:关系型数据库在分布式部署时,难以保证强一致性与高可用性,事务处理复杂且性能下降。
  2. 答题思路:CAP理论强调一致性、可用性、分区容错性的不可兼得,而BASE理论通过弱一致性(最终一致性)实现高可用性。
  3. 答题思路:文档式存储模式支持灵活的数据结构、嵌套查询,适合处理半结构化数据,且查询效率较高。
  4. 答题思路:Paxos算法用于分布式系统中达成共识,解决多节点间的数据一致性问题。

六、综合题

  1. 答题思路:关系型数据库适用于强一致性场景(如金融交易),而NoSQL适用于高可用性场景(如社交网络)。
  2. 答题思路:列存储模式适合OLAP场景,可结合Hadoop生态进行分布式处理,选择HBase或Cassandra作为底层存储。
  3. 答题思路:布隆过滤器可用于快速判断数据是否存在,减少不必要的磁盘或网络IO,提升查询性能。
  4. 答题思路:CAP理论在互联网应用中需根据业务需求权衡,例如电商系统优先保证可用性,容忍短暂不一致。

第3章 MongoDB原理和使用

一、单选题

  1. 下列关于MongoDB集合的描述中,哪一项是正确的(B)?
    A) 集合必须定义固定的字段结构
    B) 集合中的文档可以具有不同的字段结构
    C) 集合名称必须全大写
    D) 集合不支持嵌套文档

  2. MongoDB的默认端口号是(B)?
    A) 3306
    B) 27017
    C) 5432
    D) 8080

  3. 下列关于YAML格式的描述中,哪一项是错误的(B)?
    A) YAML对大小写敏感
    B) 使用制表符进行缩进
    C) 字符串可以不使用引号标注
    D) 相同层级的元素需要左对齐

  4. MongoDB中用于更新单个文档的方法是(B)?
    A) update
    B) updateOne
    C) updateMany
    D) replaceOne

  5. MongoDB中的基本元素包括哪些?
    正确答案:(B
    A) 数据库、表、记录
    B) 数据库、集合、文档
    C) 数据库、文件、记录
    D) 数据库、集合、行

  6. MongoDB采用哪种格式进行存储和编码传输?
    正确答案:(B
    A) JSON
    B) BSON
    C) XML
    D) YAML

  7. BSON的主要优势之一是什么?
    正确答案:(C
    A) 更高的压缩率
    B) 支持更多的数据类型
    C) 更快的解析速度
    D) 更小的文件大小

  8. 每个MongoDB文档必须拥有一个唯一的标识符,称为?
    正确答案:(B
    A) UUID
    B) ObjectID
    C) GUID
    D) ID

  9. 在BSON中,时间戳通常用什么表示?
    正确答案:(C
    A) Date
    B) Time
    C) Timestamp
    D) DateTime

  10. 以下哪个选项不是BSON支持的数据类型?
    正确答案:(D
    A) string
    B) boolean
    C) integer
    D) image

  11. 在MongoDB中,下列哪个字段用于唯一标识文档?
    正确答案:(A
    A) _id
    B) id
    C) unique_id
    D) key

  12. MongoDB的配置文件通常使用哪种格式?
    正确答案:(C
    A) JSON
    B) XML
    C) YAML
    D) CSV

  13. 以下哪项是YAML格式的基本规则之一?
    正确答案:(D
    A) YAML对大小写不敏感
    B) YAML使用制表符进行缩进
    C) YAML字符串需要用双引号包裹
    D) YAML通过缩进来表示层级关系

  14. 在YAML格式中,以下哪种方式正确表示一个包含多个元素的数组(列表)?
    正确答案:(A
    A)

items:
  - item1
  - item2
  - item3

B)

items:
  * item1
  * item2
  * item3

C)

items:
  -> item1
  -> item2
  -> item3

D)

items:
  item1,
  item2,
  item3
  1. 在MongoDB中,如何插入一个新的文档到集合中?
    正确答案:(A
    A) db.collection.insertOne()
    B) db.collection.add()
    C) db.collection.create()
    D) db.collection.put()

  2. 以下哪个选项是正确的插入多个文档的方法?
    正确答案:(A
    A) db.collection.insertMany([])
    B) db.collection.insertMultiple([])
    C) db.collection.bulkInsert([])
    D) db.collection.addMany([])

  3. 在插入文档时,如果未指定_id字段,MongoDB会自动添加一个什么类型的值?
    正确答案:(C
    A) String
    B) Integer
    C) ObjectID
    D) Date

  4. 以下哪个命令用于更新集合中的单个文档?
    正确答案:(B
    A) db.collection.update()
    B) db.collection.updateOne()
    C) db.collection.modifyOne()
    D) db.collection.editOne()

  5. 在更新操作中,以下哪个操作符用于设置字段的新值?
    正确答案:(A
    A) $set
    B) $add
    C) $update
    D) $modify

  6. 以下哪个选项可以用来更新多个匹配的文档?
    正确答案:(A
    A) db.collection.updateMany()
    B) db.collection.updateAll()
    C) db.collection.replaceMany()
    D) db.collection.modifyAll()

  7. 以下哪个命令用于查询集合中的所有文档?
    正确答案:(B
    A) db.collection.findAll()
    B) db.collection.find({})
    C) db.collection.getAll()
    D) db.collection.searchAll()

  8. 以下哪个操作符用于限制返回的文档数量?
    正确答案:(A
    A) $limit
    B) $count
    C) $size
    D) $range

  9. 以下哪个操作符用于排序返回的文档?
    正确答案:(B
    A) $order
    B) $sort
    C) $arrange
    D) $sequence

  10. 以下哪个命令用于替换集合中的一个文档?
    正确答案:(B
    A) db.collection.replace()
    B) db.collection.replaceOne()
    C) db.collection.swapOne()
    D) db.collection.exchangeOne()

  11. 在以下查询中,哪一个会返回所有 place.province 为 "Shandong" 且 place.city 为 "qingdao" 的文档?
    正确答案:(B
    A. db.fruitshop.find({"place":{"province":"Shandong","city":"qingdao"}})
    B. db.fruitshop.find({"place.province":"Shandong", "place.city":"qingdao"})
    C. db.fruitshop.find({"province":"Shandong", "city":"qingdao"})
    D. db.fruitshop.find({"place":{"city":"qingdao","province":"Shandong"}})

  12. 如何将 fruitshop 集合中第一个匹配到的 pricelist 数组中值为 1.8 的元素更新为 2.0?
    正确答案:(A
    A. db.fruitshop.updateOne({"pricelist": 1.8}, {$set: {"pricelist.$": 2.0}})
    B. db.fruitshop.updateMany({"pricelist": 1.8}, {$set: {"pricelist.$[]": 2.0}})
    C. db.fruitshop.updateOne({"pricelist": 1.8}, {$set: {"pricelist": 2.0}})
    D. db.fruitshop.updateMany({}, {$set: {"pricelist.$": 2.0}})

  13. 如何从 fruitshop 集合中删除所有 pricelist 数组中值大于 1.8 的条目?
    正确答案:(A
    A. db.fruitshop.updateMany({}, {$pull: {"pricelist": {$gt: 1.8}}})
    B. db.fruitshop.updateMany({}, {$pop: {"pricelist": {$gt: 1.8}}})
    C. db.fruitshop.updateMany({}, {$pull: {"pricelist": 1.8}})
    D. db.fruitshop.updateMany({}, {$unset: {"pricelist": {$gt: 1.8}}})

  14. 如何向 fruitshop 集合中 name 为 "apple" 的文档的 pricelist 数组末尾添加 [2, 3]?
    正确答案:(C
    A. db.fruitshop.updateOne({"name": "apple"}, {$push: {"pricelist": [2, 3]}})
    B. db.fruitshop.updateOne({"name": "apple"}, {$addToSet: {"pricelist": [2, 3]}})
    C. db.fruitshop.updateOne({"name": "apple"}, {$push: {"pricelist": {$each: [2, 3]}}})
    D. db.fruitshop.updateOne({"name": "apple"}, {$push: {"pricelist": 2, 3}})

  15. 为了提高对 place.province 字段的查询性能,应该使用哪种方式创建索引?
    正确答案:(B
    A. db.fruitshop.createIndex({"place": 1})
    B. db.fruitshop.createIndex({"place.province": 1})
    C. db.fruitshop.createIndex({"province": 1})
    D. db.fruitshop.createIndex({"place.city": 1})

  16. 使用MongoDB Compass连接到MongoDB服务实例时,以下哪种方式是正确的?
    正确答案:(B
    B) 可以连接到任何网络位置的MongoDB服务实例,包括MongoDB Atlas中的服务实例

  17. 在MongoDB Compass中,以下哪种方法可以用来导入数据?
    正确答案:(C
    C) 可以通过JSON或CSV格式导入

  18. 以下哪个代码片段是正确的用于同步方式连接MongoDB服务器?
    正确答案:(C
    C) client = MongoClient("mongodb://localhost:27017")

  19. 在MongoDB中,如何为location字段创建一个地理空间索引(2dsphere)?
    正确答案:(B
    B) db.places.createIndex({"location":"2dsphere"})

  20. 要将集合fruitshop中所有name为apple的文档的qty字段增加5,应该使用以下哪个命令?
    正确答案:(B
    B) db.fruitshop.updateMany({"name":"apple"}, {$inc: {"qty": 5}})

  21. GridFS文件系统主要用于:
    正确答案:(B
    B) 存储大于16MB的文件

  22. 如果需要查询pricelist数组中至少有一个元素大于1.8的文档,应使用以下哪个查询?
    正确答案:(B
    B) db.fruitshop.find({"pricelist": {$elemMatch: {$gt: 1.8}}})

  23. 要在MongoDB中对name和role字段进行全文检索,应使用以下哪个命令来创建全文索引?
    正确答案:(A
    A) db.avengers.createIndex({"name":"text", "role":"text"})

  24. 批量更新文档
    以下哪个命令能够批量更新集合中匹配条件的所有文档?
    正确答案:(C
    C) db.collection.updateMany({"field":"value"}, {$set: {"newField":"newValue"}})

  25. MongoDB的异步访问模式依赖于哪些库?
    正确答案:(B
    B) Asyncio 和 Motor

二、多选题

  1. MongoDB支持的索引类型包括(ABCD)?
    A) 单字段索引
    B) 复合索引
    C) 哈希索引
    D) 全文索引

  2. MongoDB聚合操作中的管道操作符包括(ABCD)?
    A) $group
    B) $match
    C) $sort
    D) $limit

  3. MongoDB中可以用于数组操作的操作符包括(ABCD)?
    A) $push
    B) $pull
    C) $each
    D) $slice

  4. MongoDB Compass客户端支持的功能包括(ABCD)?
    A) 数据导入
    B) 索引管理
    C) 聚合操作
    D) 数据导出

三、填空题

  1. MongoDB的默认数据存储路径是(/data/db)。
  2. BSON中用于表示日期时间的数据类型是(Date)。
  3. MongoDB中用于删除集合的命令是(db.collection.drop())。
  4. MongoDB聚合操作中用于计算平均值的运算符是($avg)。

四、判断题(正确打√,错误打×)

  1. MongoDB的_id字段可以手动指定。(
  2. MongoDB的全文索引不支持中文分词。(
  3. MongoDB的$near操作符用于范围查询。(×
  4. MongoDB的GridFS用于存储小于16MB的文件。(×

五、简答题

  1. 答题思路:BSON格式通过二进制存储字段长度,提高检索速度;支持更多数据类型(如Date、Binary);解析效率高。
  2. 答题思路:MongoDB采用AP原则(可用性和分区容错性优先),在分布式环境中通过副本集实现高可用性。
  3. 答题思路:复合索引需按字段顺序匹配查询条件,排序方向需一致。例如,索引{name:1, tags:1}支持按name和tags排序,但不支持tags单独查询。
  4. 答题思路:Paxos算法用于分布式系统中达成共识,解决多节点间的数据一致性问题。

六、综合题

  1. 答题思路:数据模型:商品集合包含商品ID、名称、库存、价格等字段。操作包括库存增减($inc)、分页查询(skip+limit)、聚合统计($group)。
  2. 答题思路:使用文档型存储,每个传感器设备数据作为文档存储,结合时间序列查询和聚合操作,通过副本集保证高可用性。
  3. 答题思路:为商品名称和描述字段建立全文索引,使用$text操作符进行模糊搜索,结合$caseSensitive控制大小写敏感。
  4. 答题思路:使用GeoJSON存储POI坐标,创建2dsphere索引,通过$near查询附近地点,并结合$geoWithin限定范围。

第4章 列式存储数据库HBase

一、单选题

  1. 下列关于HBase的描述中,哪一项是正确的(B)?
    A) HBase是一个关系型数据库
    B) HBase基于HDFS构建,提供高可靠性和水平扩展能力
    C) HBase支持完整的SQL查询语法
    D) HBase适合处理事务性操作

  2. HBase的核心组件中,负责管理Region分配和负载均衡的是(C)?
    A) RegionServer
    B) HFile
    C) HMaster
    D) ZooKeeper

  3. 下列关于HBase数据模型的描述中,哪一项是错误的(B)?
    A) HBase以表的形式组织数据
    B) HBase中的行键(RowKey)必须唯一且有序
    C) 每个列族(ColumnFamily)可以包含多个列限定符(Column Qualifier)
    D) HBase支持多版本数据存储(通过时间戳)

  4. 在HBase中,用于唯一标识单元格数据的三个要素是(A)?
    A) 行键(RowKey)、列族(ColumnFamily)、时间戳(Timestamp)
    B) 行键(RowKey)、列族(ColumnFamily)、列限定符(Column Qualifier)
    C) 行键(RowKey)、列限定符(Column Qualifier)、时间戳(Timestamp)
    D) 列族(ColumnFamily)、列限定符(Column Qualifier)、时间戳(Timestamp)

  5. HBase的默认端口号是(C)?
    A) 3306
    B) 27017
    C) 16010
    D) 9200

  6. 下列关于HBase的RegionServer描述中,哪一项是正确的(A)?
    A) RegionServer负责管理一个或多个Region
    B) RegionServer直接与客户端通信并处理元数据操作
    C) RegionServer在集群中只有一个实例
    D) RegionServer主要负责协调Region的分配和负载均衡

  7. HBase中用于实现强一致性读写的机制是(D)?
    A) Paxos协议
    B) Raft协议
    C) 两阶段提交(2PC)
    D) HLog(Write-ahead Log)

  8. HBase的底层存储文件格式是(B)?
    A) SSTable
    B) HFile
    C) WAL
    D) LSM Tree

  9. 在HBase中,以下哪种操作会触发MemStore的刷写(Flush)?
    正确答案:(A
    A) MemStore大小超过阈值
    B) 客户端执行Scan操作
    C) 客户端执行Get操作
    D) 数据插入到HBase后立即触发

  10. HBase中用于分布式协调的服务是(D)?
    A) HDFS
    B) MapReduce
    C) Spark
    D) ZooKeeper

  11. 在HBase中,用于批量导入数据的工具是(A)?
    A) BulkLoad
    B) Sqoop
    C) Flume
    D) Kafka

  12. 下列关于HBase的列族(ColumnFamily)描述中,哪一项是正确的(B)?
    A) 列族的数量越多越好
    B) 列族的设计应根据访问模式进行优化
    C) 列族可以动态添加而无需预定义
    D) 列族不支持压缩和布隆过滤器

  13. HBase的CAP理论取舍策略是(A)?
    A) CP系统(强调一致性和分区容错性)
    B) AP系统(强调可用性和分区容错性)
    C) AC系统(强调一致性和可用性)
    D) CAP三者兼顾

  14. 在HBase中,如何高效设计RowKey以避免热点问题?
    正确答案:(C
    A) 使用递增序列号作为RowKey
    B) 使用UUID作为RowKey
    C) 将RowKey进行盐析(Salting)处理
    D) 使用自然顺序的字符串作为RowKey

  15. 在HBase中,以下哪个命令用于创建表?
    正确答案:(A
    A) create 'table_name', 'column_family'
    B) insert 'table_name', 'rowkey', 'column_family', 'value'
    C) scan 'table_name'
    D) get 'table_name', 'rowkey'

  16. 在HBase中,以下哪个命令用于扫描整个表的数据?
    正确答案:(C
    A) get 'table_name', 'rowkey'
    B) put 'table_name', 'rowkey', 'column_family:qualifier', 'value'
    C) scan 'table_name'
    D) delete 'table_name', 'rowkey'

  17. 在HBase中,以下哪个命令用于获取特定行的数据?
    正确答案:(A
    A) get 'table_name', 'rowkey'
    B) scan 'table_name'
    C) list 'table_name'
    D) count 'table_name'

  18. 在HBase中,以下哪个命令用于删除整张表?
    正确答案:(D
    A) drop 'table_name'
    B) truncate 'table_name'
    C) disable 'table_name'
    D) disable 'table_name' followed by drop 'table_name'

  19. 在HBase中,以下哪个命令用于向表中插入数据?
    正确答案:(B
    A) get 'table_name', 'rowkey', 'column_family:qualifier'
    B) put 'table_name', 'rowkey', 'column_family:qualifier', 'value'
    C) scan 'table_name'
    D) delete 'table_name', 'rowkey', 'column_family:qualifier'

  20. 在HBase中,以下哪个命令用于删除某个单元格的数据?
    正确答案:(D
    A) get 'table_name', 'rowkey', 'column_family:qualifier'
    B) put 'table_name', 'rowkey', 'column_family:qualifier', 'value'
    C) scan 'table_name'
    D) delete 'table_name', 'rowkey', 'column_family:qualifier'

二、多选题

  1. HBase的适用场景包括(ABCD)?
    A) 大规模数据存储
    B) 高吞吐量写入
    C) 实时查询
    D) 分布式环境下的海量数据处理

  2. HBase的架构特点包括(ABCD)?
    A) 基于HDFS的高可靠性存储
    B) 支持水平扩展
    C) 弱化模式设计
    D) 多版本并发控制(MVCC)

  3. HBase的优化策略包括(ABCD)?
    A) 合理设计RowKey以避免热点
    B) 调整MemStore和BlockCache的大小
    C) 启用压缩和布隆过滤器
    D) 控制Region的大小

  4. HBase的缺点包括(ABC)?
    A) 不支持复杂的SQL查询
    B) 事务处理能力较弱
    C) 对小规模数据集效率较低
    D) 不支持分布式部署

三、填空题

  1. HBase的底层存储依赖于(HDFS)。
  2. HBase的列族设计中,用于加速随机读取的技术是(布隆过滤器)。
  3. HBase中用于压缩数据的算法包括(GZIP)、(Snappy)等。
  4. HBase的RowKey设计中,为避免热点问题常用的方法是(盐析)和(反转)。

四、判断题(正确打√,错误打×)

  1. HBase适合处理OLTP场景。(×
  2. HBase支持二级索引。(
  3. HBase的RowKey可以重复。(×
  4. HBase的Region数量会影响性能。(

五、简答题

  1. 答题思路:HBase适用于大规模数据存储和实时查询场景,如日志分析、物联网数据存储等。其优势在于高吞吐量写入和水平扩展能力。
  2. 答题思路:HBase采用CP原则,在分布式环境中优先保证一致性和分区容错性,牺牲部分可用性。
  3. 答题思路:HBase的RowKey设计需要考虑均匀分布、避免热点,并结合业务需求进行盐析、反转等处理。
  4. 答题思路:HBase的HLog(Write-ahead Log)用于确保数据持久化,防止数据丢失。

六、综合题

  1. 答题思路:HBase的CAP理论权衡体现在其CP特性上,适用于对一致性要求较高的场景(如金融交易),但在高并发写入时可能影响可用性。
  2. 答题思路:设计一个基于HBase的物联网数据存储系统,使用时间戳作为RowKey的一部分,结合列族存储传感器数据,利用HBase的高吞吐写入能力。
  3. 答题思路:HBase的列族设计需根据访问频率划分冷热数据,例如将频繁访问的列放在一个列族,冷数据放在另一个列族,提高查询效率。
  4. 答题思路:HBase的Region管理涉及Region的分裂、合并和负载均衡,通过HMaster协调RegionServer分配Region,确保数据均匀分布。

第5章 图数据库Neo4j

一、单选题

  1. 下列关于图数据库的描述中,哪一项是正确的(B)?
    A) 图数据库不支持事务操作
    B) 图数据库的存储模型基于键值对或列存储
    C) 图数据库的查询性能与数据规模无关
    D) 图数据库无法处理海量数据

  2. Neo4j的默认端口号是(C)?
    A) 3306
    B) 27017
    C) 7474
    D) 8080

  3. Cypher语言中用于查询节点的关键词是(B)?
    A) SELECT
    B) MATCH
    C) FIND
    D) SEARCH

  4. Neo4j服务端的默认数据存储路径是(B)?
    A) /data/db
    B) /var/lib/neo4j/data
    C) C:\Program Files\Neo4j\data
    D) /usr/local/neo4j/data

二、多选题

  1. Neo4j支持的索引类型包括(ABCD)?
    A) 范围索引
    B) 文本索引
    C) 点索引
    D) 令牌查找索引

  2. Cypher语言中用于路径查询的语法包括(ABC)?
    A) shortestPath
    B) allShortestPaths
    C) MATCH...WHERE
    D) UNWIND

  3. Neo4j支持的编程语言驱动包括(ABCD)?
    A) Java
    B) Python
    C) JavaScript
    D) Go

  4. Cypher语言中用于聚合计算的函数包括(ABC)?
    A) COUNT
    B) SUM
    C) AVG
    D) DISTINCT

三、填空题

  1. Cypher语言中用于创建节点的关键词是(CREATE)。
  2. Neo4j的图形化查询工具是(Neo4j Browser)。
  3. Cypher语言中用于删除节点及其关系的关键词是(DETACH DELETE)。
  4. Neo4j服务端的默认日志存储路径是(/var/lib/neo4j/logs)。

四、判断题(正确打√,错误打×)

  1. Neo4j社区版支持集群部署。(×
  2. Cypher语言中变量名大小写不敏感。(×
  3. Neo4j的Bolt协议是基于HTTP的。(×
  4. Cypher语言中MATCH语句必须包含RETURN子句。(

五、简答题

  1. 答题思路:图数据库通过节点、关系和属性存储数据,适用于社交网络、推荐系统等场景。
  2. 答题思路:Neo4j采用原生图存储,而JanusGraph基于分布式存储引擎(如HBase/Cassandra)。
  3. 答题思路:语法结构为 (n:Label{属性})-[r:关系类型]->(m:Label{属性})
  4. 答题思路:启动流程:配置环境变量 → 执行 neo4j start → 访问7474端口。

六、综合题

  1. 答题思路:数据模型:用户节点(User)、关注关系(FOLLOW);操作:MATCH (u1:User)-[:FOLLOW]->(u2:User)
  2. 答题思路:示例:MATCH p=shortestPath((a:Person)-[*..5]-(b:Person)) WHERE a.name='Alice' AND b.name='Bob' RETURN p.
  3. 答题思路:技术优势:高效路径查询、灵活的模式扩展、可视化支持。

第6章 键值对数据库Redis

一、单选题

  1. 下列关于Redis配置文件参数的描述中,哪一项是正确的(B)?
    A) daemonize no表示以守护进程方式启动服务
    B) bind 127.0.0.1表示绑定本地IP地址
    C) protected-mode yes表示关闭保护模式
    D) maxmemory 100mb表示最大内存限制为100GB

  2. Redis默认端口号是(C)?
    A) 3306
    B) 27017
    C) 6379
    D) 8080

  3. 下列关于Redis列表类型命令的描述中,哪一项是正确的(C)?
    A) lpush将元素添加到列表尾部
    B) rpop移除并返回列表第一个元素
    C) lrange用于获取列表指定范围的元素
    D) llen用于设置列表长度

  4. Redis中用于删除键的命令是(A)?
    A) del
    B) delete
    C) remove
    D) drop

二、多选题

  1. Redis支持的持久化存储方式包括(AB)?
    A) RDB快照
    B) AOF日志
    C) LRU缓存
    D) 内存快照

  2. Redis的集合类型支持的操作包括(ABC)?
    A) sadd
    B) smembers
    C) sdiff
    D) zadd

  3. Redis集群方案的特点包括(ABC)?
    A) 基于哈希槽分片
    B) 支持主从复制
    C) 自动故障转移
    D) 客户端分片

  4. Redis客户端管理命令包括(ABCD)?
    A) client list
    B) client kill
    C) client setname
    D) client getname

三、填空题

  1. Redis的默认配置文件名称是(redis.conf)。
  2. Redis中用于获取键类型的命令是(type)。
  3. Redis中用于设置键过期时间的命令是(expire)。
  4. Redis中用于获取有序集合分值的命令是(zscore)。

四、判断题(正确打√,错误打×)

  1. Redis的AOF持久化方式实时性优于RDB。(
  2. Redis的主从复制是同步的。(×
  3. Redis的SCAN命令可以迭代式扫描键空间。(
  4. Redis的ZADD命令可以添加有序集合元素。(

五、简答题

  1. 答题思路:键值对数据库通过键值对存储数据,适用于缓存、会话存储等场景。
  2. 答题思路:事务机制通过multi/exec实现批处理,watch用于监视键变更。
  3. 答题思路:LRU缓存机制通过maxmemory策略淘汰最久未使用的键。
  4. 答题思路:RDB是快照持久化,AOF是日志持久化,恢复时优先读取AOF。
  5. 答题思路:主从复制通过异步同步数据,故障转移由哨兵或集群自动完成。

六、综合题

  1. 答题思路:数据模型:使用哈希表存储用户购物车,列表存储商品库存。操作包括添加/删除商品、更新数量、计算总价。
  2. 答题思路:Redis集群通过哈希槽分配数据,支持自动分片和故障转移。优势在于高可用性和水平扩展,但跨槽查询性能较差。
  3. 答题思路:通过publish/subscribe实现跨服务的消息通信,结合持久化保证可靠性。例如:订单系统发布消息,库存系统订阅并处理。

第7章 Cassandra原理和使用

一、单选题

  1. Cassandra默认的分区器是(B)?
    A) RandomPartitioner
    B) Murmur3Partitioner
    C) ByteOrderedPartitioner
    D) OrderPreservingPartitioner

  2. 下列关于CQL的描述中,哪一项是正确的(D)?
    A) CQL支持JOIN查询
    B) CQL支持事务机制
    C) CQL支持GROUP BY聚合
    D) CQL支持分页查询(PAGING)

  3. Cassandra的预写日志(CommitLog)存储路径是(B)?
    A) /var/lib/cassandra/data
    B) /var/lib/cassandra/commitlog
    C) /var/lib/cassandra/hints
    D) /var/lib/cassandra/saved_caches

二、多选题

  1. Cassandra支持的副本复制策略包括(AB)?
    A) SimpleStrategy
    B) NetworkTopologyStrategy
    C) LocalStrategy
    D) RackAwareStrategy

  2. CQL中支持的集合类型包括(ABCD)?
    A) list
    B) map
    C) set
    D) tuple

  3. Cassandra的读写一致性等级包括(ABCD)?
    A) ONE
    B) QUORUM
    C) ALL
    D) LOCAL_QUORUM

三、填空题

  1. Cassandra的默认配置文件名称是(cassandra.yaml)。
  2. CQL中用于删除数据的命令是(DELETE)。
  3. Cassandra的Gossip协议用于(集群成员管理和故障检测)。
  4. CQL中用于设置分簇列排序的语法是(WITH CLUSTERING ORDER BY)。

四、判断题(正确打√,错误打×)

  1. Cassandra的主从复制是同步的。(×
  2. CQL支持对非主键列的条件查询。(×
  3. Cassandra的计数器列可以作为主键。(×
  4. CQL中UPDATE语句可以修改主键列。(×

五、简答题

  1. 答题思路:Cassandra采用对等环形结构、无主节点设计,支持高可用性和水平扩展。与关系型数据库相比,其分布式特性更强,但缺乏JOIN和事务支持。
  2. 答题思路:行键是唯一标识,列族包含标准列,超级列族包含超级列(子列)。数据模型通过行键、列族和超级列族分层组织。
  3. 答题思路:机架感知策略通过配置节点的机架位置,将数据副本分布到不同机架,避免单点故障。

六、综合题

  1. 答题思路:数据模型:使用列族存储订单信息,主键为订单ID。核心操作包括INSERT订单、SELECT查询、DELETE过期订单。
  2. 答题思路:R+W>N保证强一致性,R+W<N时牺牲一致性换取高可用性。例如电商系统中,R=1, W=1, N=3时适合高并发场景。

第8章 Elasticsearch原理和使用

一、单选题

  1. Lucene的倒排索引机制中,TF-IDF值的作用是(B)?
    A) 计算文档长度
    B) 评估查询词与文档的相关性
    C) 压缩索引数据
    D) 存储原始网页内容

  2. 下列关于Elasticsearch的描述中,哪一项是正确的(C)?
    A) 仅支持单机部署
    B) 实时搜索能力较弱
    C) 与Spark大数据工具兼容
    D) 不支持分布式处理

  3. Elasticsearch的默认端口号是(D)?
    A) 3306
    B) 6379
    C) 7474
    D) 9200

  4. 下列关于Elasticsearch分片机制的描述中,哪一项是正确的(B)?
    A) 分片数量可以在创建索引后动态调整
    B) 主分片负责数据写入和查询,副本分片仅用于读操作
    C) 每个索引必须包含至少两个主分片
    D) 分片数量越多性能越好

  5. Elasticsearch中的基本数据单位是(A)?
    A) 文档(Document)
    B) 行(Row)
    C) 键值对(Key-Value)
    D) 节点(Node)

  6. 下列关于Elasticsearch集群状态的描述中,哪一项是错误的(D)?
    A) Green表示所有主分片和副本分片均正常
    B) Yellow表示部分副本分片未分配
    C) Red表示存在未分配的主分片
    D) Orange表示节点正在重启

  7. Elasticsearch中用于全文检索的核心组件是(A)?
    A) 分词器(Analyzer)
    B) 索引器(Indexer)
    C) 查询引擎(Query Engine)
    D) 数据存储引擎(Storage Engine)

  8. 下列关于Elasticsearch索引生命周期管理(ILM)的描述中,哪一项是正确的(B)?
    A) ILM策略只能应用于时间序列数据
    B) 可以根据数据年龄自动迁移索引到不同存储层
    C) ILM不支持删除过期索引
    D) ILM策略必须手动触发

  9. Elasticsearch中用于聚合分析的语法是(C)?
    A) $group
    B) $aggregate
    C) "aggs"字段
    D) "analyze"字段

  10. 下列关于Elasticsearch安全功能的描述中,哪一项是正确的(D)?
    A) 默认支持HTTPS加密通信
    B) 提供基于角色的访问控制(RBAC)
    C) 支持LDAP认证
    D) 所有以上选项

二、多选题

  1. Elasticsearch的主要特点包括(ABCD)?
    A) 分布式架构
    B) 实时搜索能力
    C) 高可用性
    D) 支持结构化和非结构化数据

  2. Elasticsearch支持的数据类型包括(ABCD)?
    A) text
    B) keyword
    C) date
    D) nested

  3. Elasticsearch的分片策略包括(ABCD)?
    A) 基于哈希的路由
    B) 自定义路由规则
    C) 副本分片分布优化
    D) 分片过滤策略

  4. Elasticsearch的常见应用场景包括(ABCD)?
    A) 日志分析
    B) 实时监控
    C) 全文搜索
    D) 商业智能报表

三、填空题

  1. Elasticsearch中用于存储索引元数据的文件格式是(JSON)。
  2. Elasticsearch中用于集群健康检查的API是(_cluster/health)。
  3. Elasticsearch中用于查看索引信息的命令是(GET _cat/indices?v)。
  4. Elasticsearch中用于设置副本数的参数是(number_of_replicas)。

四、判断题(正确打√,错误打×)

  1. Elasticsearch默认情况下启用分片自动平衡功能。(
  2. Elasticsearch的副本分片可以提升写入性能。(×
  3. Elasticsearch支持在同一个索引中混合不同数据类型。(×
  4. Elasticsearch的分词器只能在索引创建时指定,不能修改。(×

五、简答题

  1. 答题思路:Elasticsearch基于Lucene构建,采用分布式架构,支持水平扩展和实时搜索。其核心优势在于高吞吐写入、灵活查询和聚合分析能力。
  2. 答题思路:倒排索引通过将文档内容拆分为词条,并建立词条到文档的映射关系,实现快速检索。TF-IDF用于衡量词条在文档中的重要性。
  3. 答题思路:分片机制通过将数据划分为多个片段,提高查询并发能力和容错能力;副本分片提供冗余备份和负载均衡。
  4. 答题思路:中文分词需借助额外插件(如IK Analyzer),对文本进行切分并去除停用词,提升搜索相关性。

六、综合题

  1. 答题思路:日志系统设计:使用Logstash采集日志 → 写入Elasticsearch → Kibana可视化。关键技术点包括索引模板配置、分片策略优化和ILM策略应用。
  2. 答题思路:电商搜索系统:为商品名称、描述等字段建立全文索引,结合filter条件筛选价格区间和分类,利用highlight高亮关键词,提升用户体验。
  3. 答题思路:高可用方案:通过副本分片保证数据冗余,结合负载均衡器实现请求分发,定期快照备份防止数据丢失。

第9章 其他NoSQL数据库简介

一、单选题

  1. 下列关于OpenTSDB的描述中,哪一项是正确的(B)?
    A) OpenTSDB的数据存储依赖于MySQL
    B) TSD节点是无状态且相互独立的
    C) OpenTSDB的时间精度最大支持到秒级
    D) OpenTSDB不支持分布式部署

  2. InfluxDB的主要特点不包括(B)?
    A) 使用Go语言编写
    B) 需要依赖Hadoop集群
    C) 提供图形化监控界面
    D) 支持Telegraf数据采集工具

  3. Lucene的倒排索引机制中,TF-IDF值的作用是(B)?
    A) 计算文档长度
    B) 评估查询词与文档的相关性
    C) 压缩索引数据
    D) 存储原始网页内容

  4. 下列关于Elasticsearch的描述中,哪一项是正确的(C)?
    A) 仅支持单机部署
    B) 实时搜索能力较弱
    C) 与Spark大数据工具兼容
    D) 不支持分布式处理

二、多选题

  1. OpenTSDB的数据存储结构包括(ABCD)?
    A) metric
    B) timestamp
    C) tags
    D) value

  2. InfluxDB的核心组件包括(ABCD)?
    A) Telegraf
    B) Chronograf
    C) Kapacitor
    D) InfluxDB

  3. Nutch的工作流程包括(ABCD)?
    A) 网页抓取
    B) 内容解析
    C) 建立倒排索引
    D) 查询排序

  4. Solr相比Lucene的优势包括(ABC)?
    A) 提供更丰富的查询语言
    B) 支持分布式部署
    C) 提供管理界面
    D) 更强的中文分词能力

三、填空题

  1. OpenTSDB默认存储数据的HBase表名为(tsdb)。
  2. InfluxDB中用于存储时序数据的核心概念是(measurement)。
  3. Lucene建立的索引类型称为(倒排索引)。
  4. Elasticsearch的默认端口号是(9200)。

四、判断题(正确打√,错误打×)

  1. OpenTSDB的TSD节点需要依赖HBase运行。(
  2. InfluxDB的Telegraf工具可以收集物联网设备数据。(
  3. Lucene需要借助中文分词组件处理非英文文本。(
  4. Solr和Elasticsearch均基于Lucene实现。(

五、简答题

  1. 答题思路:时序数据库专为时间序列数据设计,支持高效写入和查询,而关系型数据库更注重事务一致性。
  2. 答题思路:metric表示监控项名称,tags用于描述metric的属性(如主机名)。
  3. 答题思路:INSERT(写入数据)、SELECT(查询数据)、DELETE(删除数据)。
  4. 答题思路:通过将文档分词后建立词汇到文档的映射,实现快速检索。

六、综合题

  1. 答题思路:数据模型:measurement存储传感器ID、时间戳和数值;操作包括数据写入、趋势分析和阈值报警。
  2. 答题思路:Nutch适合网络爬虫,Elasticsearch更适合实时搜索和大规模数据处理。
  3. 答题思路:金融场景:股票价格监控、交易日志分析;优势包括高吞吐写入和低延迟查询。

← 返回首页