【商城实战(30)】从0到1搭建商城数据分析功能,开启数据驱动增长引擎

news2025/3/18 22:36:33

【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配,乃至运营推广策略,102 章内容层层递进。无论是想深入钻研技术细节,还是探寻商城运营之道,本专栏都能提供从 0 到 1 的系统讲解,助力你打造独具竞争力的电商平台,开启电商实战之旅。

目录

  • 一、引入数据分析工具
    • 1.1 Apache Hive 介绍与引入
    • 1.2 Spark 介绍与引入
  • 二、设计数据采集方案
    • 2.1 确定采集数据类型
    • 2.2 选择采集方法与工具
    • 2.3 数据采集的质量控制
  • 三、进行简单数据分析
    • 3.1 用户活跃度分析
    • 3.2 商品销售数据分析
    • 3.3 分析结果可视化方法


一、引入数据分析工具

在当今数字化时代,数据已成为企业决策的关键依据。对于商城系统而言,深入挖掘用户行为和业务数据背后的价值,能够助力精准营销、优化商品策略以及提升用户体验。为了实现高效的数据存储与处理,我们引入强大的数据分析工具,如 Apache Hive 和 Spark。这两款工具在大数据领域久负盛名,它们的协同工作将为商城数据分析搭建起坚实的基础架构。

1.1 Apache Hive 介绍与引入

Apache Hive 是基于 Hadoop 的数据仓库工具,它为 Hadoop 提供了数据仓库的功能,能够将结构化的数据文件映射为一张数据库表,并提供类 SQL 的查询语言 HiveQL,让熟悉 SQL 的开发人员能够轻松对存储在 Hadoop 分布式文件系统(HDFS)上的大规模数据进行查询和分析。Hive 的优势显著,它大大降低了 Hadoop 的使用门槛,即使不熟悉 MapReduce 编程的人员,也能通过编写 HiveQL 语句完成数据处理任务,特别适合离线数据处理场景,例如对商城历史订单数据、用户长期行为数据的分析。

