主页

索引

模块索引

搜索页面

1.5. 临时

数据大体上可以分为 3 类:

1. 结构化数据(Structured data)
    a) 关系型数据库
    b) 分布式关系型数据库
    c) 时序数据库

2. 半结构化数据(Semi-structured data)

    a) 非关系型数据库(NoSQL数据库)

3. 非结构化数据(Unstructured data)

   a) 分布式文件系统

分布式关系型数据库 (NewSQL 数据库)的优势:

1. 高扩展性
    NewSQL 天生支持数据分片,支持动态增加节点,不需要进行麻烦的数据迁移工作
    所以能够轻松地满足数据不断增大时的存储需求
2. 高并发性
    相比于单机关系型数据库基于磁盘的设计,NewSQL 在设计上更好地利用了内存
    所以 SQL 执行效率很高。
    在事务的支持上,NewSQL 有着高效的分布式事务特性
    所以它可以实现海量数据的读取和写入,以及大量用户的查询和更新等操作
3. 高可用性
    NewSQL 采用 Paxos 或者 Raft 协议来实现多副本的存储,而且还支持自动选择主节点
    保证了数据库的故障切换时间很短

开源选择有 TiDB、CockroachDB 等
商业化的产品,比如阿里巴巴的 OceanBase

时序数据 在读写、存储和分析处理方面有下面这些特点:

1. 时序数据是持续地写入
    一般是采用固定的频率,没有写入量忽大忽小的明显变化
    数量非常大,而且并发写入的需求也很高
    但是数据很少做更新,旧数据除了特殊情况下的修改,基本是不需要更新的写入操作
2. 时序数据的读取很少
    相比写入的高并发和高频率,读取的需求主要是进行数据分析的应用,而分析应用的并发访问量是比较少的
3. 时序数据时效性很强
    一般是越新的数据价值就越大,旧数据会迅速失去价值
    时序数据的数据分析主要关心的是新数据,旧数据被查询和分析的概率不高
    旧数据一般是粗颗粒度的读取分析
    而且在被分析时,一般是基于时间范围读取分析,读取某一条记录的几率很小

采用读取性能不高的 LSM 树代替 B+ 树的存储结构。
它专注于支持高并发的数据写入,采用更高压缩比的压缩算法来支持海量数据的存储,降低存储的成本
同时,通过预处理等方法来支持海量数据的高效分组聚合计算。


开源软件: InfluxDB,KairosDB 和 OpenTSDB
云服务企业: 阿里巴巴的 TSDB 和亚马逊的 AWS Timestream

非关系型数据库:

半结构化数据包含相关标记,用来分隔语义元素,以及对记录和字段进行分层:
    JSON
    XML
说明:
    JSON 中大括号“{}”,中括号"[]",冒号":",逗号","就是分隔语义元素
    每个冒号前面的内容是字段,后面的是记录

特点:
    结构并不固定,属于同一类实体可以有不同的属性,这表明它有很好的可扩展性。
    另外,即使它们被组合在一起,这些属性的顺序并不重要

例:
    日志文件
    NoSQL:
      开源: MongoDB、CouchDB、Redis、HBase、Cassandra
      商业: MongoDB 和 Oracle NoSQL

分布式文件系统:

典型的例子有监控系统中的视频、图片和音频等信息
例:
  HDFS
  FastDFS
  Ceph

数据迁移工具:

Sqoop 项目
    在 Hadoop 大数据存储系统和关系型数据库等系统之间架起了桥梁
    借助 Sqoop,你就可以很方便地把 MySQL 数据导入到 HBase 中
    采用了被称为 Connector 的插件架构,不同的 Connector 还可以对接不同的数据源,
    而且你也可以根据自己的需求定制专属的 Connector 来完成一些特殊的迁移工作

增量的数据更新:
    LinkedIn 开源的 Databus 项目
    阿里巴巴的 Canal

主页

索引

模块索引

搜索页面