项目文档
一、需求背景
运营侧在商业化活动、主播品类运营等方面需要数据支撑,主要范围包括:活动设计、效果评估,用户拉新拉回流,付费转换等;
产品侧在商业化玩法,功能设计等方面需要数据监控,主要范围包括:点位数据上报,玩法付费,用户活跃留存等
由于此类数据需求频繁且灵活,之前有两种解决方案:
1、BI报表,将常用数据做成固化报表,供用户直接查询。缺点:报表的开发维护成本高,且难以灵活应对分析需求。
2、SQL取数模板,将用户的取数分析需求固化成SQL模板,用户仅需修改日期等参数,即可实现后续复用。缺点:通用性较低,用户体验较差。
对此,需要再次优化,基本需求如下:
- 通过开发一个SQL生成系统,实现以下两点:
- 用户自助。降低使用门槛,用户仅需入门Excel,即可应对复杂SQL取数。
- 内容创造。用户可生成、发布自身的取数或分析模板,与他人交流使用。
二、项目开发
1. 技术选型
Python + Bootstrap + Django + Mysql
2. 功能列表
-
系统管理:
-
用户管理:用户基本信息、权限分配
搜索框:部门,角色,用户名 添加 删除
用户名 昵称 性别 电话 邮箱 所在部门 岗位 角色 操作 zhangsan 张三 男 12345678 10@qq.com 直播业务部 运营 管理员
组长
普通成员修改
删除 -
字典管理:
-
TDW数据字典:数据仓库层的数据表信息,包括表名、字段名、字段说明等。
搜索框:表名,字段名,字段说明
表备注:
使用时需限制plat_id=255
库名 表名 字段名 数据类型 字段说明 db table ftime bigint 统计日期(格式:YYYYMMDD) -
Mysql数据字典:数据应用层的数据表信息,包括表名、字段名、字段说明等。
搜索框:表名,字段名,字段说明
表备注:
使用时需限制plat_id=255
库名 表名 字段名 数据类型 字段说明 db table ftime bigint(20) 统计日期(格式:YYYYMMDD)
-
-
行为日志:
搜索框:操作人
日志名称 操作人 日志类型 ip地址 日志消息 记录时间 用户登录 admin 登录 127.0.0.1 后台登录失败 2019-04-08 02:16:30
-
-
开发中心:
-
SQL生成:通过拉取表字段,确定维度和度量值,生成SQL,并预览结果
第1步:
- 表设计:
(1)选择表:
| 库名 | 表名 |
| ---- | ------ |
| db | tableA |(2)筛选:
条件 字段 操作 条件1 ftime >=20200101 and <= 20201231 编辑 (3)行:
维度 操作 ftime gamename 自定义操作(映射维表:关联条件:gameappid=gameappid,表名:d_table,输出结果:gamename) (4)值:
度量值 操作 watch_time 求和 自定义操作 watch_uv 去重 自定义操作(当 watch_time>0 则 login_id 其他情况 空) tran_amt 求和 自定义操作 amt_uv 去重 自定义操作(当 tran_amt>0 则 login_id 其他情况 空) - 预览结果:
ftime gamename watch_time watch_uv tran_amt amt_uv 20210101 王者荣耀 100 10 1 1 -
复制SQL:
select ftime, gamename, watch_time, watch_uv, tran_amt, amt_uv from (select ftime, gameappid, sum(watch_time) as watch_time, count(distinct case when watch_time>0 then login_id else null end) as watch_uv, sum(tran_amt) as tran_amt, count(distinct case when tran_amt>0 then login_id else null end) as amt_uv from db::tableA where ftime >=20200101 and <= 20201231 group by ftime, gameappid )t1 left join ( select gameappid,max(gamename) as gamename from d_table group by gameappid )t2 on t1.gameappid = t2.gamename
保存为模板(需要 字段说明,及使用备注)
-
结果命名:
temp_table_a
第2步:
基于之前的结果,组合成新结果
…
-
模板中心
-
我的模板:管理自己的模板,对其进行增删改查操作
搜索框:创建人,创建时间,模板名称, 添加 删除
类型 模板名称 创建人 创建时间 操作 运营 游戏的每日观看时长和消费金额 张三 2021-01-01 00:00:00 复制 详情 删除 详情:
跳转 SQL生成页面 -
模板中心:搜索参考其他人的模板,导入我的模板
搜索框:创建人,创建时间,模板名称, 添加 保存至我的模板
类型 模板名称 创建人 创建时间 操作 运营 游戏的每日观看时长和消费金额 张三 2021-01-01 00:00:00 复制 详情 删除
-
-
3. 项目架构
4. 开发流程
1. 基础环境准备
安装Anacoda、安装并激活Pycharm,安装Mysql,配置svn,配置虚拟环境
2. 具体步骤
1. 初始化环境
1、新建Django项目,命名 DataCenter
2、新建APP应用
# cmd切换至D盘,进入工作目录
d:
cd D:\svn\django
# 新建项目 DataCenter
django-admin startproject DataCenter
# 进入项目根目录(manage.py同级目录)
cd D:\svn\django\DataCenter
# 新建"系统管理"应用模块
python manage.py startapp System
# 新建"开发中心"应用模块
python manage.py startapp DevTools
3、新建模板文件