大数据学习

数据处理分类

  • OLTP
    • 联机事务处理OLTP 是传统关系型数据库的主要应用用来执行一些基本的、日常的事务处理比如数据库记录的增、删、改、查等等
  • OLAP
    • 场景:主要用于分布式数据库,存储在不同地方的海量数据,数据价值随着其体量不断地累积也一直增加,获取其中知识进行数据分析,可以帮助企业执行正确的决策
    • 联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。它具有共享多维信息的快速分析的特征(FASMI)
      • F是快速性,指系统能在数秒内对用户的多数分析要求做出反应
      • A是可分析性,指用户无需编程就可以定义新的专门计算,将其作为分析的一部 分,并以用户所希望的方式给出报告
      • M是多维性,指提供对数据分析的多维视图和分析
      • I是信息性,指能及时获得信息,并且管理大容量信息

行式存储和列式存储

  • 行式存储
    • 概念:传统的关系型数据库,如 Oracle、DB2、MySQL、SQL SERVER 等采用行式存储法(Row-based),在基于行式存储的数据库中, 数据是按照行数据为基础逻辑存储单元进行存储的, 一行中的数据在存储介质中以连续存储形式存在
    • 适用场景
      1. 适合随机的增删改查操作
      2. 需要在行中选取所有属性的查询操作
      3. 需要频繁插入或更新的操作,其操作与索引和行的大小更为相关
    • 缺点:读取少量字段时,查询效率低,采用索引和表分区提高效率
  • 列式存储
    • 概念:列式存储(Column-based)是相对于行式存储来说的,新兴的 Hbase、HP Vertica、EMC Greenplum 等分布式数据库均采用列式存储。在基于列式存储的数据库中, 数据是按照列为基础逻辑存储单元进行存储的,一列中的数据在存储介质中以连续存储形式存在
    • 对于数据仓库和分布式数据库来说,汇总数据进行操作一般围绕同一列属性的数据进行
    • 适用场景
      1. 查询过程中,可针对各列的运算并发执行(SMP),最后在内存中聚合完整记录集,最大可能降低查询响应时间
      2. 可在数据列中高效查找数据,无需维护索引(任何列都能作为索引),查询过程中能够尽量减少无关IO,避免全表扫描
      3. 因为各列独立存储,且数据类型已知,可以针对该列的数据类型、数据量大小等因素动态选择压缩算法,以提高物理存储利用率;如果某一行的某一列没有数据,那在列存储时,就可以不存储该列的值,这将比行式存储更节省空间
    • 缺点
      1. 不适合做含有删除和更新的实时操作
      2. 适用于列属性较少的数据库场景

数据仓库(OLAP)

  • 概念:为满足新需求设计的一种新数据库,而这个数据库是需容纳更多的数据,更加庞大的数据集。提供所有类型数据支持,主要是用于数据挖掘和数据分析
  • 特点
    1. 面向主题:比如购物是一个主题,那么购物里面包含用户、订单、支付、物流等数据综合,对这些数据要进行归类并分析,分析这个对象数据的一个完整性、一致性的描述,能完整、统一的划分对象所设计的各项数据
    2. 数据集成:数据仓库的数据是从原有分散的数据库中的数据抽取而来的。存入时需要数据清理和整理(同名异义、异名同义)
    3. 不可更新:设计的数据主要是数据查询,一般情况下不做修改,这些数据反映的是一段较长时间内历史数据的内容,有一块修改了影响的是整个历史数据的过程数据。不可更新是针对应用来说,从数据的进入到删除的整个生命周期中,数据仓库的数据是永远不变的
    4. 随时间不断变化:随着时间变化不断有新的数据进来,不断删除久的数据内容

