跳转至

数据库概论

数据库将数据与应用隔离,有利于处理海量的数据

数据库管理系统

  • 数据定义语言
  • 数据操作语言
  • 受控访问
    • 安全:鉴权与限制
    • 完整:数据一致性
    • 并发控制:共享访问
    • 恢复控制:应对软件、硬件故障

数据库类型

  • 关系数据库:使用关系模型构建的数据库,最通用、可靠、完善的数据库选项,如MySQL、SQLite
  • 文档数据库:以 JSON 格式存储数据,支持灵活的数据结构和查询,如MongoDB
  • 键值数据库:通过键值对存储数据,提供高性能的读取和写入操作,适用于缓存和会话存储,如Redis
  • 列族数据库:以列族的方式存储数据,适合处理大规模数据并支持高可用性和可扩展性,如Cassandra
  • 图数据库:以图结构存储数据,专注于节点、边和属性,非常适合复杂的关系建模和查询,如Neo4j

分布式数据库

大数据的4V

  • Volume:数据一直都在以每年50%的速度增长,到2020年,世界将拥有35ZB的数据
  • Variety:大数据将存在越来越多的非结构化数据
  • Velocity:数据有效的时间窗口很小,系统需要在秒级给出结果(产生和处理速度快)
  • Veracity:数据具有很大的不确定性,因而价值密度很低,需要从大量数据中提取高价值数据

基于以上性质,大数据将很依赖于分布式储存和分布式处理技术

CAP理论

为了分析分布式数据的性质,我们采用CAP理论

  • C(Consistency):保持数据一致性,在分布式环境中,要求所有节点在同一时间具有相同的数据

  • A(Availability):可用性,是指快速获取数据,可以在确定的时间内返回操作结果

  • P(Tolerance of Network Partition):分区容忍性,是指当出现网络分区的情况时(即系统中的一部分节点无法和其他节点进行通信),分离的系统也能够正常运行,也就是说,系统中任意信息的丢失或失败不会影响系统的继续运作。

CAP理论认为,一个分布式系统不可能同时满足以上所有的需求,但可以根据需求进行侧重,如:

  • CA:保证了一致性和可用性,但这种做法会严重影响系统的可扩展性

  • CP:如果由于网络分区而无法保证特定信息是最新的,则系统将返回错误或超时

  • AP:当由于网络分区而无法保证数据是最新的时候,允许系统返回不一致的数据

对于一个分布式系统而言,P是前提,必须保证

大数据技术

Hadoop

Apache软件基金会旗下基于Java开发的开源分布式计算平台

核心是分布式文件系统HDFS(Hadoop Distributed File System)和分布式处理框架MapReduce,其原理如下:

  • HDFS:

    • 采用Master/Slave模式:

      • Master主要承担客户请求处理、数据分配汇总以及节点协调任务
      • Slave主要负责接受数据、数据存储和计算的过程,并把结果返回给调用者
      • 一个Hadoop集群包含单独的Master节点(NameNode)和多个Slave节点(DataNode)服务器(逻辑意义上)
      • NameNode会保存文件系统的具体信息,包括文件信息、文件被分割成具体块的信息、以及每一个block块归属的DataNode的信息,而DataNode则会管理并上传数据块的信息。这保证了单一的接口。
    • 存储上,将文件切分成固定大小的数据块(默认为64MB),每块具有三个副本,按照本地两份,异地一份原则储存

    • 通过分布式存储,加上冗余存储,以兼顾可用性和效率

  • MapReduce:

    • Mapper负责“分”,即将复杂问题分为若干个简单、可并行、读写效率高的问题
    • Reducer负责对map阶段的结果进行汇总