安装 Hive 前,需要确保系统已经安装了 Java 和 Hadoop,因为 Hive 依赖这两个环境。以在 Linux 系统上安装为例,首先从 Apache Hive 官方网站(https://hive.apache.org/downloads.html )下载合适版本的 Hive 安装包,比如当前较稳定的版本是 3.1.2。下载完成后,将安装包上传至服务器的指定目录,如/opt/software。然后解压安装包到/opt/module目录下,执行命令:

tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/

解压完成后,为了方便后续配置,可以将解压后的目录重命名为hive,命令如下:

mv /opt/module/apache-hive-3.1.2-bin /opt/module/hive

接着,配置环境变量,编辑/etc/profile.d/my_env.sh文件,添加如下内容:

#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

保存并退出文件后,执行source /etc/profile.d/my_env.sh使环境变量生效。

Hive 默认使用 Derby 作为元数据库,Derby 是一个轻量级的关系数据库,适合开发和测试环境,但在生产环境中通常需要使用更强大的关系数据库,如 MySQL。这里以 MySQL 为例,首先安装 MySQL,安装完成后,在 MySQL 中创建用于存储 Hive 元数据的数据库,比如命名为metastore。然后将 MySQL 的 JDBC 驱动拷贝到 Hive 的lib目录下,假设 JDBC 驱动包名为mysql-connector-java-5.1.49.jar,执行命令:

cp /path/to/mysql-connector-java-5.1.49.jar $HIVE_HOME/lib

在$HIVE_HOME/conf目录下新建hive-site.xml文件,配置 Hive 连接 MySQL 元数据库的相关参数:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- jdbc连接的URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/metastore?useSSL=false</value>
    </property>
    <!-- jdbc连接的Driver -->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <!-- jdbc连接的username -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <!-- jdbc连接的password -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>your_password</value>
    </property>
</configuration>

最后,初始化元数据库,执行命令:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

至此,Hive 安装与配置完成,可以通过执行$HIVE_HOME/bin/hive命令启动 Hive,进入 Hive 命令行界面,开始使用 Hive 进行数据仓库操作。

1.2 Spark 介绍与引入

Spark 是一个开源的大数据处理框架,具有高效性、易用性和灵活性等特点。它支持多种编程语言,如 Scala、Java、Python 和 R,提供了丰富的 API,能够轻松实现分布式数据处理,支持大规模数据集的快速处理,无论是批处理、流处理还是机器学习、图计算等任务,Spark 都能出色完成。例如,在商城场景中,Spark 可以实时处理用户的点击流数据,为实时推荐系统提供数据支持。

Spark 的安装相对简单,以在 Linux 系统上安装单机模式为例,首先从 Spark 官方网站(https://spark.apache.org/downloads.html )下载合适版本的 Spark 安装包,比如spark-3.2.1-bin-hadoop3.2.tgz。下载完成后,将安装包上传至服务器的指定目录,如/opt/software。然后解压安装包到/usr/local目录下,执行命令:

tar -xvf /opt/software/spark-3.2.1-bin-hadoop3.2.tgz -C /usr/local/

解压完成后,配置环境变量,编辑~/.bashrc文件,添加如下内容:

export SPARK_HOME=/usr/local/spark-3.2.1-bin-hadoop3.2
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

保存并退出文件后,执行source ~/.bashrc使环境变量生效。

为了让 Spark 单机模式正常运行,可以简单配置一下 Spark 的环境参数。进入 Spark 安装目录下的conf目录,复制spark-env.sh.template文件并重命名为spark-env.sh,执行命令:

cp spark-env.sh.template spark-env.sh

编辑spark-env.sh文件,添加如下配置(以单机模式为例):

export SPARK_MASTER_HOST=localhost
export SPARK_MASTER_PORT=7077

至此,Spark 安装与配置完成。启动 Spark Master,执行命令:

$SPARK_HOME/sbin/start-master.sh

启动成功后,可以通过浏览器访问http://localhost:8080,查看 Spark Master 的 Web UI,确认 Spark Master 已经正常启动。如果需要启动 Spark Worker,可以执行命令:

$SPARK_HOME/sbin/start-worker.sh spark://localhost:7077

为了验证 Spark 安装是否成功,可以运行一个简单的示例程序。例如,使用 Spark 自带的spark-shell(Scala 环境)或pyspark(Python 环境),在spark-shell中输入如下代码:

val data = Seq(1, 2, 3, 4, 5)
val rdd = sc.parallelize(data)
rdd.map(_ * 2).collect().foreach(println)

在pyspark中输入如下代码:

data = [1, 2, 3, 4, 5]
rdd = sc.parallelize(data)
rdd.map(lambda x: x * 2).collect()

如果能够正确输出结果,说明 Spark 安装成功,可以开始使用 Spark 进行大数据处理任务。

二、设计数据采集方案

数据采集作为数据分析的基石,其方案的优劣直接决定了后续分析结果的准确性与可靠性。对于商城而言,全面、精准地收集用户行为和业务数据,是洞察市场动态、优化运营策略的关键。因此,设计一套科学合理的数据采集方案,成为商城数据分析体系建设的重要环节。

2.1 确定采集数据类型

在商城运营中,用户行为数据蕴含着用户的偏好、需求和购买意愿等重要信息。登录次数反映了用户对商城的粘性和活跃度,通过分析登录频率,我们可以判断用户的使用习惯,进而针对性地进行用户留存和召回策略制定。页面访问量则展示了各个页面的受欢迎程度,帮助我们优化页面布局和商品推荐。商品浏览记录能直观体现用户对不同商品的兴趣,为个性化推荐提供数据支持。搜索关键词则反映了用户的明确需求,有助于我们优化商品搜索功能和拓展商品品类。购物车操作,如添加、删除商品,体现了用户的购买决策过程,对分析用户购买转化率有重要意义。支付行为则是最终的交易环节,记录支付方式、支付时间等信息,能帮助我们了解用户的支付习惯,优化支付流程。

业务数据则从商城运营的各个方面提供了宏观视角。商品信息包括商品名称、价格、库存、品牌等,这些数据是商品管理的基础,用于分析商品的竞争力和销售潜力。库存数据直接关系到商城的运营成本和客户满意度,实时掌握库存情况,能有效避免缺货和积压。订单数据记录了每一笔交易的详细信息,包括订单金额、商品数量、下单时间、收货地址等,是分析销售业绩和用户购买行为的核心数据。销售数据则从宏观层面展示了商城的销售情况,如销售额、销售量、客单价等,用于评估商城的运营效益。商家数据包括商家信息、商品供应能力、售后服务等,有助于我们与商家建立良好合作关系,提升商品质量和服务水平。

2.2 选择采集方法与工具

网页抓取技术是一种常见的数据采集方法,它通过编写爬虫程序,模拟浏览器行为,从网页中提取所需数据。例如,我们可以使用 Python 的 Scrapy 框架,它提供了强大的爬虫功能和数据处理能力。首先,我们需要定义爬虫的目标网站和抓取规则。以抓取商品信息为例,我们可以通过分析商品详情页的 HTML 结构,使用 XPath 或 CSS 选择器定位商品名称、价格、描述等信息。在抓取过程中,要严格遵守 robots 协议,该协议规定了网站允许爬虫访问的范围,避免违规抓取导致法律风险。同时,为了应对网站的反爬机制,我们可以设置合理的请求间隔时间,避免频繁请求被封 IP,还可以使用代理 IP 池,隐藏真实 IP 地址。

API 接口调用是一种更为规范和准确的数据采集方式。商城内部通常会提供各种 API 接口,用于获取业务数据,如订单接口、商品接口等。调用这些接口时,我们需要了解接口的参数和返回数据格式。以获取订单数据为例,我们可以向订单接口发送 HTTP 请求,传递必要的参数,如订单时间范围、订单状态等,接口会返回符合条件的订单数据,通常以 JSON 或 XML 格式呈现。对于一些第三方数据,如市场趋势数据、竞品数据等,我们也可以通过购买或合作的方式,获取相应的 API 接口,获取更全面的数据支持。

日志采集是记录用户在商城系统中操作行为的重要方式。通过在系统中埋点,记录用户的每一次操作,如点击、浏览、搜索等,生成日志文件。然后使用日志收集工具,如 Logstash,它可以收集、解析和转发日志数据。我们可以配置 Logstash,使其从指定的日志文件目录读取日志数据,根据预定义的规则对日志进行解析,提取关键信息,如用户 ID、操作时间、操作类型等,然后将解析后的数据发送到指定的存储位置,如 Elasticsearch,方便后续的查询和分析。

2.3 数据采集的质量控制

数据完整性是数据质量的基础,我们要确保采集到的数据没有遗漏关键信息。在数据采集过程中,定期对采集到的数据进行完整性检查。例如,对于订单数据,检查订单编号、商品信息、用户信息、支付信息等是否完整。可以编写脚本,对数据库中的订单数据进行遍历,统计每个订单记录中缺失字段的数量,若发现缺失值超过一定比例,及时查找原因并进行补全。对于一些必填字段,在数据采集前端进行校验,确保用户输入完整后才能提交数据。

数据准确性直接影响分析结果的可靠性。为了提高数据准确性,对采集到的数据进行多维度验证。例如,对于商品价格数据,与商家提供的价格清单进行比对,确保价格一致。在数据录入环节,采用自动化录入方式,减少人为输入错误。同时,建立数据校对机制,定期对重要数据进行人工抽检,发现错误及时修正。不断优化数据采集算法和流程,减少系统性偏差。

制定统一的数据采集标准规范是保证数据质量的关键。规定数据的格式、编码方式、命名规则等。例如,日期格式统一为 “YYYY-MM-DD”,商品名称统一使用中文简体,避免出现多种表达方式。对数据采集人员进行定期培训,使其熟悉数据采集标准和流程,提高数据采集的规范性。建立数据质量监控体系,对数据采集过程进行实时监测,及时发现和解决数据质量问题。

三、进行简单数据分析

在成功搭建数据处理环境并完成数据采集后,我们迎来了数据分析这一关键环节。通过对采集到的用户行为和业务数据进行深入分析,能够挖掘出有价值的信息,为商城的运营决策提供有力支持。同时,将分析结果以可视化的方式呈现,能使数据更加直观易懂,便于非技术人员理解和使用。接下来,我们将详细介绍如何进行用户活跃度分析、商品销售数据分析以及分析结果的可视化方法。

3.1 用户活跃度分析

用户活跃度是衡量商城运营状况的重要指标,它反映了用户对商城的参与程度和粘性。常见的用户活跃度分析指标包括:

  • 用户登录次数:用户登录次数直接体现了用户对商城的依赖程度和使用频率。频繁登录的用户往往对商城的内容和服务有较高的兴趣和需求,通过分析登录次数,可以了解用户对商城的访问习惯,判断用户粘性的高低。
  • 活跃天数:活跃天数指用户在一定时间段内登录商城的天数,它体现了用户的使用习惯和频率。如果用户的活跃天数较高,说明用户经常使用商城,对商城的依赖度较高,用户粘性较强。
  • 页面访问量:页面访问量反映了用户在商城平台上的活跃程度和使用深度。用户访问的页面越多,说明他们在平台上的参与度越高,对商城的内容和商品的关注度越高。通过分析页面访问量,可以了解用户对不同页面的兴趣,优化页面布局和内容推荐。
  • 操作频次:操作频次是指用户在商城平台上进行的各种操作,如搜索、添加商品到购物车、评论等的次数。操作频次越高,说明用户在平台上的活跃程度越高,对平台的功能和服务的使用越频繁。通过分析操作频次,可以了解用户的使用习惯和需求,优化平台的功能设计。
  • 用户留存率:用户留存率是指在一定时间段内,新用户在后续某个时间点仍然使用商城的比例。留存率是衡量用户活跃度和产品粘性的重要指标,高留存率意味着用户对商城的满意度较高,愿意持续使用商城。通过分析留存率,可以评估商城的用户粘性和用户流失情况,制定相应的用户留存策略。

以某商城在 2024 年 1 月 1 日至 2024 年 1 月 31 日期间的用户数据为例,我们来实际计算这些指标并分析用户活跃度变化趋势。假设我们从数据库中获取到了以下数据:

用户 ID登录次数活跃天数页面访问量操作频次首次访问时间最后访问时间
11510100502024 - 01 - 012024 - 01 - 31
28650302024 - 01 - 052024 - 01 - 20
32015150802024 - 01 - 032024 - 01 - 31

通过对这些数据的统计分析,我们得到以下结果:

  • 平均登录次数:(15 + 8 + 20 +…) / 用户总数 = 12(次)
  • 平均活跃天数:(10 + 6 + 15 +…) / 用户总数 = 8(天)
  • 平均页面访问量:(100 + 50 + 150 +…) / 用户总数 = 80(次)
  • 平均操作频次:(50 + 30 + 80 +…) / 用户总数 = 45(次)

为了分析用户活跃度的变化趋势,我们将数据按周进行分组统计,得到如下图表:

时间段平均登录次数平均活跃天数平均页面访问量平均操作频次
第 1 周(1 月 1 日 - 1 月 7 日)1066030
第 2 周(1 月 8 日 - 1 月 14 日)1277035
第 3 周(1 月 15 日 - 1 月 21 日)1589040
第 4 周(1 月 22 日 - 1 月 28 日)1378038
第 5 周(1 月 29 日 - 1 月 31 日)1167536

从图表中可以看出,用户活跃度在第 3 周达到高峰,之后略有下降。通过进一步分析,我们发现第 3 周商城举办了促销活动,吸引了大量用户参与,从而提高了用户活跃度。而在活动结束后,用户活跃度逐渐恢复到正常水平。这表明促销活动对提高用户活跃度有显著作用,商城可以根据这一规律,合理安排促销活动,提升用户粘性。

3.2 商品销售数据分析

商品销售数据是商城运营的核心数据之一,通过对商品销售数据的分析,可以了解商品的销售情况,优化商品策略,提高销售业绩。分析商品销售数据主要从以下几个方面入手:

  • 销售额分析:销售额是衡量商品销售业绩的重要指标,通过统计不同商品的销售金额,可以了解哪些商品销售额高,哪些销售额低。销售额高的商品通常是市场需求较大、受欢迎程度较高的商品,商城可以加大对这些商品的推广和库存管理;而销售额低的商品则需要进一步分析原因,可能是商品定价过高、市场需求不足、竞争激烈等,商城可以根据具体情况采取调整价格、优化商品推荐、促销活动等措施,提高销售额。
  • 销售数量分析:销售数量反映了商品的实际销售情况,通过统计各类商品的销售数量,可以确定哪些商品是畅销商品,哪些是滞销商品。畅销商品是商城的核心产品,商城可以加大对畅销商品的采购和供应,满足市场需求;而滞销商品则需要分析原因,可能是商品质量问题、款式过时、宣传不到位等,商城可以采取降价促销、优化商品款式、加强宣传推广等措施,减少库存积压。
  • 客单价分析:客单价是指每个客户在一次购物中平均花费的金额,它反映了消费者的购买能力和消费习惯。通过分析客单价,可以了解消费者的购买行为,制定相应的营销策略。如果客单价较低,商城可以通过推出套餐、满减活动等方式,鼓励消费者增加购买量,提高客单价;如果客单价较高,商城可以针对高端消费者推出定制化服务、会员专属优惠等,提高客户满意度和忠诚度。

为了更直观地展示商品销售数据的分析过程,我们以某商城的商品销售数据为例,使用数据透视表和 SQL 查询进行分析。假设我们从数据库中获取到了以下商品销售数据:

订单 ID商品 ID商品名称销售数量单价销售金额订单日期
11001商品 A21002002024 - 01 - 01
21002商品 B12002002024 - 01 - 02
31001商品 A3100300

使用数据透视表分析商品销售数据,以 Excel 为例,操作步骤如下:

  1. 将上述数据复制到 Excel 表格中。
  2. 选中数据区域,点击 “插入” 选项卡中的 “数据透视表”。
  3. 在弹出的 “创建数据透视表” 对话框中,确认数据区域无误后,点击 “确定”。
  4. 在数据透视表字段列表中,将 “商品名称” 拖到 “行” 区域,将 “销售数量” 和 “销售金额” 拖到 “值” 区域。

此时,数据透视表会自动统计每个商品的销售数量和销售金额,如下表所示:

商品名称销售数量销售金额
商品 A5500
商品 B1200

使用 SQL 查询分析商品销售数据,以 MySQL 为例,查询语句如下:

SELECT
    product_name,
    SUM(sales_quantity) AS total_sales_quantity,
    SUM(sales_amount) AS total_sales_amount
FROM
    sales_data
GROUP BY
    product_name;

上述查询语句的作用是从sales_data表中按商品名称分组,统计每个商品的销售数量和销售金额。执行该查询后,得到的结果与数据透视表的结果相同。

通过对商品销售数据的分析,我们可以清楚地了解到哪些商品销售情况较好,哪些商品需要改进,从而为商城的商品管理和营销策略制定提供有力支持。

3.3 分析结果可视化方法

将数据分析结果以可视化的方式呈现,能够使数据更加直观易懂,便于决策者快速理解和把握数据背后的信息。常见的可视化工具包括 Echarts、Highcharts、Tableau 等,它们各有特点和优势,适用于不同的场景和需求。

  • Echarts:Echarts 是一款基于 JavaScript 的数据可视化图表库,由百度团队开源,后捐赠给 Apache 基金会。它功能强大,提供了丰富的图表类型,如柱状图、折线图、饼图、散点图、地图等,并且支持图与图之间的混搭。Echarts 的图表具有高度的交互性,用户可以通过鼠标悬停、点击等操作,查看详细的数据信息。此外,Echarts 还支持移动端,能够在手机、平板等设备上完美展示。它适用于各种 Web 应用程序的数据可视化需求,特别是对图表交互性和定制性要求较高的场景。
  • Highcharts:Highcharts 是一个用纯 JavaScript 编写的图表库,能够简单便捷地在 Web 网站或 Web 应用程序中添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。它支持多种图表类型,如曲线图、区域图、柱状图、饼状图、散状点图等,界面美观,运行速度快,兼容性好,能够完美支持当前大多数浏览器。Highcharts 的使用相对简单,只需要引入相关的 JavaScript 文件,通过简单的配置即可创建出美观的图表。它适用于对图表功能要求不是特别复杂,但对图表美观性和易用性有较高要求的场景。
  • Tableau:Tableau 是一款专业的数据可视化工具,它提供了强大的数据处理和分析能力,支持多种数据源,能够连接到数据库、文件系统、云存储等各种数据来源。Tableau 的操作相对复杂,但功能非常全面,用户可以通过拖拽的方式创建各种可视化报表和仪表盘,实现数据的深度分析和可视化展示。它还支持实时数据更新,能够及时反映数据的变化情况。Tableau 适用于企业级的数据可视化需求,特别是对数据处理和分析要求较高的场景,如商业智能、数据分析等领域。

下面我们将以用户活跃度分析和商品销售数据分析的结果为例,展示如何使用柱状图、折线图、饼图等图表进行可视化呈现。

  • 柱状图:柱状图常用于对比不同类别数据的大小,非常适合展示商品销售数据中的销售额、销售数量等指标。以某商城不同商品类别的销售额为例,使用 Echarts 创建柱状图的代码如下:
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '不同商品类别的销售额'
    },
    tooltip: {},
    legend: {
        data:['销售额']
    },
    xAxis: {
        data: ['服装', '食品', '电子产品', '家居用品', '美妆']
    },
    yAxis: {},
    series: [{
        name: '销售额',
        type: 'bar',
        data: [50000, 30000, 80000, 40000, 20000]
    }]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

上述代码创建了一个柱状图,展示了服装、食品、电子产品、家居用品、美妆等不同商品类别的销售额。通过柱状图,我们可以直观地看到电子产品的销售额最高,美妆的销售额最低,从而了解不同商品类别的销售情况。

  • 折线图:折线图主要用于展示数据随时间或其他变量的变化趋势,非常适合展示用户活跃度分析中的用户登录次数、活跃天数等指标随时间的变化情况。以某商城用户登录次数在一个月内的变化趋势为例,使用 Highcharts 创建折线图的代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户登录次数变化趋势</title>
    <script src="https://code.highcharts.com/highcharts.js"></script>
</head>
<body>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
<script type="text/javascript">
    Highcharts.chart('container', {
        title: {
            text: '用户登录次数变化趋势'
        },
        subtitle: {
            text: '时间:2024年1月'
        },
        xAxis: {
            categories: ['1日', '2日', '3日', '4日', '5日', '6日', '7日', '8日', '9日', '10日', '11日', '12日', '13日', '14日', '15日', '16日', '17日', '18日', '19日', '20日', '21日', '22日', '23日', '24日', '25日', '26日', '27日', '28日', '29日', '30日', '31日']
        },
        yAxis: {
            title: {
                text: '登录次数'
            }
        },
        series: [{
            name: '用户登录次数',
            data: [100, 120, 110, 130, 140, 150, 145, 135, 125, 115, 120, 130, 140, 150, 160, 155, 145, 135, 125, 115, 120, 130, 140, 150, 160, 155, 145, 135, 125, 115, 120]
        }]
    });
</script>
</body>
</html>

上述代码创建了一个折线图,展示了 2024 年 1 月 1 日至 31 日期间用户登录次数的变化趋势。通过折线图,我们可以清晰地看到用户登录次数在某些时间段有所上升,某些时间段有所下降,从而分析出用户活跃度的变化规律。

  • 饼图:饼图主要用于显示各部分占总体的比例关系,非常适合展示商品销售数据中不同商品类别的销售金额占总销售金额的比例。以某商城不同商品类别的销售金额占比为例,使用 Tableau 创建饼图的步骤如下:
  1. 连接到商品销售数据的数据源。
  2. 将 “商品名称” 拖到 “Columns” 架上,将 “销售金额” 拖到 “Rows” 架上。
  3. 点击 “Show Me” 面板中的 “Pie Chart”,Tableau 会自动生成饼图。
  4. 对饼图进行格式设置,如添加标题、调整颜色等,使其更加美观。

通过饼图,我们可以直观地看到不同商品类别的销售金额占比情况,了解商城的销售结构,为商品管理和营销策略制定提供参考。

通过以上介绍,我们了解了数据分析功能初步搭建的关键步骤,包括引入数据分析工具、设计数据采集方案以及进行简单数据分析和结果可视化。这些工作为商城的进一步优化和发展提供了有力的数据支持,帮助我们更好地理解用户行为和市场需求,制定更加精准的运营策略。在后续的工作中,我们将继续深入挖掘数据的价值,不断完善数据分析体系,为商城的成功运营奠定坚实基础。

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

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

相关文章

(hash表+vector 数位和相等数对的最大和)leetcode 2342

一定要断点调试看看数据对不对的上&#xff01;&#xff01;&#xff01;不然很容易弄不清楚值和下标 这个题意思是在nums中找出相同数位和的值 如 数位和为7 nums中符合要求的有 43&#xff0c;7 在这些数中选两个相加取最大值&#xff0c;再与其他数位和取得的相加最大值比…

kmp报错→Cannot find skiko-windows-x64.dll.sha256

1、前言 学习kmp&#xff08;Kotlin MultiPlatform简称&#xff09;过程中报了错误&#xff0c;这个报错在直接运行desktop的main方法才会出现&#xff0c;用gradle运行却不会报错&#xff0c;新建的kmp项目也不会出现&#xff0c;我学习的写了一些代码的项目才会出现。   运…

Cocos Creator Shader入门实战(四):预处理宏定义和Chunk

引擎&#xff1a; 3.8.5 您好&#xff0c;我是鹤九日&#xff01; 回顾 学习Shader&#xff0c;前期是让人烦躁无味的&#xff0c;后期可能就是各种的逻辑让人抓耳挠腮。 一成不变的内容&#xff1a;遵循引擎设定的规则&#xff0c;理解引擎要求的规范。 这里&#xff0c;简单…

K8S快速部署

前置虚拟机环境正式部署BUG解决 前置虚拟机环境 每个虚拟机配置一次就好 #关闭防火墙 systemctl stop firewalld systemctl disable firewalld #关闭 selinux sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时 #关闭 swap swapoff -a # 临时 vi…

汽车PKE无钥匙进入系统一键启动系统定义与原理

汽车智能钥匙&#xff08;PKE无钥匙进入系统&#xff09;一键启动介绍 系统定义与原理 汽车无钥匙进入系统&#xff0c;简称PKE&#xff08;Passive Keyless Entry&#xff09;&#xff0c;该系统采用了RFID无线射频技术和车辆身份编码识别系统&#xff0c;率先应用小型化、小…

WPF程序使用AutoUpdate实现自动更新

AutoUpdate.NET使用 一、AutoUpdater.NET 简介 AutoUpdater.NET 是一个开源库&#xff0c;支持从各种源&#xff08;如GitHub、FTP、HTTP服务器等&#xff09;下载并安装更新。它提供了灵活的配置选项&#xff0c;允许开发者根据需求定制更新检查逻辑和用户体验。 二、安装 …

每日Attention学习28——Strip Pooling

模块出处 [CVPR 20] [link] Strip Pooling: Rethinking Spatial Pooling for Scene Parsing 模块名称 Strip Pooling (SP) 模块结构 模块特点 本质是空间注意力的一种使用横/纵两个方向的条形池化获得一维方向上的重要程度&#xff0c;结合后便可以扩展至二维方向 模块代码 …

ollama docker设置模型常驻显存

参考&#xff1a; https://github.com/ollama/ollama/issues/5272 https://deepseek.csdn.net/67cfd7c93b685529b708fdee.html 通过-e传入环境变量&#xff0c;ollama运行&#xff1a; docker run -d --gpusall -e OLLAMA_KEEP_ALIVE-1 -v ollama:/root/.ollama -p 11434:114…

无再暴露源站!群联AI云防护IP隐匿方案+防绕过实战

一、IP隐藏的核心原理 群联AI云防护通过三层架构实现源站IP深度隐藏&#xff1a; 流量入口层&#xff1a;用户访问域名解析至高防CNAME节点&#xff08;如ai-protect.example.com&#xff09;智能调度层&#xff1a;基于AI模型动态分配清洗节点&#xff0c;实时更新节点IP池回…

【深度学习|目标检测】YOLO系列anchor-based原理详解

YOLO之anchor-based 一、关于anchors的设置二、网络如何利用anchor来训练关于register_buffer训练阶段的anchor使用推理阶段的anchor使用 三、训练时的正负样本匹配静态策略&#xff1a;跨分支采样跨anchor采样跨grid采样 动态策略 总结起来其实就是&#xff1a;基于anchor-bas…

Linux 入门:权限的认识和学习

目录 一.shell命令以及运行原理 二.Linux权限的概念 1.Linux下两种用户 cannot open directory .: Permission denied 问题 2.Linux权限管理 1).是什么 2).为什么&#xff08;权限角色目标权限属性&#xff09; 3).文件访问者的分类&#xff08;角色&#xff09; 4).文…

