版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章零售业大数据应用案例数据科学与工程行业案例教程汇报人:目录CONTENTS123案例概述相关大数据技术用户行为日志数据和业务数据采集4数据处理和存储5数据可视化学习目标了解大数据技术(Hadoop、Spark等)在零售业中的核心价值与典型应用场景、数据采集工具(Flume、Kafka、Maxwell等)的基本原理与适用场景。掌握用户行为日志数据与业务数据的采集方法,Hive数据仓库的分层设计(ODS/DWS/DWD/DIM/ADS)与建表规范。学会搭建完整的数据采集系统(Flume+Kafka+HDFS),使用HQL创建Hive表并实现数据分析(如流量主题、用户路径分析),通过Superset制作交互式仪表盘(如复购率分析、销售趋势可视化)等。案例概述01零售业竞争愈发激烈线上电商平台凭借便捷的购物体验、丰富的商品种类吸引了大量消费者。同时,新兴的零售业态如无人便利店、社区团购等不断涌现,进一步加剧了市场竞争的复杂性。0102消费者需求多元化推动大数据应用消费者不再满足于基本的购物需求,而是追求更加个性化、多样化的购物体验。消费者从价格敏感转向价值认同,追求定制化、场景化体验(如服装私人订制、美妆肌肤检测)。03大数据技术自身的发展云计算、机器学习、人工智能等技术的不断进步,使得数据的存储、处理和分析能力得到了极大提升。案例概述本案例以大数据时代的电商企业数据分析需求为背景,搭建一个零售企业大数据分析平台,涵盖数据采集、数据存储、数据分析、数据可视化展示全流程。本案例的零售业大数据分析平台分为三个模块——采集模块、数据仓库(DataWarehouse,DW)模块和可视化模块,分别使用不同的大数据技术实现。零售业大数据分析平台相关大数据技术02相关大数据技术整合Hadoop生态(HDFS/YARN/Hive)、Spark分布式计算及Superset可视化工具,实现从原始数据到决策支持的全链路闭环。采用Flume+Kafka+HDFS实现用户行为日志、业务数据的实时采集,结合DataX(全量)和Maxwell(增量)同步业务数据至HDFS,构建Hive分层数据仓库(ODS/DWD/DWS/ADS)支撑主题分析(如流量、用户、商品主题)。Hadoop是一个开源的分布式计算框架,具有高效、可靠、可扩展等特点。Hadoop框架的核心技术包括两个部分:HDFS(HadoopDistributedFileSystem)和MapReduce。Hadoop框架还支持各种编程语言,如Java、Python、Scala等,让开发者可以根据自己的喜好和需要来选择最合适的开发语言进行开发,提高了开发效率。2.2.1Hadoop框架Hadoop大数据技术HDFS是一个分布式文件系统,用于存储大规模数据集,这些数据集通常是数千个节点上的数据块。分布式文件系统HDFSApacheHive是一个分布式、容错性强的数据仓库系统,支持大规模数据分析。如图所示,HiveMetastore(HMS)提供了一个中央元数据仓库,可以轻松地进行分析,做出有根据的、数据驱动的决策,因此它是许多数据湖架构的关键组件。Hive构建在ApacheHadoop之上,支持在S3、ADLS、GS等存储系统上存储数据,并通过HDFS进行管理。Hive允许用户使用SQL读取、写入和管理以PB级别计量的数据。数据仓库HiveYarn是ApacheHadoop生态系统中的一个资源管理器,全称为YetAnotherResourceNegotiator。它是Hadoop2.x版本中引入的,用于对计算集群中的资源进行统一管理和调度。Yarn提供了更强大的资源管理和多租户支持,可以实现不同应用程序之间的隔离、容错和动态资源分配。Yarn还支持多种资源类型,可以对CPU、内存、磁盘、网络等资源进行管理和调度。同时,Yarn也提供了RESTAPI以及命令行工具,方便用户对集群进行管理和监控。Yarn的扩展性也很好,支持第三方资源管理器和调度器的接入,使得用户可以选择适合自己业务需求的资源管理和调度策略。资源管理器YARNYarn的核心是ResourceManager和NodeManager。ResourceManager负责整个集群的资源管理和调度,而NodeManager则运行在各个节点上,负责与RM通信,管理该节点上的资源。用户通过Yarn客户端提交应用程序,ResourceManager会分配资源给NodeManager,应用程序将运行在NodeManager所在的服务器上。具体来说,用户可以通过Yarn提交MapReduce任务、Spark任务、Storm任务等作业,Yarn会自动将任务分配到可用的计算节点上进行处理。资源管理器YARN1.FlumeFlume是一个可靠、分布式的日志采集系统。它最初由Cloudera公司开发,目的是为了方便ApacheHadoop处理非结构化日志数据,如Web服务器日志、应用程序日志等。Flume采用流式数据架构,将数据从各种源头(如本地磁盘、网络Socket、JMS、HTTP等)采集到HDFS等数据存储系统中,实现了可扩展性和可靠性的数据传输。Flume采用Agent-Source-Channel-Sink的架构,其中Agent是一个守护进程,可以运行多个Source、Channel和Sink。Source负责从外部数据源读取数据,Channel提供了一个缓存队列来存储数据,Sink则负责将数据写入目标存储。通过这种方式,Flume可以实现高效、可靠的数据流传输,同时具有很好的扩展性和可配置性。2.2.2数据采集工具2.KafakaApacheKafka是一个开源的分布式事件流处理平台,可以用于高性能数据管道、实时流数据处理和实时应用程序等场景。Kafka最初是由LinkedIn公司开发的,后来成为了Apache软件基金会的顶级项目,目前应用非常广泛。Kafka提供了高吞吐量、低延迟、可扩展的消息传递系统,可以让各个应用程序之间进行高效地数据交流和数据处理。Kafka采用发布-订阅模型,数据可以从生产者端发布到Kafka,然后由消费者订阅并消费。同时,Kafka还支持数据分区和副本机制,可以提高吞吐量和容错性。Kafka的架构有三个核心部分:生产者、消费者和Kafka集群。生产者负责将数据发送到Kafka集群,消费者从Kafka集群中读取数据进行处理,Kafka集群则负责存储和转发数据。Kafka集群包括多个KafkaBroker,每个Broker都是一个独立的服务实例,可以承载多个Topic的Partition。Partition是Kafka中对数据的逻辑划分,每个Partition在多个Broker之间进行复制,以保证数据的可靠性。2.2.2数据采集工具3.DataXDataX是阿里巴巴集团旗下的一款数据集成工具,可以帮助企业快速实现异构数据源的高效接入、数据传输和数据处理。该工具支持多种数据源和目标数据存储,包括关系型数据库、NoSQL数据库、HDFS、OSS等,同时也支持多种数据文件格式和数据传输方式。DataX具有易用性、高可靠性、高性能和高扩展性等特点,适用于大规模数据集成和数据迁移等场景。该工具提供丰富的数据转换和数据清洗功能,可以满足不同数据处理需求。同时,AlibabaDataX还支持多租户模式,可以为企业提供安全、稳定的数据集成服务。2.2.2数据采集工具2.2.2数据采集工具数据变更捕获支持多种消息队列数据过滤和转换高可靠性4.MaxwellMaxwell是一个开源的MySQL数据变更捕获(CDC)工具,可以监测MySQL数据库的变更并将变更记录以JSON形式输出到Kafka、RabbitMQ等消息队列中。Maxwell提供了高吞吐量、低延迟和可靠性等特性,适用于大规模和高并发的数据变更监测场景。Maxwell的核心功能包括:2.2.3Spark分布式计算Spark采用了内存计算技术,支持在内存中进行数据操作,能够实现比传统MapReduce更快的计算速度。同时,Spark还支持多种数据源和数据格式,支持实时流处理和批处理等不同的计算场景。多种编程接口Spark提供了多种编程接口,包括Java、Scala、Python和R等,适合不同的编程人员使用和开发。其中,SparkSQL和DataFrameAPI可以方便地进行SQL查询和数据处理,MLlib和GraphX等库可以支持机器学习和图计算等不同的应用场景。强大的调度和优化Spark拥有强大的调度和优化功能,能自动将任务划分成可并行处理的小任务,并尽可能地减少数据传输和节点间通信,从而提升数据处理效率。同时,Spark也支持动态资源分配和任务优先级调度等功能,能够灵活地应对各种计算负载。高可靠性和可扩展性Spark具有高可靠性和可扩展性,支持容错机制和数据恢复等功能,能够保证计算任务的可靠性和一致性。同时,Spark还支持在不同的计算集群上进行分布式计算,可以方便地适应不同的计算需求和规模。快速的数据处理Zookeeper是一个为分布式应用提供协调服务的开源软件,它通常被用于解决分布式系统中的一些关键问题,例如:协调、配置管理、命名服务、集群管理等。下面是Zookeeper的主要功能:2.2.4Zookeeper分布式锁命名服务配置管理高可靠性命名服务命名服务分布式队列DolphinScheduler是一种分布式的、易于扩展的、易于使用的、可视化的、容错和高可用的开源DAG工作流调度系统,可以用于管理各种应用程序,并进行大规模的数据处理、ETL和机器学习等任务的调度。(1)分布式:采用分布式架构,可以水平扩展,支持大规模作业调度。(2)易于扩展:采用模块化设计,开放API,方便二次开发和定制化部署。(3)可视化:提供直观、易于使用的Web界面,可以方便用户创建、编辑和管理作业任务。(4)容错和高可用:通过主备、容错和自动切换等机制,实现了高可用和容错能力。(5)调度引擎:采用基于DAG(有向无环图)的调度引擎,支持多种调度类型和策略,如定时调度、依赖关系和优先级等。(6)支持各种应用程序:DolphinScheduler支持多种作业类型,包括Shell、Python、Spark、Hadoop、Flink、Storm、Sqoop等,并且还可以通过RESTfulAPI进行扩展。(7)监控和报警:提供全面的监控和告警功能,包括任务运行状态、资源利用率、性能指标等,还可以通过消息通知、邮件和短信等方式进行告警。2.2.5DolphinSchedulerSuperset是一个用Python编写的开源的、现代化的数据探索和可视化平台,它支持多种数据源,并提供了丰富的可视化选项、交互式仪表板和报表等功能。下面是Superset的主要特点和功能:(1)可视化:提供多种可视化选项,包括条形图、饼图、散点图、热力图、地图、仪表盘等,还支持自定义可视化组件和图表。(2)数据源:支持多种数据源,包括MySQL、PostgreSQL、Oracle、SQLServer、Hadoop、Druid、Elasticsearch、Presto等。(3)仪表板:提供交互式和可配置的仪表板,可以帮助用户快速地构建和部署数据分析和可视化应用。(4)报表:支持基于SQL语句的报表生成,可以输出PDF、CSV等多种格式的报表。(5)安全性:提供身份验证和访问控制功能,可以保护数据安全和隐私。(6)扩展性:采用模块化设计,支持自定义插件和扩展,可以与外部系统和服务集成。2.2.6Superset1.2.4车辆轨迹数据的应用场景物流配送优化分析配送车辆轨迹,改进配送路线和效率。还可以通过分析车辆轨迹数据,了解配送员的工作效率和服务质量,及时发现问题并进行改进。通过分析轨迹数据来评估消费者活动区域,以优化商业选址。连锁餐饮企业通过研究周边居民和过往车辆的移动模式,掌握目标客户的活动模式和消费倾向,选择人流密集且消费潜力大的地区开设新店,从而增强店铺的经营效果。同时,商业地产开发商也利用车辆轨迹数据来评估不同地区的商业潜力,为开发项目提供决策支持。位置选址与客流分析商业与物流应用用户行为日志数据和业务数据采集032.3用户行为日志数据和业务数据采集用户行为数据,其存在形式一般为日志文件。用户行为数据业务数据,一般是保存在结构化数据库。业务数据数据采集模块的数据源分为两种类型,一是用户行为数据,二是业务数据。用户行为数据主要是通过埋点技术获取,生产用户行为日志文件。其中前端埋点技术试再前端代码中嵌入特定代码,一边记录和分析用户行为和访问数据的技术,通过埋点,可以将用户在电商平台的行为、使用情况等数据记录下来,然后进行分析和统计,从而帮助电商平台了解用户需求,优化产品的设计和运营策略等。收集的数据主要包括页面浏览记录、动作记录、曝光记录、启动记录和错误记录。3.1用户行为日志数据采集
首先Flume将日志文件采集至Kafka消息缓存集群,然后日志消费Flume将消息队列Kafka的数据采集至HDFS。按照规划,需要采集的用户行为日志文件分布在hadoop102、hadoop103两台日志服务器,故需要在hadoop102、hadoop103两台节点配置日志采集Flume,如图2.5进行配置。日志采集Flume需要采集日志文件内容,并对日志格式(JSON)进行校验,然后将校验通过的日志发送到Kafka。3.1用户行为日志数据采集
由于业务数据在采集时,需要考虑业务数据表增量同步和全量同步两种方式。本案例采用DataX作为全量同步技术,直接将MySQL数据库中的业务数据持久化到HDFS中,而增量数据同步则采用Maxwell技术、Kafka技术和Flume。首先通过Maxwell将MySQL的增量数据采集至消息缓存Kafka集群,然后业务消费Flume将消息缓存Kafka的数据存储至HDFS。3.2业务数据采集
Maxwell的工作原理是实时读取MySQL数据库的二进制日志(Binlog),从中获取变更数据,再将变更数据以JSON格式发送至Kafka等流处理平台。MySQL的二进制日志是其服务端十分重要的日志,Binlog中保存了数据库中的数据变更记录。Maxwell利用MySQL的主从复制原理,将自己伪装成slave,从master同步数据。Maxwell的工作原理
业务数据采集具体实现:启动MySQL的Binlog创建Maxwell所需的数据库和用户修改Maxwell的配置文件Maxwell部署前需要启动MySQL的Binlog,要注意Binlog的模式为Row-based,然后重启MySQL服务。修改Maxwell的配置文件,包括数据发送的目的地、Kafka的集群地址、目标Kafkatopic和MySQL的相关配置。创建Maxwell所需的数据库和用户,Maxwell需要在MySQL中存储其运行过程中所需要的一些数据,包括Binlog同步的断电位置等。Maxwell提供了bootstrap功能来进行历史数据的全量同步,命令如下:
maxwell-bootstrap--database--table--config
同步MySQL数据到HDFS,要实现该功能,需选用MySQLReader和HDFSWriter,MySQLReader具有两种模式,分别是TableMode和QuerySQLMode,前者使用table、column、where等属性声明需要同步的数据;后者使用一条SQL查询语句声明需要同步的数据。同步MySQL数据到HDFS
数据处理和存储04数据处理和存储就是将数据采集模块持久化至HDFS的用户行为日志数据和业务数据,通过集中整合,为企业决策提公共数据支撑。当数据采集模块所采集的数据进入数据仓库中后,然后就需要对数据进行保存、清洗、合并、拆分等操作,接着需要对数据进行分层处理(ODS/DWS/DWD/DIM/ADS)并进行若主题功能分析,最后将ADS层数据导入到结构化数据中保存,以便可视化平台进行可视化展示。2.4数据处理和存储维度模型的设计步骤:(1)选择业务过程选择业务过程,在业务系统中,挑选我们感兴趣的业务过程,业务过程可以概括为一个个不可拆分的行为事件,例如电商交易中的下单、取消订单、付款、退单等,都是业务过程。通常情况下,一个业务过程对应一张事务型事实表。(3)确定维度确定维度,确定维度具体是指,确定与每张事务型事实表相关的维度有哪些。确定维度时应尽量多的选择与业务过程相关的环境信息。因为维度的丰富程度就决定了维度模型能够支持的指标丰富程度。(2)声明粒度声明粒度,业务过程确定后,需要为每个业务过程声明粒度。即精确定义每张事务型事实表的每行数据表示什么,应该尽可能选择最细粒度,以此来应各种细节程度的需求。(4)确认事实确认事实,此处的“事实”一词,指的是每个业务过程的度量值(通常是可累加的数字类型的值,例如:次数、个数、件数、金额等)。1.Hive环境搭建Hive支持多种计算引擎,其中包括MR(默认)、Tez、Spark。本案例选择Spark作为计算引擎。两种框架的整合方式可以是HiveOnSpark,也可是SparkonHive。数据处理和存储的具体实现:HiveonSparkHive既作为存储元数据又负责SQL的解析优化,语法是HQL语法,执行引擎变成了Spark,Spark负责采用RDD执行。SparkonHiveHive只作为存储元数据,Spark负责SQL解析优化,语法是SparkSQL语法,Spark负责采用RDD执行。下载并解压Spark安装文件后配置SPARK_HOME环境变量,并在Hive中创建配置文件添加如下内容:数据处理和存储的具体实现:2.Yarn环境配置因硬件资源限制,所以需要增加ApplicationMaster资源比例。容量调度器对资源队列中同时运行的ApplicationMaster的资源进行了限制,该限制通过yarn.scheduler.capacity.maximum-am-resource-percent参数实现,其默认值是0.1,表示每个资源队列上ApplicationMaster最多可使用的资源为该队列总资源的10%。生产环境该参数可使用默认值,但此处可将该值适当调大。修改内容如下:数据处理和存储的具体实现:3.ODS层ODS层的设计要点如下:数据处理和存储的具体实现:ODS层的表结构设计依托于从业务系统同步过来的数据结构。ODS层要保存全部历史数据,故其压缩格式应选择压缩比较高的,此处选择gzip。ODS层表名的命名规范为:ods_表名_单分区增量全量标识(inc/full)。数据处理和存储的具体实现:4.DIW层DIM层的设计要点如下:①DIM层的设计依据是维度建模理论,该层存储维度模型的维度表。②DIM层的数据存储格式为orc列式存储+snappy压缩。③DIM层表名的命名规范为:dim_表名_全量表或者拉链表标识(full/zip)数据处理和存储的具体实现:5.DWD层DWD层的设计要点如下:①DWD层的设计依据是维度建模理论,该层存储维度模型的事实表。②DWD层的数据存储格式为orc列式存储+snappy压缩。③DWD层表名的命名规范为:dwd_数据域_表名_单分区增量全量标识(inc/full)数据处理和存储的具体实现:6.DWS层DWS层的设计要点如下:①DWS层的设计参考指标体系。②DWS层的数据存储格式为ORC列式存储+snappy压缩。③DWS层表名的命名规范为:dws_数据域_统计粒度_业务过程_统计周期(1d/nd/td)数据处理和存储的具体实现:7.ADS层以流量主题为例,统计各个渠道的流量。统计周期统计粒度指标说明最近1/7/30日渠道访客数统计访问人数最近1/7/30日渠道会话平均停留时长统计每个会话平均停留时长最近1/7/30日渠道会话平均浏览页面数统计每个会话平均浏览页面数最近1/7/30日渠道会话总数统计会话总数最近1/7/30日渠道跳出率只有一个页面的会话的比例数据处理和存储的具体实现:平台各个组件配置完成之后,依次启动Hadoop、Zookeeper、Kafka、Flume。生成模拟数据后,在hadoop102:9870查看是否有数据存入。在DataGrip中建好各层数据表后,需要往每个表分别导入数据,为了简化操作以及提升效率,可编写数据载入脚本。数据可视化05数据可视化数据可视化模块需要完成的工作是以数据仓库ADS层的各主题分析结果数据为源数据,利用数据可视化的相关框架或工具对数据进行Web页面展示,方便电商平台决策者进行分析。1.Superset部署下载和安装Superset启动Superset配置Superset相关参数安装依赖环境登录并配置数据库01020304052.Sup
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 花艺设计公司运营体系
- 核医学科:甲亢患者核素治疗方案
- 创意鸡蛋设计画作全解析
- 人力资源部年度员工总结
- 电商淘宝设计核心要素
- 草原教学设计
- 海南白沙县2025年一级建造师(港口与航道工程管理与实务)题库含答案
- 2026年一级建造师(港口与航道工程管理与实务)模拟题含答案(丹东)
- 2026年四川省党政领导干部政治理论水平凡任必测(理论)能力提高训练题及答案
- 2026年湖北孝感市专业技术职务水平能力测试(党建基础知识)冲刺试题及答案
- 2026年《安全生产月》主题网络活动竞赛题库及答案
- 江苏省泰州市兴化市重点名校2026届中考历史最后冲刺模拟试卷含解析
- 2025-2026学年五年级语文下册第七单元综合素养测评卷(含答案)
- 2026年过程装备资产管理与完整性的结合
- 模版-2026年2月市场销售经营分析月报看板
- 2026年供热知识试题题库及答案
- 高考化学主观题重点突破策略
- 试件留置方案和试验计划
- T∕HNCJ 0003-2026 城镇供水管网分区计量漏损控制技术标准
- 生产计划与调度工具产能需求预测版
- 【小学】【纪律主题】班会:-碎嘴子的代价【课件】
评论
0/150
提交评论