【黑马甄选离线数仓day01_项目介绍与环境准备】

news2025/1/22 9:33:15

1. 行业背景

1.1 电商发展历史

电商1.0: 初创阶段
    20世纪90年代,电商行业刚刚兴起,主要以B2C模式为主,如亚马逊、eBay等
​
电商2.0: 发展阶段
    21世纪初,电商行业进入了快速发展阶段,出现了淘宝、京东等大型电商平台,同时也出现了C2C模式和O2O模式
​
电商3.0: 成熟阶段
    2010年代,电商行业进入了成熟阶段,各大电商平台开始加强自身的品牌建设和服务体系,同时也出现了跨境电商、社交电商、农村电商等新兴模式。
​
电商4.0: 新零售阶段
    2016年以后,电商行业进入了电商阶段,以阿里巴巴、京东等为代表的电商巨头开始布局线下实体店,实现线上线下的无缝衔接,推动电商行业向更高层次发展。

1.2 什么是电商4.0

电商4.0其实就是新零售阶段, 主要由三部分组成: 线上服务、线下体验、新物流

线上服务:
    线上服务指的是通过互联网平台提供的购物、支付、物流等服务
​
线下体验:
    线下体验则是指在实体店铺中提供的商品展示、试穿试用、售后服务等体验
​
新物流:
    新物流则是指通过物流技术和网络优化提高物流效率和服务质量

1.3 电商企业类型

  • 1- 电商服务商

  • 2- 货架、售货机

  • 3- 无人便利店

  • 4- 线上线下实体店

  • 5- 生鲜、果蔬平台

1.4 生鲜电商行业概述

生鲜产品具有高频刚需的特点, 是具有即时性需求, 目前在线下占比要远高于线上, 未来线上生鲜销售将会是庞大的市场

各大头部企业也可以着手布局生鲜市场

1.5 生鲜电商行业发展趋势

随着消费者网购生鲜习惯逐渐养成, 以及目前直播带货等多重作用下, 生鲜市场线上渗透率将不断提高

2. 项目业务流程与需求说明

2.1 公司介绍

黑马甄选与2016年7月成立, 发展至今经过6年时间, 门店遍布全国30多个城市, 超过1300家门店

目前主营业务线有五条: ==门店 B2C电商 批发 大客户团购 商品自营==

2.2 业务介绍

2.3 项目背景

随着生鲜电商行业的迅速发展,公司累计了大量数据。为了从已有的数据中挖掘出有价值的信息,搭建了黑马甄选大数据处理平台。主要对各业务线的数据进行分析,从而便于精细化管理,最终提高用户数量及活跃度,提高商品销量,降低运营成本。

2.4 需求说明

==本次项目共计有四大需求: 销售需求 会员需求 供应链需求 商城需求==

  • 销售需求:

划分为线上销售流程和线下销售流程,业务部门需要全面分析线上线下的销售情况,包括销售、取消、退款的金额、成本、单量、SKU以及活动的情况。
  • 会员需求:

因为黑马甄选是生鲜电商业务,包括线上和线下,所以会员也分为线上会员和线下会员。
主要统计会员的注册、消费、充值、余额情况。注意线上会员也可以在线下消费,使用相同的手机号即可。
  • 供应链需求

划为为要货到货流程与商品划拨流程
​
为精细化运营,业务部门严格管控供应链,要求计算:库存的数量、金额、SKU、周转、动销、损耗数量和金额、盘点差异以及要货、收货、配送、退货、退配、调入、调出、系统调整的数量和金额。
  • 商城需求

商城需求指的是对商城的访问日志进行分析,主要是流量数据和交易数据。如何评价线上平台的好坏,UV/PV/新访客数量/跳出数/浏览时长等都是非常重要的指标

3. 项目架构详解

3.1 离线数仓架构方案

  • 经典传统数仓架构

阶段一: 1991年 比尔-恩门(bill inmon)出版第一版数据仓库的书, 标志数据仓库概念的确立, 称为恩门模型
    主张自上而下的建设企业级数据仓库, 建设过程中需要满足三范式要求
    从分散异构的数据源 -> 数据仓库 -> 数据集市
    
    存在问题: 
        由于三范式的建模,导致在数据分析中数据易访问性和系统的性能均收到影响
