# E-CommerceWarehouse **Repository Path**: SWK18/E-CommerceWarehouse ## Basic Information - **Project Name**: E-CommerceWarehouse - **Description**: 实现了一整套电商数仓的搭建,包括数据采集平台的搭建,将用户的行为数据分为四层分别分层搭建,并实现业务数据库的分层搭建,针对数据仓库中的数据进行,留存、转化率、复购率、GMV、活跃等报表分析,使用当下主流程数的框架,这个项目采用Apache版本的框架实现,后续会上传CDH版本的框架实现,并实现最终的数据可视化。 - **Primary Language**: HTML - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-01-22 - **Last Updated**: 2022-01-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # E-CommerceWarehouse ## 【项目环境】  Windows10、Centos7(三集群24G+8核)、Idea2019.3、Maven3.3.9、Flume1.9、kafka2.11-2.1.0、jdk1.8、zookeeper3.4.10、hadoop2.7.2、Hive1.2.1、Mysql5.7、Sqoop1.4.6、presto0.196、imply2.7.10、ApacheKylin2.5.1、Hbase1.3.1 ## 【项目需求】 + 数据采集平台搭建 + 实现用户行为数据仓库的分层搭建 + 实现业务数据仓库的分层搭建 + 针对数据仓库中的数据进行,留存、转化率、GMV、复购率、活跃等报表分析 + 实现Web页面的可视化操作 ## 【用户行为数据采集部分】  模拟日常电商网站的数据,编写脚本生成埋点数据,并通过爬取京东的真实商品作为我们的数据来源,保证更准确的模拟日常生产,并且搭建我们整个Apache项目框架,在这个阶段对我们整体框架进行基准测试,保证正常运行 ## 【用户行为数据仓库】  在这个阶段我们将数据分为四层,目的是:把复杂的问题简单化、减少重复开发、隔离原始数据,以下分别是这四层 1. ODS层(原始数据层):原始数据层,存放原始数据,直接加载原始数据、日志,数据保持原貌不做处理 2. DWD层(明细数据层):结构和粒度与原始表保持一致,对ODS层数据进行清洗(去除空值,脏数据,超过极限范围的数据) 3. DWS层(服务数据层):以DWD层为基础,进行轻度汇总,一般聚集到以用户当日,设备当日,商家当日,商品当日等等的粒度 4. ADS层(数据应用层):ADS层为各种统计报表提供数据,也可称为APP层、DM层  在这一阶段我们会一层一层的处理我们的原始数据,根据业务要求最终得到结果,并编写相应的脚本简化我们的操作 ## 【系统业务数据仓库】  这一阶段主要是模拟电商网站的业务流程,进一步细化我们的业务逻辑,主要涉及到实体表、维度表、事务型事实表、周期型事实表、雪花模型、星座模型等,仍然是进一步处理数据,得到GMV成交总额、转化率及漏斗分析、品牌复购率等,最终使用Azkaban调度整个任务作业流程,实现数据的Web页面可视化,方便我们的查询并将数据更好的展示给用户 ## 【即席查询数据仓库】  这一阶段主要是为了实时的查询我们的数据,比如产品经理需要这一时刻的数据,所以我们采用Presto,这是一个开源的分布式SQL查询引擎,数据量支持GB到PB字节,主要用来处理秒级查询的场景,并使用了Druid,它也是一个快速的列式分布式的支持实时分析的数据存储系统,还有ApacheKylin,它是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,它能在亚秒内查询巨大的Hive表。我们三个都会采用,在不同的业务场景也会用不同的作用,这阶段主要是在原有架构的基础上增加功能,完善我们之前已经实现的功能,并进一步细化整个作业流程。