MySQL数据分析2_tb用户行为分析

MySQL数据分析2_tb用户行为分析

本文数据来源于:天池
使用工具:MySQL,tableau

1.简介

用户行为是淘宝上用户行为的数据集,用于带有隐式反馈的推荐问题。该数据集由阿里巴巴提供。

2.数据理解

该数据集包括随机选择的约100万用户,以及这些用户在2017年11月25日至12月3日之间具有点击,购买,向购物车中添加商品和偏爱商品的行为,所有数据量超过1亿行,考虑到数据库运行时间,这里我就取200W左右的值进行分析。
字段理解如下:

字段 解释
user_id 用户编号
item_id 商品编号
category_id 系列编号
behavior type 行为类型(PV:项目详细信息页面的页面视图,相当于项目单击;buy:购买物品;cart:将项目添加到购物车;fav:收藏一个项目)
timestamp 行为发生时的时间戳

3.设立目标

  1. 分析用户行为和常见电商指标,找到需要加强的环节;
  2. 分析最核心用户群体,对其进行分析;
  3. 分析用户在一定的时间周期内的用户行为,找到用户行为规律。

4.数据清洗

1)选择数据子集

这里选定导入的所有数据进行分析

2)删除重复值

这里为用户购物行为,确实可能存在相同的产品,用户会产生不同的操作的现象(比如先加购再购买),故不作处理

3)缺失值处理
SELECT count(1)
FROM userbehavior
WHERE user_id=' ' OR user_id IS NULL;

SELECT count(1)
FROM userbehavior
WHERE item_id=' ' OR item_id IS NULL;

SELECT count(1)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200922154037150.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjMxNTcwMg==,size_16,color_FFFFFF,t_70#pic_center)

FROM userbehavior
WHERE category_id=' ' OR category_id IS NULL;

SELECT count(1)
FROM userbehavior
WHERE `behavior type`=' ' OR `behavior type` IS NULL;

SELECT count(1)
FROM userbehavior
WHERE `timestamp`=' ' OR `timestamp` IS NULL;

结果均为0,不存在缺失值。

4)合法性检查

检查数据有无不合逻辑的值,在本项目中表现为,用户行为时间是否在2017年11月25日至12月3日范围内:

-- 合法性检查
SELECT *,FROM_UNIXTIME(`timestamp`)
FROM userbehavior
WHERE `timestamp`<UNIX_TIMESTAMP('2017-11-25') OR `timestamp`>UNIX_TIMESTAMP('2017-12-4')

结果发现有992条记录是不合法的,如下图
在这里插入图片描述
删除以上数据

DELETE FROM userbehavior 
WHERE `timestamp`<UNIX_TIMESTAMP('2017-11-25') OR `timestamp`>UNIX_TIMESTAMP('2017-12-4')
5)数据一致性处理

为了之后研究方便这里将时间戳转化为正常的日期格式,并分成两列,一列为日期,一列为小时。

SELECT *,FROM_UNIXTIME(`timestamp`,'%Y-%m-%d') date,FROM_UNIXTIME(`timestamp`,'%H') hour
FROM userbehavior;

ALTER TABLE userbehavior ADD COLUMN date VARCHAR(255) NULL;
ALTER TABLE userbehavior ADD COLUMN hour VARCHAR(255) NULL;