​
阶段二: 拉尔夫·金博尔(ralph kimball)提出自下而上的建立数据仓库,整个过程中信息存储采用维度建模而非三范式
    从数据集市-> 数据仓库 -> 分散异构的数据源
    
    优点: 
        提出了维度建模新思路, 完全以数据分析便利性为前提建设, 推出了事实-维度模型
        以最终任务为导向, 需要什么, 我们就建立什么
    
    弊端:
        随着业务的发展, 导致数据集市越来越多, 出现多个数据集的数据混乱和不一致的情况
​
阶段三: 1998年比尔-恩门(bill inmon)推出全新的CIF架构, 核心将数仓架构划分为不同的层次以满足不同场景的需求
    如: ODS  DW  DA层等
    
    从而明确各个层次的任务分工, 避免原有数据混乱和不一致的问题
    
    而这种思想已经成为截止到今天的建设数据仓库的指南
  • 离线大数据数仓架构

    大数据中的数据仓库构建就是基于经典数仓架构而来,使用大数据中的工具来替代经典数仓中的传统工具,架构建设上没有根本区别

3.2 项目架构图

image-20231120144451099

集群管理工具: Cloudera Manager
数据源: 业务系统的Mysql与SQLServer数据库; 
数据抽取: 使用DataX实现关系型数据库和大数据集群的双向同步; 
数据存储: HDFS 
计算引擎: Hive
交互查询引擎: Presto
OLAP: PG
数据可视化: Fine Report
调度系统: DolphinScheduler(海豚调度)

面试中: 你能否讲一下这个项目的基本介绍呢? 你们这个项目的架构大概是再怎么样?

项目介绍: 给谁做的项目  是一个什么项目 项目的简单的背景 项目最终成果  (简历中, 项目介绍部分要体现的内容)

项目架构: 
	技术架构: 本次项目主要涉及了那些组件
	
	数据流向: 数据从哪来 --> 到哪去 + 各个组件起到了什么作用

本次项目中主要负责的点:
	
	后期学到了去整理自己擅长

你可以带着面试官走, 让他一直听你说, 他只需要回复  yes

小作业: 完成架构图的梳理(自己制图) –> 讲解项目介绍和项目架构

11.21号晚: 与各位组长

11.22号晚上: 各组自行安排

3.3 人员规划

开发人员:10个人

职责划分:
	经理(1个人)(甲方:技术经理、乙方:项目经理)
	产品(1个人)
	大数据开发(4个人)
	运维(1个人)(DBA/集群搭建与维护/安全等工作)
	测试(1个人)
	前端(1个人)
	Java工程师(1个人)

3.4 开发周期

总周期: 八个月左右
阶段划分:
	需求调研、评审(7周)
	设计架构(2周)
	需求开发(16周)
	集成测试(3周)
	上线部署,试运行,调优(4周)

3.5 项目服务器架构选型

3.5.1 Hadoop发行版本选型

最终选择: CDH平台

兼容性 稳定性 强大的管理平台 基础功能免费

3.5.2 服务器的选型

本次项目中主要以物理机方案

考虑点:
	1- 机器成本考虑: 
		物理机: 以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,单台报价4W出头,需考虑托管服务器费用。一般物理机寿命5年左右, 平均每年 8k
		
		云主机: 以阿里云为例,差不多相同配置,每年5W
		
	
	2- 运维成本考虑
		物理机: 需要有专业的运维人员
		
		云主机: 很多运维工作都由阿里云已经完成,运维相对较轻松
		
		物理机运维成本更高


从长远考虑, 随着运维人员的减少, 成本逐步降低, 而云主机成本, 随着依赖程度越高, 成本也会逐步提升, 并且本地物理机数据安全性更高
3.5.3 集群数据规模

业务情况说明:

