学习大数据的契机

原因

  在学习之前的是一直在干java开发的,但是手头上有个比较大的项目,本来是到9月底的样子就应该结束的,但后面需求变更,导致系统需要大改,之前的那批人也都走的差不多了(几个团队一起开发),所以到后面系统的整体架构的任务就交到我手上来了。
  刚开始还好,慢慢改整体逻辑架构,其中从其他人代码中也学到了很多东西,可是过了一个来月的开发周期,11月的时候,也开发的差不多了,后面很多都是简单的逻辑处理,而且写得我很安逸,几乎遇不到什么问题了,这个感觉很不爽,然后优化完一些sql,写了一些异步编排接口,但是还是很安逸,尝试优化代码架构,可是优化了部分觉得很多是重复工作,于是想学习一些新的东西了;

找资料阶段

  所以我开始从晚上找资料,然后是在b站上面看到尚硅谷发了很多新的视频,hive3.1.2、spark3、数仓3.0等,然后就下决心开了大数据学习, 我从朋友那里借来谷粒学院的账号(这里面的视频在b站上大多数都有,只是在b站上看容易分心去看弹幕,我是喜欢开弹幕的那种),然后开始学习,从hadoop开始,大概学到一半,项目又进行迭代升级,我又又又去开发了,估计有三周左右的时间,天天加班,然后学习又停滞了,大概是快11月底的时候,我才狠下心来跟负责人说,我不想写代码了,可以做做运维,然后就交给其他人去写代码了,我只要复制指导一下就行;

学习周期

  首先是根据资料文档+视频很快的过了一遍hadoop剩下的,把map、reduce那个阶段的东西学习了一下,然后就开始学习hive,关于hive-sql那里的很多东西跟sql语法很像,所以很多东西我没看,然后看了下数仓需要的技术点,发现很多东西之前都听过,所以直接开干,搞起了数仓的项目。

数仓的概念

  数仓仓库(data warehouse):是为企业所有决策制定过程,提供所有系统数据支持的战略集合。通过数据仓库的分析可以帮助企业,改进业务流程、控制成本、提高产品质量等。
  数据仓库并不是所有数据的存放地,而是为数据最终最终目的地做准备,这些准备包括:清洗、转义、分类、重组、合并、拆分、统计等等。
其大致流程:

项目的需求及架构

需求分析

整个数仓参考尚硅谷-谷粒学院的课程设计:

 1. 用户行为的日志采集(通过设置埋点的方式)2. 业务数据采集的平台搭建(将mysql中的数据导入到hdfs)3. 数据仓库的维度建模(ods、dwd、dws、dwt、ads)4.  分析(设备、用户、地区)等电商的核心主题,需要有近100个指标支持5. 采用即席查询工具,随时进行指标分析(亚秒级、秒级的大数据量查询)6. 整个集群系统的任务调度(特定的任务不需要任务去每天重复操作)7. 集群的整体性能监控,并在异常的时候进行报警。8. 元数据管理

项目架构

一、技术选型

二、系统数据流程设计

三、系统技术版本选择

四、服务器选型

五、集群规划

数据来源

数据埋点

  1. 主流埋点方式(了解)

  目前主流的埋点方式,有代码埋点(前端/后端)、可视化埋点、全埋点三种。
代码埋点是通过调用埋点 SDK 函数,在需要埋点的业务逻辑功能位置调用接口,上报埋点数据。例如,我们对页面中的某个按钮埋点后,当这个按钮被点击时,可以在这个按钮对应的 OnClick 函数里面调用 SDK 提供的数据发送接口,来发送数据。
  可视化埋点只需要研发人员集成采集 SDK,不需要写埋点代码,业务人员就可以通过访问分析平台的“圈选”功能,来“圈”出需要对用户行为进行捕捉的控件,并对该事件进行命名。圈选完毕后,这些配置会同步到各个用户的终端上,由采集 SDK 按照圈选的配置自动进行用户行为数据的采集和发送。
  全埋点是通过在产品中嵌入 SDK,前端自动采集页面上的全部用户行为事件,上报埋点数据,相当于做了一个统一的埋点。然后再通过界面配置哪些数据需要在系统里面进行分析。

  1. 埋点数据日志结构

   我们的日志结构大致可分为两类,一是普通页面埋点日志,二是启动日志。
  普通页面日志结构如下,每条日志包含了,当前页面的页面信息,所有事件(动作)、所有曝光信息以及错误信息。除此之外,还包含了一系列公共信息,包括设备信息,地理位置,应用信息等,即下边的 common 字段。

  1. 埋点数据上报时机
      埋点数据上报时机包括两种方式。
      方式一,在离开该页面时,上传在这个页面发生的所有事情(页面、事件、曝光、错误等)。优点,批处理,减少了服务器接收数据压力。缺点,不是特别及时。
      方式二,每个事件、动作、错误等,产生后,立即发送。优点,响应及时。缺点,对服务器接收数据压力比较大

