CCCCCold丶大数据之禅

  • 第一章,大数据之路浅谈
    • 数仓&数据集市&数据湖
    • 数据模型
      • 模型ETL频率:
      • 模型存储技术:
      • 模型数据分层:
      • 模型架构分层:
      • 模型主题域:
      • 模型创建类型:
      • 模型存储类型:
      • 模型压缩算法:
    • 队列:
    • 节点:
    • 计算引擎:

第一章,大数据之路浅谈

数仓&数据集市&数据湖

数据仓库:英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

数据仓库:一个面向主题的(Subject Oriented),集成的(Integrated),非易失的(Non-Volatilea),随时间变化的(Time Variant),用来支持管理人员决策的数据集合

数据湖&hub:概念最初是由大数据厂商提出的,表面上看,数据都是承载在基于可向外扩展的HDFS廉价存储硬件之上的。但数据量越大,越需要各种不同种类的存储。最终,所有的企业数据都可以被认为是大数据,但并不是所有的企业数据都是适合存放在廉价的HDFS集群之上的。
数据集市(Data Mart) :也叫数据市场,数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。
在业务快速发展的时候,一般一个业务模式或者场景对应一个数据集市,以支撑业务快速发展
例如:爬虫集市、反爬虫集市、搜索推荐集市、内容营销集市、风控集市、财务集市、营销集市等等

数据模型

本文所提到模型即是指由Hive将存储在HDFS或者其他数据源上结构化文件映射成为的“表”

模型ETL频率:

     离线模型:T+1、T+2、周、月、季准实时模型(rtf 模型):1min、5min、10min、30min、1hour实时topic:实时消费、流式处理、实时接入、实时消费

模型存储技术:

     非分区模型:不存储历史数据,只存储数据最新状态全量模型:全量存储数据,超出一定时间未更新状态数据存入History分区,否则存入ACTIVE分区,只记录数据最新状态增量模型:增量存储数据,每日新增数据纪录成快照并存入最新分区拉链模型:拉链模型是一种数据处理和存储的技术方式;通过比较,记录数据的生命周期;能快速还原任意天的历史快照,极大的节省了存储。 顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息