搭建opensbi+kernel+rootfs及基本设备驱动开发流程

目录 一.编译qemu 运行opensbikernelrootfs 1.编译qemu-9.1.1 2.安装riscv64编译器 3. 编译opensbi 4.编译kernel 5.编译rootfs 设备驱动开发流程 1.安装 RISC-V 交叉编译工具链 2.驱动开发准备 3.编写简易中断控制器驱动&#xff08;PLIC&#xff09;​ 4.配置内核…

QT非UI设计器生成界面的国际化

目的 UI设计器生成界面的国际化&#xff0c;比较容易实现些&#xff0c;因为有现成的函数可以调用&#xff0c;基本过程如下&#xff1a; void MainWindow::on_actLang_CN_triggered() {//中文界面qApp->removeTranslator(trans);delete trans;transnew QTranslator;trans…

python | 输入日期,判断这一天是这一年的第几天

题目&#xff1a; 使用 python 编程&#xff0c;实现输入日期&#xff0c;判断这一天是这一年的第几天? 具体实现代码如下&#xff1a; import datetime year input(请输入年份&#xff1a;) month input(请输入月份&#xff1a;) day input(请输入天&#xff1a;) date…

单片机开发资源分析的实战——以STM32F103C8T6为例子的单片机资源分析

目录 第一点&#xff1a;为什么叫STM32F103C8T6 从资源手册拿到我们的对STM32F103C8T6的资源描述 第二件事情&#xff0c;关心我们的GPIO引脚输出 第三件事情&#xff1a;去找对应外设的说明部分 前言 本文章隶属于项目&#xff1a; Charliechen114514/BetterATK: This is…