业务数据

一般就是数据库里面的数据

总结

上面是整个数据仓库的设计,从概念、需求、技术选型等着手考虑,完全适用于中小型企业的实际生产,接下来几篇博客会详细讲解整个数仓搭建过程;


感谢大家阅、互相学习;
感谢尚硅谷提供的学习资料;
有问题评论或者发邮箱;
gitee:很多代码仓库;
1449697757@qq.com

大数据-数仓学习总结与分享相关推荐

  1. 大数据/数仓面试灵魂30问

    1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...

  2. 大数据数仓高级面试题整理

    大家好,给大家整理了一下大数据数仓高级面试题,希望大侠们能够喜欢. 数仓高内聚低耦合是怎么做的 定义 高内聚:强调模块内部的相对独立性,要求模块内部的元素尽可能的完成一个功能,不混杂其他功能,从而使模 ...

  3. 【大数据数仓项目集群配置 一】

    本文用于记录我的第一次内网大数据集群配置过程. 本篇主要实现基础配置. 配置使用的软件版本和脚本参考自尚硅谷,链接如下: 链接: https://www.bilibili.com/video/BV1r ...

  4. Python+大数据-数仓实战之滴滴出行(二)

    Python+大数据-数仓实战之滴滴出行(二) 1. 数据转移 #验证sqoop是否工作 /export/server/sqoop-1.4.7/bin/sqoop list-databases \ - ...

  5. 大数据数仓建模(3)

    大数据数仓建模(3) 2.2.6 人员配置参考 1.旁敲侧击的问你到底做过没有 2.你们大概规模,数据量 1整体架构 属于研发部/技术部/数据部/基础平台部,我们属于大数据组,其他还有后端项目组,前端 ...

  6. 大数据/数仓面试灵魂30问(转)

    1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...

  7. Python + 大数据 - 数仓实战之智能电商分析平台

    Python + 大数据 - 数仓实战之智能电商分析平台 1. 项目架构 2. 数据仓库维度模型设计-事实表 事实表的特征:表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一 ...

  8. Python+大数据-数仓实战之滴滴出行(一)

    Python+大数据-数仓实战之滴滴出行(一) 1. 项目架构图 1.1 数据流程处理 1.2 数仓分层 1.3 创建数据库 在Hive中创建数据库-- 创建ods库 create database ...

  9. 小白篇(十七):大数据数仓常规-规范

    获取原文 简短介绍 大家好,了解了Hue.hive.sqoop.kylin.shell等等一系列工具知识之后,是不是对于大数据的开发有了一定的认知了呢?那么今天分享下常规数仓开发规范.都是比较通用的, ...

最新文章

  1. 《程序员》2007第2期,新产品工具点评 特别推荐“万能数据库查询分析器”发布...
  2. 理解分布式系统中的缓存架构(下)
  3. java 气泡 提示插件_Java气泡提示功能实现
  4. eShopOnContainers 看微服务 ②:配置 启动
  5. springboot点击运行没反应,什么都不显示的解决方式
  6. php连接mssql数据库的几种方式
  7. 软件概要设计与详细设计的区别
  8. 【无标题】Kafka副本管理—— 为何去掉replica.lag.max.messages参数
  9. 项目搭建 windows_08. SpringCloud实战项目-配置Git
  10. C语言的那些小秘密之【内存分配】
  11. php如何获取当前几号,PHP如何获取当前时间
  12. 数值方法与计算机方法是,计算机数值方法.pdf
  13. Basic Test Knowledge-Difference between UAT and usability testing?
  14. Android 如何屏蔽返回键和Home键
  15. Tikhonov regularization 吉洪诺夫正则化(L2正则化)
  16. 重复启动Tomcat时,大概率出现Deploying web application direct
  17. mysql命令行集锦
  18. 5/17/2015 今週日本語勉強の纏め
  19. 年化费率和年利率的区别
  20. Eclipse Helios(3.6.2)下载地址

热门文章

  1. 电商篇 | 公众号对接商城+微社区,强强联合!
  2. linux中i2c的ioctl,write,read函数的使用
  3. 大家都来鄙视吧![劳斯丹顿] — 手表中的劳斯莱斯
  4. Oracle之数据完整性
  5. wx is not defined JS里出这个错,是因为没包含微信JSSDK文件
  6. 在线Excel转SQL工具
  7. 2022年二级建造师施工进度计划的类型及其作用测试卷及答案
  8. u盘固定盘符_winpe系统下固定U盘盘符的方法
  9. 条形码设计软件BarTender实用教程——配置文档常见问题解答(一)
  10. ACL‘22杰出论文:Prompt范式有bug!