用户量:1000W
日活:线上80W + 线下45W(线下只统计购买人数)
门店数量:1300家
门店日均单量:线上100单 + 线下350单 
日均营业额:线上5000元 + 线下10000元

每日增量数据:

业务数据:
平均每条订单及其相关表(订单、人员、支付、物流、库存等等)的存储量:20K
20K * 58W = 11g

日志数据:
每条数据0.5k-1.5k,平均1k,平均每人产生30条日志
1k * 80w * 30条 = 23g

规模计算(了解)

知道最终需要112TB空间

服务器规划:

所以存储+计算服务器需要大概11台(晚上跑批任务,白天进行数据清洗以及查询、交互分析),
因为有Presto基于内存的计算任务,所以计算节点需要再加5台,
另外加上管理服务器3台,
测试服务器3台,
总共需要22台。
3.5.4 项目服务器架构选型

3.5.5 测试服务器规划

因服务器资源有限,考虑到大部分学员电脑性能配置不高,该项目采用二台服务器进行演示学习,服务器配置如下:

各软件安装节点说明:

注意:

打开虚拟机-> 选择我已移动

用户名: root

密码: 123456

4. 项目环境部署

4.1 CM介绍与架构

cloudera manager 是一款大数据的统一监控管理平台, 此平台主要是对cloudera公司旗下CDH版本软件进行管理工作, 提供的服务: 统一的监控, 自动化部署, 对CDH软件进行相关管理

Server:Cloudera Manager的核心是Cloudera Manager Server。提供了统一的UI和API方便用户和集群上的CDH以及其它服务进行交互,能够安装配置CDH和其相关的服务软件,启动停止服务,维护集群中各个节点服务器以及上面运行的进程。
Agent:安装在每台主机上的代理服务。它负责启动和停止进程,解压缩配置,触发安装和监控主机
Management Service:执行各种监控、报警和报告功能的一组角色的服务
Database:CM自身使用的数据库,存储配置和监控信息
Cloudera Repository:云端存储库,提供可供Cloudera Manager分配的软件
Client:用于与服务器进行交互的接口
    1) Admin Console:管理员可视化控制台
    2) API:开发人员使用API可以创建自定义的Cloudera Manager应用程序

CM的web页面

链接: http://hadoop01:7180/cmf/home
用户名: admin
密码: admin

4.2 部署项目环境

此部分大家可直接参考<<00黑马甄选离线大数据平台项目环境部署文档>>即可

4.3启动环境

先配置本地映射

进入C:\Windows\System32\drivers\etc目录,把以下内容复制粘贴到hosts文件内

192.168.88.80 hadoop01 hadoop01.itcast.cn
192.168.88.81 hadoop02 hadoop02.itcast.cn

配置虚拟机内存

演示16g内存情况

设置hadoop01内存10g

设置hadoop02内存4g

大于16g的同学,根据实际情况随时调整即可

启动并连接CM

先依次启动hadoop01,hadoop02虚拟机,然后复制以下CM链接到浏览器,进入CM管理页面

CM页面链接: http://hadoop01:7180/cmf/home 用户名: admin 密码: admin

点击主机查看内存使用情况:

注意:

如果内存不够用的同学,建议Cloudera Management Service里面的4个服务都关闭

关闭CM4个服务后,页面如下:

4.4设置交换内存

参考笔记中的 Linux中虚拟内存的配置 文档

5.业务数据介绍与准备

项目涉及核心业务表:

项目一共有有31张表,其中包含8张维度表,23张业务核心表。

其中订单表和库存表存储在SQL Server中,其他表存储在MySQL中。

导入业务到指定的数据库中(此操作在实际工作中不存在):

连接数据库

mysql:
    IP: 192.168.88.80
    端口号: 3306
    用户名: root
    密码: 123456

sqlserver:
    IP: 192.168.88.80
    端口号: 1433
    用户名: SA
    密码: ITheima123
DG连接MySQL

注意: 虚拟机是mysql5,所以选择mysql5和mysql8的驱动jar包都可以连接上,只要保证连接上就行!!!

注意: 后续如何基于这个驱动连不上, 可以使用 8的版本的试试

