项目整体思路和架构

项目最终成果展示:

本项目主要参考尚硅谷的Flink实时数仓项目完成,最近又重新跑了一遍,项目整体我会在后续上传到码云中,
也会逐步同步更新到博客中来,里面不仅包含了整体代码和整个集群搭建过程,也包含了一些我自己的理解和测试过程
希望大家能喜欢,以后我也会把我整个的大数据学习过程和笔记做一个分享。非常欢迎一起学习大数据的朋友,
大家可以一起交流和学习。

实时数仓分层思想

 这里采用的架构和离线数仓架构不同,整个项目共分为6个层来做,但注意:这些层级之间并不是纯粹的
上下关联关系:也不是一定非要有这6个层级;

用一张图来简单说明:

➢ ODS(原始数据层)原始数据,日志和业务数据。这里可以简单理解为生产环境中日志数据和业务数据生成之后的一个汇集地,是大数据数仓数据初始化的第
一步;➢ DWD(细节数据层)根据数据对象为单位进行分流,比如订单、页面访问等等。这一层其实就是对第一层进行了分流、过滤等操作后的数据内容,比如根据不同的业务需求把数据流分为订
单、人物、商品等不同的数据流;也可以把日志数据分为页面、启动、异常、曝光等类别;这一层的主要目的是为了把数据细化,这样方便后续的维度关联;➢ DIM(维度数据层)存储维度数据的层。有时候很多人会对维度的概念产生疑问,简单用数据分析中的知识来理解,一个维度就是一个特征,维度数
据就是一个特征对应的全部数据,维度关联就是把不同的特征放到一起,然后组成一个一个的宽表,也即我们MySql
中经常创建和查询的信息表;比如一个商品主题宽表,里面既可以包含商品类别、价格等自身的信息,还可以包含这个商品有关的订单统
计数量、时间、交易额,甚至是购买者的地区、年龄、身份等信息都能包含。我们都知道实际生产过程中这些信
息是不会自动产生在一块的,那么他们是如何产生的?难道都是后期的ETL完成的吗?这里就涉及到了维度关联
的概念,这个概念我会在后续的项目中详细讲解,这里我只讲解一个例子:假设商品表有商品ID、商品类型等信息;订单表有商品ID、订单ID、订单明细等信息;人物表有订单ID、
年龄、地区等信息;我们可以通过商品ID把商品表和订单表关联到一起,再通过这张新表的订单ID把人物表也关
联起来,这就是一个简单的维度关联概念;通过维度把一个个的表关联在一起,组成宽表;➢ DWM
对于部分数据对象进行进一步加工,比如独立访问、跳出行为,也可以和维度进行关联,形成宽表,依旧是明细
数据。我个人认为这一层是最模糊的一层概念,因为这一层仅仅只是一个数据的细化,如果数据不是很复杂,可以省略掉这一层,当然,实际生产环境可不会像是我们这个项目一样基础,所以展示在这提供参考;总体来说,这一层的数据是dwd和ods的一个简单汇集,是为了分化出某些特殊行为或者和某些数据结合形成新的明细表。➢ DWS(服务数据层)根据某个主题将多个事实数据轻度聚合,形成主题宽表。这一层就是刚才提到的宽表存储,这里的数据表可以理解成一个一个的需求,比如我数据分析部门需要通过
商品订单来分析一个地区的偏好,那么就可以把地区表和商品表、订单表合为一个宽表,然后存储到这一层;➢ ADS把 Clickhouse 中的数据根据可视化需要进行筛选聚合。这一层就是数据最终拿来运用的地方了,数据可以做可视化,也可以通过后端知识,提供数据接口给数据
分析部门使用;

项目流程图:

   这里不对这个图做太多讲解,了解的自然一目了然,不了解的希望看到之后的内容,再返回来参考这张图,一定会豁然开朗。

以下是我觉得整个项目中经常要用到的信息的汇总以及一些经常测试时要注意的点:

//kafka中的Topicods_base_log //产生的日志数据直到发到kafka的日志主题
ods_base_db_m //产生的业务数据直接发到kafka的业务数据接收主题dwd_start_log //log日志经过Flink分流后的dwd层的启动log主题
dwd_display_log //log日志经过Flink分流后的dwd层的曝光log主题
dwd_page_log //log日志经过Flink分流后的dwd层的页面log主题
dwd_order_info //事实数据中的订单数据
dwd_order_detail //事实数据中的订单明细数据
dwd_payment_info //实时数据中的订单数据    dwm_unique_visit //uv计算和过滤后数据发送主题
dwm_user_jump_detail //跳出明细计算后数据接收主题
dwm_order_wide //维度关联后的订单宽表数据   dws_product_stats //dws层商品主题宽表//clickhouse表:
visitor_stats_0709 访客主题宽表内容
product_stats_0709 商品主题宽表数据
province_stats_0709 地区主题宽表
keyword_stats_0709 关键词主题宽表  //MySql中数据库:
maxwell:maxwell元数据库;
gmall0709:业务数据存储数据库
gmall0709_realtime:配置表信息所在数据库(动态分流)    //概念:
//SPU:标准化产品单元
SPU = Standard Product Unit (标准化产品单元),SPU是商品信息聚合的最小单位,是一组可复用、易检
索的标准化信息的集合,该集合描述了一个产品的特性,比如一台电脑的各种配置组合;
//SKU:库存量单位
SKU=stock keeping unit(库存量单位) SKU即库存进出计量的单位(买家购买、商家进货、供应商备货、工
厂生产都是依据SKU进行的),在服装、鞋类商品中使用最多最普遍。 例如纺织品中一个SKU通常表示:规格、
颜色、款式。    //clickhouse的使用:
启动服务:(先开启zk集群)
sudo systemctl start clickhouse-server
启动客户端:
clickhouse-client -m;(加上-m可以换行写SQL语句)
关闭服务:
service clickhouse-server stop;//redis的使用;
redis-server ../redis.conf
查看是否启动成功												