QE的存储

  • druid
    • 概念:是一个在大数据场景下的解决方案,是需要在复杂的海量数据下进行交互式实时数据展现的 BI/OLAP 工具
    • 特点:
      1. 处理的数据量规模较大
      2. 可以进行数据的实时查询展示
      3. 它的查询模式是交互式的,这也说明其查询并发能力有限
    • 重要技术
      1. 预聚合
      2. 列式存储
      3. 字典编码
      4. 位图索引
    • 预聚合算是 Druid 的一个非常大的亮点,通过预聚合可以减少数据的存储以及避免查询时很多不必要的计算。由于 OLAP 的分析场景大多只关心某个列或者某几个列的指标计算,因此数据非常适合列式存储。在列式存储的基础之上,再加上字段编码,能够有效的提升数据的压缩率,然后位图索引让很多查询最终直接转化成计算机层面的位计算,提升查询效率
  • ClickHouse
  • presto
    • 概念:Presto是由 Facebook 推出的一个基于Java开发的开源分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。Presto本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询
    • Presto 支持从多种数据源获取数据来进行运算分析,一条SQL查询可以将多个数据源的数据进行合并分析。如如下SQL:a可以来源于MySQL,b可以来源于Hive select a.* ,b.* from a join b on(a.id = b.id)
    • 特点
      • 多数据源、混合计算支持:支持众多常见的数据源,并且可以进行混合计算分析
      • 大数据:完全的内存计算,支持的数据量完全取决于集群内存大小。他不像SparkSQL可以配置把溢出的数据持久化到磁盘,Presto是完完全全的内存计算
      • 高性能:低延迟高并发的内存计算引擎,相比Hive(无论MR、Tez、Spark执行引擎)、Impala 执行效率要高很多。根据Facebook和京东的测试报告,至少提升10倍以上
      • 支持ANSI SQL:这点不像Hive、SparkSQL都是以HQL为基础(方言),Presto是标准的SQL。用户可以使用标准SQL进行数据查询和分析计算
      • 扩展性:有众多 SPI 扩展点支持,开发人员可编写UDF、UDTF。甚至可以实现自定义的Connector,实现索引下推,借助外置的索引能力,实现特殊场景下的 MPP
      • 流水线:Presto 是基于PipeLine进行设计,在大量数据计算过程中,终端用户(Driver)无需等到所有数据计算完成才能看到结果。一旦开始计算就可立即产生一部分结果返回,后续的计算结果会以多个Page返回给终端用户(Driver)
  • es
    • Lucene(库)是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎

    • 概念:Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎

    • 专有名词

      1. 索引:存放数据的地方,可以理解为mysql中的一个数据库
      2. 类型:用来定义数据结构,可以认为是mysql中的一张表
      3. 文档:就是最终的数据,可以认为就是一条记录
    • 特点

      1. es将对搜索引擎的操作都封装成了restful的api,通过http请求就能对其进行操作
      2. 考虑了海量数据,实现了分布式,是一个可以存储海量数据的分布式搜索引擎
      3. Elasticsearch 也是会对数据进行切分,同时每一个分片会保存多个副本,其原因和 HDFS 是一样的,都是为了保证分布式环境下的高可用
      4. master-slave架构,节点是对等的,节点间会通过自己的一些规则选取集群的 Master,Master 会负责集群状态信息的改变,并同步给其他节点
      5. 只有建立索引和类型需要经过 Master,数据的写入有一个简单的 Routing 规则,可以 Route 到集群中的任意节点,所以数据写入压力是分散在整个集群的
    • 一个数据如何存储到es中的

      1. 比如一首诗,有诗题、作者、朝代、字数、诗内容

      2. 先建立一个名为poems的索引(数据库)

      3. 创建一个名叫Poem的类型(表),通过Mapping定义每个字段类型

        //索引
        poems
        //类型
        "poem":{
        	"properties":{
        		"title":{
        			"type":"keyword",
        		},
        		"author":{
        			"type":"keyword",
        		},
        		"words":{
        			"type":"integer"
        		},
        		"content":{
        			"type":"text",
        		}
        	}
        }
        //文档
        {
        	"title":"静夜思",
        	"author":"李白",
        	"words":"20",
        	"content":"床前明月光,疑是地上霜。举头望明月,低头思故乡。"
        }
        
    • keyword和text都是字符串

      • keyword:不会分别,直接根据字符串内容建立反向索引
      • text:会先分词,然后根据分词内容建立反向索引
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值