DG连接SqlServer

准备业务数据

准备MySQL业务数据

连接成功后, 执行数据导入:

结果显示:

准备SQLServer业务数据

和mysql数据一样,右键选择Run SQL Script -> 去选择黑马甄选离线数仓项目完整资料\06业务数据集\sqlserver数据\mssql_load.sql

最终的结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1240059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

日本it就职培训机构,日本IT行业的三种类型

日本的IT产业一直保持增长趋势&#xff0c;市场规模逐年增加&#xff0c;在日本所有产业中占据很大比例。由于日本老龄化严重&#xff0c;日本国内的IT人才无法满足需求&#xff0c;为缓解这一问题&#xff0c;日本将引进外国优秀IT人才作为一项国策&#xff0c;日本IT行业不仅…

Vue-报错No “exports“ main defined in xx

vue报错&#xff1a;No "exports" main defined in F:\wjh\vue#Practice\EasyQuestionnaire-web-master\EasyQuestionnaire-web-master\node_modules\babel\helper-compilation-targets\package.json 1.在文件中找到该路径的package.json文件&#xff0c; 2.按照提示…

Vue 重写push和replace方法,解决:Avoided redundant navigation to current location

当我们使用编程式路由导航跳转路径时&#xff0c;如果我们两次携带同样的参数进行跳转&#xff0c;会进行页面报错&#xff1a; 那产生这个问题的原因是什么呢&#xff1f; 我们接收并输出调用push方法返回的结果&#xff1a; 会发现这是一个Promise对象 我们都知道&#xff…

【AI】行业消息精选和分析(11月22日)

今日动态 &#x1f453; Video-LLaVA&#xff1a;视觉语言模型革新&#xff1a; - 图像和视频信息转换为文字格式。 - 多模态理解能力&#xff0c;适用于自动问答系统等。 &#x1f4c8; 百度文心一言用户数达7000万&#xff1a; &#x1f50a; RealtimeTTS&#xff1a;实时文本…

【EI会议征稿】2024年新能源技术与电力系统国际学术研讨会(NETPS 2024)

2024年新能源技术与电力系统国际学术研讨会&#xff08;NETPS 2024&#xff09; 2024 International Symposium on New Energy Technologies and Power Systems 2024年新能源技术与电力系统国际学术研讨会&#xff08;NETPS 2024&#xff09;将于2024年3月22-24日在中国南京隆…

Microsoft Dynamics 365:Dynamics NAV 2016 Setup 安装(澳洲版)

今天与大家一起分享 CU 06 for Microsoft Dynamics NAV 2016 的 Setup 安装&#xff08;澳洲版&#xff09;的安装&#xff0c;步骤截图如下。包括下载地址、操作、安装步骤、问题解决等。 1、下载地址&#xff08;微软官方&#xff09; https://support.microsoft.com/en-us…

算法——滑动窗口(Sliding Window)

一、背景知识 滑动窗口算法&#xff08;Sliding Window&#xff09;&#xff1a; 在给定数组 / 字符串上维护一个固定长度或不定长度的窗口。可以对窗口进行滑动操作、缩放操作&#xff0c;以及维护最优解操作。题型一&#xff1a;固定长度题型二&#xff1a;不固定长度 二、例…

spring-boot-admin-starter-server监控springboot项目

文章目录 场景实现具体操作展示 场景 监控三件套Prometheus、Grafana、Alertmanager 部署起来太复杂,如果公司没有运维而且项目很小就可以使用spring-boot-admin-starter-server替代。这个包使用起来还是很简单的, 下面就实现一个对springCloud项目的监控 实现 参考 项目 具体操…

一篇五分生信临床模型预测文章代码复现——Figure 10.机制及肿瘤免疫浸润(六)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

RabbitMQ快速入门(简单收发消息)

文章目录 前言一、数据隔离1.用户管理2.virtual host 二、控制台收发1.交换机2.队列3.绑定 三、编程式收发1.依赖和配置2.收发信息 总结 前言 1.了解数据隔离 2.RabbitMQ控制台收发信息 3.SpringBoot整合RabbitMQ收发信息 一、数据隔离 1.用户管理 点击Admin选项卡&#xff0…