UPDATE userbehavior SET date=FROM_UNIXTIME(`timestamp`,'%Y-%m-%d');
UPDATE userbehavior SET hour=<
<think>嗯,用户问MySQL数据库是否专门用来做数据分析。我得先理清楚MySQL的定位和适用场景。首先,MySQL是一个关系型数据库管理系统,主要用于在线事务处理(OLTP),比如网站的后台数据存储、订单管理这些需要频繁读写和事务支持的场景。但是用户想知道它在数据分析方面的应用,所以需要分析MySQL在这方面的优缺点。 接下来,我要回忆一下数据分析通常需要什么功能。数据分析更多属于在线分析处理(OLAP),涉及复杂的查询、大数据量的聚合操作、可能还需要支持并行处理和列式存储等。这时候可能需要对比其他数据库比如PostgreSQL、专门的OLAP数据库如ClickHouse,或者大数据平台如Hadoop、Spark。 然后,考虑MySQL数据分析中的优势。比如,用户可能已经用MySQL作为业务数据库,直接用它做分析可以避免数据迁移的麻烦。对于小规模数据,简单的聚合查询和报表生成,MySQL还是可以胜任的。另外,MySQL 8.0之后引入了窗口函数、CTE(公共表表达式),提升了分析能力,这也是一个亮点。 不过,缺点方面,MySQL在处理海量数据时的性能问题,缺乏列式存储,并行查询能力较弱,复杂计算的限制等等都需要提到。这时候可能需要建议结合其他工具,比如用ETL工具将数据导出到分析专用数据库,或者使用MySQL配合BI工具进行可视化。 还要考虑用户的使用场景。如果用户的数据量不大,或者刚刚起步,暂时用MySQL分析可能成本较低。但如果数据量增长快,可能需要引入其他解决方案。需要给出实际应用示例,比如如何用SQL语句生成报表,或者结合其他工具进行优化。 最后,总结MySQL数据分析中的定位,强调其适用场景和局限性,并提供可行的建议,帮助用户根据自身情况做出选择。需要确保回答结构清晰,分点说明优缺点,并给出实际例子,让用户容易理解。</think>MySQL 数据库在数据分析中的应用及定位 (以下内容结构清晰分点说明,数学公式按系统指令要求处理) --- ### 一、MySQL 的核心定位 1. **OLTP 场景为主** MySQL 是典型的关系型数据库,设计核心是 **在线事务处理(OLTP)**,擅长处理高并发、低延迟的增删改查操作。例如: - 电商订单系统 - 用户注册登录 - 实时交易记录 2. **非专用分析数据库** MySQL 并非为大数据分析(OLAP)专门设计,但通过合理优化和工具配合,仍可承担轻量级分析任务。 --- ### 二、MySQL 用于数据分析的优缺点 #### ✅ 优点 1. **简单易用** - 支持标准 SQL 语法,可直接通过 SQL 进行数据筛选、聚合(如 `SUM()`、`AVG()`)。 - 示例:统计用户消费总额 ```sql SELECT user_id, SUM(amount) AS total FROM orders GROUP BY user_id; ``` 2. **生态兼容性** - 与 BI 工具(如 Tableau、Power BI)无缝对接,支持快速生成可视化报表。 3. **事务一致性** - 基于 ACID 特性,分析结果具备高可靠性(如财务对账场景)。 #### ❌ 局限性 1. **海量数据性能瓶颈** - 数据量超过千万级后,复杂查询(如多表 JOIN、窗口函数)响应时间显著上升。 - 数学公式解释性能问题: - 假设查询复杂度为 $O(n \log n)$,数据量 $n$ 增大时,耗时非线性增长。 2. **列式存储缺失** - 数据分析常需列式存储(如 ClickHouse),而 MySQL 采用行式存储,全表扫描效率低。 3. **并行计算能力弱** - 缺乏分布式架构,难以横向扩展处理 TB数据(对比 Spark、Hadoop)。 --- ### 三、典型分析场景与优化方案 #### 📊 适用场景 1. **中小规模数据(GB 级)** - 生成日报/周报,如统计每日订单量: ```sql SELECT DATE(order_time), COUNT(*) FROM orders GROUP BY DATE(order_time); ``` 2. **实时性要求较低的分析** - 用户行为分析(如 UV/PV 统计)。 #### ⚙️ 优化方案 1. **索引优化** - 对分析字段(如时间戳、分类标签)建立索引,加速 `WHERE` 和 `GROUP BY` 操作。 2. **物化视图** - 通过定期更新汇总表(如 `CREATE TABLE summary AS SELECT ...`),减少实时计算压力。 3. **外部工具集成** - 使用 Apache Airflow 调度 ETL 任务,将数据同步到 OLAP 数据库(如 ClickHouse)。 --- ### 四、对比专用分析工具 | 工具/场景 | MySQL | 专用分析工具(如 ClickHouse) | |--------------------|----------------|------------------------------| | **存储引擎** | 行式存储 | 列式存储 | | **查询并发** | 高并发写入 | 高并发查询 | | **数据规模** | GB 级 | TB/PB 级 | | **分析函数** | 基础聚合 | 高级窗口函数、机器学习 | --- ### 五、总结建议 1. **轻量分析** - 直接使用 MySQL,结合 SQL 和 BI 工具快速验证需求。 2. **重度分析** - 将 MySQL 作为数据源,通过 ETL 导入分析数据库(如 Redshift、BigQuery)。 3. **混合架构** - 实时事务用 MySQL,离线分析用 Hadoop/Spark,形成互补。 如需进一步探讨具体场景或优化策略,可提供更多细节!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值