数仓day01

1. 该项目适用哪些行业?

  主营业务在线上进行的一些公司,比如外卖公司,各类app(比如:下厨房,头条,安居客,斗鱼,每日优鲜,淘宝网等等)

  这类公司通常要针对用户的线上访问行为、消费行为、业务操作行为进行统计分析,数据挖掘!以支撑公司的业务运营,提高业务转化率,改善公司运营效果

补充概念: 

  数据挖掘:数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性(属于Association rule learning)信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标

2. 我准备选择一个什么样的业务公司来写这个项目?

  线上商城

3. 项目中主要开发哪些模块?

  • 数据仓库

  作为数据的管理和运算中心

  • 推荐系统

  用于个性化推荐,对不同的人,在不同的场景中推荐不同的物品  

  • 用户画像系统

  用于支撑精细化运营;比如针对不同人群(发放不同的优惠券、制定不同的打折规则、推行不同的营销活动),针对流失概率大的人群进行挽留等等

  以上所述的数据仓库系统、用户画像系统、推荐系统,整体上来说,需要一个大型的综合性的数据处理系统;该数据处理系统可以使用离线计算方式实现,也可以使用实时计算方式实现;更多的是离线和实时结合起来实现;我自己的公司是根据不同的需求场景,灵活使用离线和实时技术:

  • 离线:系统化的,计算的数据时间跨度长的,运算量大的任务
  • 实时:对时效要求高的需求

4. 画出项目中的整体技术架构

  • 数据采集阶段:

  flume(各业务的日志数据)、sparksql(各业务的数据库数据)======>HDFS

  •  数据预处理阶段(ETL):

  spark(一般是只用这个,效率高) :使用sparkcore,对数据进行预处理,从而得到自己想要的数据格式

  mapreduce:效率低,一般不用

  • 数仓运算阶段:

  sparksql+hive

5. 项目内核之上的应用系统都有哪些?

   OLAP分析平台(需要运营分析统计报表) ,精准营销平台(需要用户画像标签表),精准广告投放系统(用户画像标签表),个性化推荐系统(用户画像表,相似度分析结果表,算法结果表)

6. 运营分析平台你能稍作描述吗?

   此运营分析系统是依托公司的数据处理系统运作的,其一般有两个功能:(1)展示固定的报表数据(提前每天固定通过离线技术Hive算好的)(2)交互式联机数据分析OLAP(在页面上自定义报表需求,实时得到报表结果)

7. 项目中处理的数据有哪些种类?

   业务数据,日志数据

9. 你们埋点日志中收集的事件都有哪些?能举几个例子吗?

   启动事件,退出事件,收藏事件,评分事件,页面浏览事件,元素点击事件,激活事件,登录事件等等

10. 什么是业务数据?业务数据都是怎么产生的?

   业务系统中业务功能所需要或者是产生的数据

11. 能举例说明你们公司的业务数据有哪些吗?

   内容管理数据,订单管理数据,产品管理数据,售卖管理信息

12. 数据库是指的什么?都有哪些应用场景?

   通常指的是数据库软件,比如mysq,mongodb,redis等等

  • 应用场景1:联机事务处理

   数据库软件用的最多的应用场景就是联机事务处理OLTP(online transaction process)。联机事务处理的要求:第一,时刻保持联机在线状态,而且要求各种操作(增删改查)请求得到实时响应;第二,能够支撑强有力的事务控制(事务的四个特性:原子、一致、隔离、持久)

补充:事务的四种隔离机制

 小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表

  •  应用场景2:数据分析

  注:数据库软件也能用来做数据分析

数据分析又可分为:(1)联机数据分析(OLAP)(2)离线数据分析    一般数据分析是混合了这两种

13.数据库和数据仓库有什么联系和区别?

 数据库:通常指的是数据库软件,比如mysq,其主要用于联机事务处理,也可以用于数据分析

 数据仓库:是一个面向主题的、集成的、相对稳定的、反应历史变化的数据集合,用于支持管理、运营决策。

在业务系统中的联机事务处理数据库,随着业务运行时长的增长,库中的业务数据越来越多,会产生两个问题:

(1)联机事务处理的速度会越来越慢

(2)针对这么大量的数据进行报表分析会耗费太多和IO资源,导致联机事务被处理被阻塞

由此,引入数据仓库的概念:

  将联机事务处理数据库中的数据不断导入另外一个数据库系统进行存储,而且也可以在这“另一个数据库”系统上对各种长时间跨度数据进行复杂数据分析、统计。这“另一个数据库”就是承担了“数据仓库”的角色

而根据构建“数据仓库”的软件特性不同,数据仓库所支持的数据分析性能也不同

(1)如果是用各类关系型数据库如mysql、oracle等构建的数据仓库,可以支持离线数据分析,也可以支持联机数据分析

(2)如果是hive这种软件构建的数据仓库,只能支持离线数据分析

14.数据分析有哪两种形式?分别有什么区别或特点?

(1)联机数据分析

  此类分析要求时刻保持联机在线状态,而且要求各种操作(增删改查)请求得到实时响应,其与业务系统交互的数据库交互,分析的数据量规模不大

(2)离线数据分析

  一般是提前将数据分析好,不讲究时效性,多用于海量的数据的分析,因此与之交互的数据在存有大量数据的数据仓库中

原文地址:https://www.cnblogs.com/jj1106/p/12818106.html