模型数据分层:

     分区模型:就是一种物理上的“索引”,将总数据按规则分装到各个小区中并打上标签,查询指定标签的数据时只用遍历该小区的数据即可桶模型:   对于每一个模型(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分。Hive也是针对某一列进行桶的组,笔者在日常开发中没有使用过“分桶”技术注意:1. 而分区又会被分为静态分区&动态分区,在insert数据时会有区别,静态分区insert数据时需要制定分区,动态分区不需要制定   如果分区是可以确定的话,千万不要用动态分区,动态分区相较与静态分区,效率会低一些。因为动态分区的值是在reduce运行阶段确定的,也就是会把所有的记录distribute by,而Distribute by 按指定字段,将数据划分到不同的Reduce中,所以当数据大的时候,Reduce的数量直接影响着效率的高低。2. insert数据时,可以将动态分区&静态分区结合使用,结合方式为:主静从动3. 一般模型分区数量不应该超过2层,否则会因分区数过多而导致生成大量小文件(文件小于128M),影响集群效率3.1 从Hive的角度看,小文件会开很多map,一个map开一个JVM去执行,所以这些任务的初始化,启动,执行会浪费大量的资源,严重影响性能。3.2 NameNode会在内存中维护着文件系统树及整棵树内所有的文件和目录,也记录着每个文件中各个块所在的数据节点信息。在HDFS中,每个小文件对象约占150byte,如果小文件过多会占用大量内存。这样NameNode内存容量严重制约了集群的扩展

模型架构分层:

     ADM:源数据层,与生产系统数据及结构完全保持一致BDM:拉链层,以ADM层为基础,将数据转换为拉链模型进行极限存储CDM:明细层,以BDM层或ADM层为基础,拉取数据加工成星型模型或雪花模型DDM:公共层,以CDM为基础,所有的数据业务及技术口径、TEL方式、数据场景聚合在此层实现统一EDM:应用层,以DDM为基础,面向不同的系统实现定制化开发TMP:临时数据层,基础临时模型或者中间模型OPD:测试层,存储测试待上线模型NMV:维度层,为降低数据冗余,存储一些枚举值映射关系

模型主题域:

     不同层的模型会按照特定的业务主体或者场景划分出“”主题“”,以便用户快速在茫茫模型海中找到目标模型,举例说明Z01:用户X02:搜索C03:广告V04:流量B05:交易N06:订单M07:商品L08:房产K09:二手车......

模型创建类型:

     内部模型(管理模型):未被external修饰的是内部表,数据由hive自身管理。drop表时,hdfs上持久化存储数据会被删除外部模型:数据由HDFS管理,drop表时,表的元数据信息会被删除,持久化存储数据还会在HDFS中未被删除

模型存储类型:

     TEXTFILE:存储方式为行存储,默认存储方式SEQUENCEFILE:二进制文件,以<key,value>的形式序列化到文件中,行存储,可分割可压缩  RCFILE:数据按行分块 每块按照列存储,压缩快,快速列存取ORCFILE:数据按行分块 每块按照列存储,压缩快,快速列存取PARQUET:列式存储,可用于多种数据处理系统

模型压缩算法:

     GZIPBZIP2LZOSNAPPY  笔者日常开发采用ORC格式对数据进行存储,SNAPPY算法对数据进行压缩,后期会分章节填上本篇挖的所有坑-。-

最后的最后,讲讲集群中几个概念:队列,节点,计算引擎

队列:

     保证不同等级数据计算任务及算法任务互相独立享受资源,互不干扰互不影响,独立划分一片资源,列举几个集群中“”队列“”实际应用场景core :核心重点任务使用formal:生产队列,供生产任务使用Spark:仅供Spark作业使用Machine_learning:仅供算法作业使用 bu:仅供报表作业使用presto:仅供Presto即席查询使用Hive:仅供Hive查询使用dev:仅供非核心作业使用这块再挖一个大坑,后几期笔者会重点讲一下在实际生产环境下同一集市不同队列间资源分配策略

节点:

     负责调度任务的客户端,笔者Spark开发时采用Yarn提交作业,Yarn会选择集群任意一台机器作为客户端以供Driver进行作业调度

计算引擎:

     HiveSparkPigSpark StreamingStormMapReduce这块再挖一个大坑,笔者日常基本都采用Spark引擎开发,后续文章会重点讲解每个计算引擎不同,优势与劣势

回过头看看自己职业经历,当初觉得自己太菜,17年刚来北京决定从事数据分析师这个岗位,面试了头条、链家、58到家,每一家对数据分析侧重点不一样:
头条重算法,上来手写一些算法基本实现
链家重实现,笔试里有较多题目设计业务场景具体分析,具体实现
58到家谈业务,可能是由于面试业务部门导致
后来没有去师傅推荐的58到家商业BI部门当一个数据分析师,辗转反侧来到沃斯,从事业务侧数据分析师,最后异动至数据开发,神奇的经历,因为自己的坚持,最终做到自己想干的事!
人生苦短,我用Python,CCCCCold的大数据之禅

浅谈一个新人的大数据之路相关推荐

  1. 浅谈一个新人的大数据之路-HiveQLSpark-SQL中谓词下推

    CCCCCold丶大数据之禅 什么是谓词下推? 为什么要进行谓词下推? 谓词下推优化方式 谓词下推在Join中应用 INNER JOIN LEFT/RIGHT OUTER JOIN 什么是谓词下推? ...

  2. 浅谈“政务互联网+”“政务大数据”

    作为在"电子政务"行业持续工作了已16个年头的"老挨踢"人,计划把"政务互联网+"&"政务大数据"作为2017年 ...

  3. 嵌入式AI —— 6. 为糖葫芦加糖,浅谈深度学习中的数据增广

    没有读过本系列前几期文章的朋友,需要先回顾下已发表的文章: 开篇大吉 集成AI模块到系统中 模型的部署 CMSIS-NN介绍 从穿糖葫芦到织深度神经网络 又和大家见面了,上次本程序猿介绍了CMSIS- ...

  4. oracle全表扫过程讲解,CSS_浅谈存取Oracle当中扫描数据的方法,1) 全表扫描(Full Table Scans, FTS) - phpStudy...

    浅谈存取Oracle当中扫描数据的方法 1) 全表扫描(Full Table Scans, FTS) 为实现全表扫描,Oracle读取表中所有的行,并检查每一行是否满足语句的WHERE限制条件一个多块 ...

  5. [转] 浅谈脱壳中的附加数据问题(overlay)

    浅谈脱壳中的附加数据问题(overlay) Author:Lenus From: www.popbase.net E-mail:Lenus_M@163.com -------------------- ...

  6. 浅谈脱壳中的附加数据问题(overlay)

    浅谈脱壳中的附加数据问题(overlay) Author:Lenus From: www.popbase.net E-mail:Lenus_M@163.com -------------------- ...

  7. python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式

    本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...

  8. 论一个糟糕的大数据码农的自我修养

    幸福的家庭都是一样的,不幸的家庭各有各的不幸 - 论一个糟糕的大数据平台工程师的自我修养 本来想写写如何成为一名优秀的大数据平台开发工程师,但说实话,这个话题太简单了!虽然我没有被Jeff dean大 ...

  9. 如何选择一个合适的大数据可视化工具

    高质量的可视化工具对数据分析是必不可少的.数据可视化工具是一种应用软件,它帮助用户以可视化和图形化的格式显示数据,并提供数据的完整轮廓.饼图.曲线.热图.直方图.雷达/蜘蛛图只是可视化的一小部分,这些 ...