大数据Flink电商数仓实战项目流程全解(一)相关推荐

  1. 大数据Flink电商实时数仓实战项目流程全解(六)DWM层业务实现

    项目概要 之前我们已经通过动态分流把数据分到了我们想要的位置,为了方便后续内容的讲解方便,所以接下来我们可以把配置表的信息进行导入了,然后通过动态分流的方法,把数据发往对应的kafka主题或者是hba ...

  2. 大数据之电商数仓(2) | 项目经验之Hadoop

    目录 Hadoop项目经验 HDFS存储多目录 支持LZO压缩配置 LZO 创建索引 基准测试 Hadoop参数调优 Hadoop项目经验 HDFS存储多目录 1.确认HDFS的存储目录,保证存储在空 ...

  3. 大数据电商数仓实战v5.0 (尚硅谷)

    电商数仓实战 环境搭建快速回忆 这次详细写!------阿里云ECS云服务器抢占式 1.进入环境先创建wts用户 1.useradd wts 2.passwd wts 去/home/下查看有没有wts ...

  4. Hive电商数仓实战

    项目描述 以电商数据为基础,详细介绍数据处理流程,结合hive数仓.spark开发采用多种方式实现大数据分析. 数据源可通过日志采集.爬虫.数据库中取得,经过数据清洗转换导入数据仓库,通过数仓中数据分 ...

  5. BigBrother的大数据之旅Day 14 某项目流程

    某平台日志项目流程 架构分析 1 埋点程序把数据 以url的方式提交给nginx服务器 2 nginx服务器把日志信息(文本文件)保存到本地硬盘 3 flume,安装中nginx上通过主动方式读取日志 ...

  6. 大数据平台框架、组件以及处理流程详解

    数据产品和数据密不可分作为数据产品经理理解数据从产生.存储到应用的整个流程,以及大数据建设需要采用的技术框架Hadoop是必备的知识清单,以此在搭建数据产品时能够从全局的视角理解从数据到产品化的价值. ...

  7. 大数据电商数仓分析项目

  8. 企业级数仓构建项目一-大数据Week12-DAY1-企业级数仓构建项目一

    游戏行业数据仓库-用户行为数仓 1.数据仓库的基本概念 1.什么是数据仓库 W.H.Inmon在< Building the Data Warehouse >一书中,对数据仓库的定义为: ...

  9. 四川盛世华飞教育科技:电商设计的工作流程全解!

    作为多年的电子商务设计师,我发现不同的公司有不同的工作流程,也有各种各样的弊端.但是作为设计师,不仅要会设计,当然还要有横向和纵向的管理能力.事实上,设计师可以主动与运营和设计部门的领导沟通,优化和规 ...

最新文章

  1. 安装flex4 plug-in插件的时候遇到老是在起始处安装不起
  2. 关于学习Python的一点学习总结(42->继承list)
  3. Android Permission(授权)大全
  4. 深入理解DOM节点类型第一篇——12种DOM节点类型概述
  5. [Spring cloud 一步步实现广告系统] 21. 系统错误汇总
  6. 2017年实时更新系统hosts文件(不能访问时才会更新)不要用于非法行为 只供内部测试...
  7. xamarin.android 控件,Android 库控件 - Xamarin | Microsoft Docs
  8. java中debug使用
  9. 剖析:学思科的未来(一)
  10. 文献学习(part47)--A novel consensus learning approach to incomplete multi-view clustering
  11. python字符编码解码,文件编码解码。
  12. 审计风险控制流程的起点_【经验分享】审计整改流程体系的优化措施
  13. 我有一个朋友毕业后一直在腾讯
  14. 中国数据总线电缆市场趋势报告、技术动态创新及市场预测
  15. 边沿检测电路设计verilog
  16. TIFF图像文件格式分析
  17. 跨境电商shopee这个平台怎么样?百万shopee卖家笑了,不要再犹豫了
  18. 快速上手efficient(keras)
  19. 为何干电池是1.5v?而充电电池是1.2v?
  20. Go语言switch语句

热门文章

  1. 服务机器人技术 —— 自主定位导航
  2. WARNING: WinPcap is now deprecated (not maintained). Please use Npcap instead
  3. Autodesk CAD帮助文档总结四 DXF HEADER
  4. html奇偶行颜色,jquery实现奇偶行不同颜色的方法
  5. 射频中的IIP3、OIP3、G的关系
  6. 如何成为一个更好的开发者
  7. android 3个控件平分,Android 布局平分间距。想了好久终于找到了投机取巧的办法...
  8. 手机的无线充电有什么实际意义呢?把数据线插在无线充电底座上,然后把手机放上去?
  9. 台达plc读取变频器电流案例_DELTA台达VFD-E变频器接线图和接线注意事项
  10. 免杀Backdoor-factory