Maven | 站在初学者的角度配置

目录 Maven 是什么 概述 常见错误 创建错误代码示例 正确代码示例 Maven 的下载 Maven 依赖源 Maven 环境 环境变量 CMD测试 Maven 文件配置 本地仓库 远程仓库 Maven 工程创建 IDEA配置Maven IDEA Maven插件 Maven 是什么 概述 Maven是一个项目管理和构建自…

【css酷炫效果】纯CSS实现3D翻转卡片动画

【css酷炫效果】纯CSS实现3D翻转卡片动画 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90490472 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚看到csdn出活动了&am…

并发编程面试题二

1、java线程常见的基本状态有哪些&#xff0c;这些状态分别是做什么的 &#xff08;1&#xff09;创建&#xff08;New&#xff09;&#xff1a;new Thread()&#xff0c;生成线程对象。 &#xff08;2&#xff09;就绪&#xff08;Runnable&#xff09;:当调用线程对象的sta…

Spring Cloud Stream - 构建高可靠消息驱动与事件溯源架构

一、引言 在分布式系统中&#xff0c;传统的 REST 调用模式往往导致耦合&#xff0c;难以满足高并发和异步解耦的需求。消息驱动架构&#xff08;EDA, Event-Driven Architecture&#xff09;通过异步通信、事件溯源等模式&#xff0c;提高了系统的扩展性与可观测性。 作为 S…

突破连接边界!O9201PM Wi-Fi 6 + 蓝牙 5.4 模块重新定义笔记本无线体验

在当今数字化时代&#xff0c;笔记本电脑已成为人们工作、学习和娱乐的必备工具。而无线连接技术&#xff0c;作为笔记本电脑与外界交互的关键桥梁&#xff0c;其性能的优劣直接关乎用户体验的好坏。当下&#xff0c;笔记本电脑无线连接领域存在诸多痛点&#xff0c;严重影响着…