最新文章

  1. 神经网络压缩之低比特量化的优劣分析
  2. python的open函数百度百科,open函数
  3. 遗留问题,排雷会炸,不排也会炸!
  4. 麦克纳姆轮全向移动机器人纵向直线运动分析
  5. MAC系统上grep使用办法
  6. 2022-4-12作业
  7. 槑!Vitas翻唱青藏高原
  8. 网页打开慢/正在解析主机-解决
  9. Android平板/手机,使用qq视频通话图像旋转90度
  10. PS怎么用3D功能怎么用?如何用PS做立体字
  11. win7、win10关闭驱动签名,进入驱动测试模式,以及常见初级问题的解决
  12. idea的java项目怎么连数据库_idea 使用Java连接SQL Server数据库教程
  13. 会议记录-Jazes成立!
  14. Linux实战技巧--文件系统操作(五)--打包压缩和解压缩(tar)
  15. 机器视觉检测助力软包动力电池检测
  16. python安装http server轻量应用服务器的方法
  17. C语言计算出结构体所占空间大小
  18. moon服务器 zerotier_Zerotier_MOON配置
  19. 大数据技术原理与应用(7-11)-TYUT
  20. 配置上位机软件开发环境BOOST及cmake等

热门文章

  1. 算法:js 数组 array 去重,并显示所有重复的元素
  2. swagger 上传文件 参数_Swagger发送body和formData参数
  3. SpringCloud系列之六
  4. elixir 读取 marc条目 目次区字段信
  5. php rsa加密实例,php实现RSA加密类实例,phprsa加密实例_PHP教程
  6. oracle会计 英文,求助,关于cost management 的英文资料+翻译
  7. 看盘做短线的10种方法
  8. Spring Cloud 2.x系列之Feign整合断路器监控Hystrix Dashboard
  9. altera fpga大小如何衡量_【转】Xilinx和Altera的FPGA的对比
  10. python实现括号匹配算法_Python实现括号匹配方法详解