配置静态 Eth-trunk

1、需求 1&#xff09;交换网络中存在2个 VLAN – 10 和 20 2&#xff09;每个VLAN的IP地址为&#xff1a;192.168.xx.0/24&#xff08;xx为 vlan 号&#xff09; 3&#xff09;对交换机之间的链路进行链路捆绑&#xff0c;增加互联带宽 4&#xff09;确保同 VLAN的 PC 之间互…

第十五章---I/O(输入/输出)

15.1输入输出流 流是一组有序的数据序列&#xff0c;根据操作的类型&#xff0c;可分为输入流和输出流两种。I/O(Input/Output,(输出)流提供了一条通道程序&#xff0c;可以使用这条通道把源中的字节序列送到目的地。虽然 I/O 流疆盘文件存取有关&#xff0c;但是程序的源和目…

Doris动态分区(十四)

动态分区是在 Doris 0.12 版本中引入的新功能。旨在对表级别的分区实现生命周期管理&#xff08;TTL&#xff09;&#xff0c;减少用户的使用负担。 目前实现了动态添加分区及动态删除分区的功能。动态分区只支持 Range 分区。 原理 在某些使用场景下&#xff0c;用户会将表…

坚鹏:湘潭市银行业协会BLM银行数字化转型战略培训圆满结束

在数字化转型背景下&#xff0c;湘潭市银行业协会为了落实监管政策《关于银行业保险业数字化转型的指导意见》&#xff0c;充分认识到学习银行银行数字化转型战略的价值和重要性&#xff0c;特别举办《2023年数字化转型战略专题培训班》。为了改变大家的认知&#xff0c;为了拓…

Ajax入门-Express框架介绍和基本使用

电脑实在忒垃圾了&#xff0c;出现问题耗费了至少一刻钟time&#xff0c;然后才搞出来正常的效果&#xff1b; 效果镇楼 另外重新安装了VScode软件&#xff0c;原来的老是报错&#xff0c;bug。。&#xff1b; 2个必要的安装命令&#xff1b; 然后建立必要的文件夹和文件&…

回转窑无线测温系统解决方案

方案概述&#xff08;以回转窑监测为例&#xff09; 回转窑通常使用在热电厂、钢铁厂、冶金厂及干燥设备行业。而这些行业一般具有高温、潮湿、粉尘、高压、不便布线或现场无法提供电源等环境特点。同时&#xff0c;回转窑在工作中&#xff0c;具有旋转、高温等特点。为此&…

upload-labs关卡12(基于白名单的%00截断绕过)通关思路

文章目录 前言一、靶场需要了解的前置知识1、%00截断2、0x00截断3、00截断的使用条件1、php版本小于5.3.292、magic_quotes_gpc Off 二、靶场第十二关通关思路1、看源代码2、bp抓包%00截断3、验证文件是否上传成功 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识&…

使用Java Servlet生成动态二维码

文章目录 引入ZXing库创建QRCodeServlet部署到Servlet容器拓展功能1. 动态生成二维码内容2. 调整二维码尺寸3. 错误修正级别4. 日志输出 结语 &#x1f389;欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&…

虚拟主播解决方案

虚拟主播作为一种新兴的技术&#xff0c;正在逐渐改变我们的生活和工作方式。美摄科技&#xff0c;作为行业的领导者&#xff0c;致力于为企业提供一站式的虚拟主播技术解决方案&#xff0c;帮助企业实现数字化转型。 美摄科技的虚拟主播解决方案&#xff0c;是一种将文本内容…

Spark的通用运行流程与Spark YARN Cluster 模式的运行流程

Spark的通用运行流程 集群启动后Worker节点会向Master节点心跳汇报资源Client向Driver提交APP&#xff0c;根据不同的运行模式在不同的地方创建Driver。Driver以粗粒度的方式向Master注册应用并申请资源&#xff08;在Application执行之前&#xff0c;将所有的资源申请完毕&…