当前位置:网站首页 >  教程

从零搭建大数据直播用户行为分析系统:手把手实操指南

时间:2026年05月22日 21:24:11 来源:易频IT社区

一、前置环境准备

仅需一台内存≥8G的Windows/Mac/Linux电脑即可完成搭建,本地就能运行,所有步骤零门槛,无需额外购买服务器。

1.1 安装Python环境

直接从Python官网下载对应系统的安装包:https://www.python.org/downloads/安装时必须勾选「Add Python to PATH」选项,安装完成后打开命令行,输入python --version能输出版本号即安装成功。

1.2 安装Python依赖包

在命令行直接执行以下完整命令,所有依赖会自动安装:

``` pip install flask clickhouse-connect python-dotenv ```

1.3 安装ClickHouse(实时数据存储分析引擎)

不同系统直接执行对应命令即可一键安装:

  • Mac系统:执行命令 brew install clickhouse
  • Ubuntu/Debian系统:依次执行以下命令: ``` sudo apt-get install apt-transport-https ca-certificates dirmngr sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754 echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list sudo apt-get update sudo apt-get install clickhouse-server clickhouse-client ```
  • Windows系统:直接下载压缩包解压,下载地址:https://github.com/ClickHouse/ClickHouse/releases/download/v23.8.0-stable/clickhouse-mingw-w64-gcc-11-x86_64-no-lto.tgz,解压后双击clickhouse.exe即可启动。

安装完成后,命令行输入clickhouse-client能进入交互界面即成功,默认端口8123,用户名default,默认无密码。

1.4 启动可视化工具Metabase

先安装Docker桌面版:https://www.docker.com/products/docker-desktop/,安装完成后执行以下命令一键启动Metabase:

``` docker run -d -p 3000:3000 --name metabase metabase/metabase ```

启动完成后浏览器打开http://localhost:3000即可进入Metabase后台。

二、核心功能开发:全量可复制代码

2.1 初始化项目与数据表

在本地新建一个空文件夹,新建两个文件:app.py(采集服务入口)、init.sql(建表文件)。将以下内容完整复制到init.sql

``` CREATE TABLE IF NOT EXISTS live_stream_events ( event_time DateTime, user_id String, room_id String, event_type Enum('enter' = 1, 'like' = 2, 'comment' = 3, 'gift' = 4, 'exit' = 5), extra_params String ) ENGINE = MergeTree() ORDER BY event_time; ```

命令行进入clickhouse-client,执行source 你的文件完整路径/init.sql,完成数据表创建。

2.2 开发数据采集接口

从零搭建大数据直播用户行为分析系统:手把手实操指南

将以下完整代码复制到app.py,无需修改任何配置即可直接运行:

``` from flask import Flask, request, jsonify import clickhouse_connect app = Flask(__name__) 连接ClickHouse,默认配置可直接使用 client = clickhouse_connect.get_client(host='localhost', port=8123, username='default') @app.route('/collect', methods=['POST']) def collect_event(): data = request.get_json() 必填参数校验 required_fields = ['user_id', 'room_id', 'event_type'] for field in required_fields: if field not in data: return jsonify({'code': 400, 'msg': '参数缺失'}), 400 补全时间戳,写入ClickHouse insert_time = data.get('event_time', None) if not insert_time: insert_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') client.insert('live_stream_events', [ [insert_time, data['user_id'], data['room_id'], data['event_type'], str(data.get('extra', ''))] ], column_names=['event_time', 'user_id', 'room_id', 'event_type', 'extra_params']) return jsonify({'code': 200, 'msg': '采集成功'}) if __name__ == '__main__': app.run(port=5000, debug=True) ```

启动采集服务,命令行执行python app.py,接口即可正常接收埋点数据。

三、配置分析指标与可视化看板

3.1 配置数据源连接

打开Metabase后台(http://localhost:3000),完成基础管理员账号设置后,选择「添加数据库」,数据库类型选择ClickHouse,连接信息填写:

  • 主机:localhost
  • 端口:8123
  • 数据库名:default
  • 用户名:default
  • 密码:留空
点击保存即可完成数据源连接。

3.2 创建核心分析指标

点击Metabase的「新建查询」,选择ClickHouse数据源,以下是直播分析最核心的4个指标,可直接复制SQL,分别保存为独立查询:

1. 实时在线人数(统计最近15分钟活跃用户) ``` SELECT COUNT(DISTINCT user_id) AS 实时在线人数 FROM live_stream_events WHERE event_time >= now() - INTERVAL '15' MINUTE ```

2. 今日总观看人次 ``` SELECT COUNT(DISTINCT user_id) AS 今日观看人次 FROM live_stream_events WHERE event_time >= today() AND event_type = 'enter' ```

3. 今日总互动数 ``` SELECT COUNT() AS 今日总互动数 FROM live_stream_events WHERE event_type IN ('like', 'comment', 'gift') AND event_time >= today() ```

4. 各直播间今日人气排名 ``` SELECT room_id, COUNT(DISTINCT user_id) AS 观看人次 FROM live_stream_events WHERE event_time >= today() AND event_type = 'enter' GROUP BY room_id ORDER BY 观看人次 DESC ```

3.3 组装实时分析看板

点击Metabase「新建仪表盘」,命名为「大数据直播实时分析看板」,将刚才保存的4个查询依次添加到看板中,调整布局后,设置看板自动刷新间隔为10秒,即可实现直播数据实时更新。

四、功能验证与业务对接

新建一个本地html测试页面,添加以下埋点代码模拟用户行为: ``` ``` 打开页面触发埋点后,回到分析看板就能看到数据实时更新,整个系统搭建完成。需要对接真实直播业务,只需要将上述埋点代码替换到项目前端,根据业务需求新增事件类型和分析指标即可。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图